首先将一下,如果你的mysql密码忘记了,那么通过下面的方式进行重置密码
1.停止mysql服务: services.msc 进入到服务界面 2.在cmd>输入一个命令: mysqld --skip-grant-tables (开启一个mysql服务,不需要进行认证.) 3.新打开一个cmd窗口 mysql -u root -p 不需要输入密码.就可以进入. 4.输入命令 show databases;查看数据库,输入命令 use mysql;使用mysql数据库。 5.修改密码的语句: update user set password=password('root') WHERE user='root'; 6.将两个窗口都关闭. 7.任务管理器中结束(mysqld)进程. 8.重启mysql服务
mysql 创建约束的三种方式: 主键约束,唯一约束,非空约束,其中主键约束就是保证该字段不能出现重复的值,主键的作用就是区分每一条数据的,区别是否是相同的原色,
其中唯一约束的作用就是要求这个字段中的所有的元素都不能有重复的元素,非空约束的作用就是要求这个字段的数据不能是空的,
下面说一下,mysql数据库中的crud操作
1 * 语法:update 表名 set 字段=值,字段=值... [where ]
* 如果没有where条件,默认更新所有的记录。
* 有where提交,选择某一条记录。
例如
将所有员工薪水修改为5000元。
update user set salary=5000;
将姓名为’班长’的员工薪水修改为3000元。
update user set salary=3000 where username='班长';
2 删除 delete的语法
语法:delete from 表名 [where ]; 删除数据
当没有where的时候,默认删除了数据库中的所有元素,使用delete删除数据库中的所有元素是一条一条删除的,
如果使用truncate 也可以执行删除数据库中的所有数据的操作,使用truncate删除的语法truncate 表名; 删除所有的数据,
truncate的删除机制是先删除表,然后在创建一个新的表,这样的删除机制,在删除速度上是要比delete快很多的,
但是在实际项目中并不采用这种删除机制,原因是我们在实际项目中的删除操作必须要用到事务,所以这样删除会出现问题。
3 * 添加数据
* insert into 表名 (字段1,字段2,字段3..) values(值1,值2,值3...); 有几列就插入多少的值。
* insert into 表名 values(值1,值2,值3...);
当主键是自增长的时候,使用第二种添加方式
insert into 表明 values(null,数据1,数据2...);
4 查询操作(*********)
select * from 表名; 查询所有(字段)
select 字段名1,字段名2,字段名3 from 表名; 显示查询字段名
select DISTINCT 字段名 from 表名; 去除重复的数据。
当我们跨很多表进行查询的时候,有可能表名会重复,这个时候,我们需要使用别名进行查询,
+----+------+------+---------+---------+
| id | name | math | english | chinese |
+----+------+------+---------+---------+
| 1 | 小王 | 78 | 21 | 31 |
| 2 | 小张 | 86 | 1 | 81 |
| 3 | 小李 | 76 | 18 | 51 |
| 4 | 小赵 | 96 | 98 | 91 |
| 5 | 小孙 | 76 | 88 | 81 |
+----+------+------+---------+---------+
select s.name,(s.math+s.english+s.chinese) as sum from stu s;
+------+-----+
| name | sum |
+------+-----+
| 小王 | 130 |
| 小张 | 168 |
| 小李 | 145 |
| 小赵 | 285 |
| 小孙 | 245 |
+------+-----+
首先,我创建了一个表的别名s,然后我查的相应的数据就是 s.字段名,我查的字段分别是name和数学,英语,语文三科的成绩和,
我给我的三科成绩和创建了一个别名sum,我查出来的数据表的字段名称也变成了sum。
下面说一下,如何使用where 添加别名,就是把别名添加到条件里面。
select t2.* from (select name,(math+english+chinese) as sum1 from stu) t2 where sum1>200;
模糊查询 like -- 模糊查询 写法:like '张_或者%'
排序 使用order by 升序默认的(asc)/降序(desc) 默认是 asc 顺序
select * from stu where name like '小%' order by chinese;
+----+------+------+---------+---------+
| id | name | math | english | chinese |
+----+------+------+---------+---------+
| 1 | 小王 | 78 | 21 | 31 |
| 3 | 小李 | 76 | 18 | 51 |
| 2 | 小张 | 86 | 21 | 81 |
| 5 | 小孙 | 76 | 88 | 81 |
| 4 | 小赵 | 96 | 98 | 91 |
+----+------+------+---------+---------+
如果,我有一个新的需求,例如根据 english进行排序,如果有相同的,在根据math进行排序
select * from stu order by english desc , math asc;
* 聚集函数
* count 获取数量
练习:
统计一个班级共有多少学生?
select count(*) from stu;
统计数学成绩大于90的学生有多少个?
select count(*) from stu where math > 90;
统计总分大于150的人数有多少?
select count(*) from stu where (math+english+chinese) > 150;
* sum 求和(忽略null值) 可以同ifnull(xxx,0)
统计一个班级数学总成绩?
select sum(math) from stu;
统计一个班级语文、英语、数学各科的总成绩
select sum(math),sum(english),sum(chinese) from stu;
统计一个班级语文、英语、数学的成绩总和
select sum(ifnull(math,0)+english+chinese) from stu;
select sum(math)+sum(english)+sum(chinese) from stu;
统计一个班级语文成绩平均分
select sum(chinese) / count(*) from stu;
* avg 平均数
练习:
求一个班级数学平均分?
select avg(math) from stu;
求一个班级总分平均分
select avg(ifnull(math,0)+english+chinese) from stu;
* max 最大值
select max(math) from stu;
* min 最小值
select min(math) from stu;
* group by 分组(一起使用) 条件过滤需要是having,不能使用where,
练习:对订单表中商品归类后,显示每一类商品的总价.
select product,count(*),sum(price) from orders group by product;
练习:查询购买了几类商品,并且每类总价大于100的商品
select product,sum(price) from orders group by product having sum(price) > 100;
* 小结 select 语句 : S-F-W-G-H-O 组合 select ... from ... where ... group by... having... order by ... ;
顺序不能改变
create table orders(
id int,
product varchar(20),
price float
);
insert into orders(id,product,price) values(1,'电视',900);
insert into orders(id,product,price) values(2,'洗衣机',100);
insert into orders(id,product,price) values(3,'洗衣粉',90);
insert into orders(id,product,price) values(4,'桔子',9);
insert into orders(id,product,price) values(5,'洗衣粉',90);
insert into orders(id,product,price) values(6,'电视',900);
下面是对 group by的具体的理解
相关推荐
MySQL数据库基础知识整理,增删改查,排序、分组、连接查询、对表的增删改查、条件查询、数据库的安装、卸载、下载、配置,对表结构的修改,约束等等
### 经典MySQL数据库知识整理 #### 概述 本文档旨在为初学者及有一定基础的用户快速掌握MySQL的核心操作提供便利。从基础的数据库创建、表结构设计,到更高级的功能如触发器、索引、函数以及存储过程等,都通过实际...
MySQL数据库知识整理,增删改查基础,以及约束,多表,联结
接下来将这些知识点进行整理和扩展,以便更好地理解和掌握。 ### MySQL数据库连接与管理 #### 1. 连接本地MySQL服务器 - 使用命令行工具连接MySQL时,可以通过以下命令格式实现: ```bash mysql -h 主机地址 -u ...
### PHP 操作 MySQL 数据库流程详解 #### 一、引言 ...而 MySQL 作为一款轻量级且功能强大的关系型数据库管理系统,与 PHP 结合使用...以上就是 PHP 操作 MySQL 数据库的基础流程和相关知识点。希望对初学者有所帮助!
以下是根据PPT课件中的内容整理出的一些关键知识点: 1. **MySQL简介** - MySQL是一款开源、免费的关系型数据库管理系统(RDBMS),广泛应用于Web应用、数据存储和分析。 - 它由瑞典MySQL AB公司开发,后被甲骨文...
非常详细的数据库知识点整理,主要涵盖:数据库基础知识、DDL、DML、DQL、DCL、事务讲解、Mysql、JDBC、Java操作Mysql、数据库连接池、Redis型非关系数据库、Java使用Jedis操作Redis数据库
根据给定文件的信息,我们可以总结出一系列关于MySQL数据库的基础知识点,涵盖了SQL语言的基本操作、数据检索、表结构管理以及高级特性等内容。以下是针对文件中提到的一些关键知识点的详细解释: ### 1. 聚合函数 ...
数据库就是储存和管理数据的仓库,对数据进行增删改查...MySQL就是一种开源的关系型数库,也是最受欢迎的数据库之一,今天对MySQL数据的基础知识做了整理,方便自己查看,也欢迎正在学习MySQL数据库的同学参考,谢谢。
"VC6.0中用ODBC连接MYSQL数据库[整理].pdf" 本文档主要讲解了如何使用Visual C++ 6.0通过ODBC连接MYSQL数据库,并进行常用的数据库操作,如数据的显示、添加、修改、删除等。 首先,需要安装MYSQL的ODBC驱动程序,...
总之,理解和掌握MySQL的基础知识是使用数据库的关键,而持续的优化则能够帮助我们更好地应对不断增长的业务需求,提升系统性能。通过文档《01_mysql基础知识.docx》和《02_mysql的优化.docx》,你可以更深入地学习...
MySQL知识点整理 MySQL是目前最流行的开源关系数据库管理系统之一,它的知识点体系非常庞大。下面我们将对MySQL的知识点进行整理和详细解释。 数据类型 MySQL中的数据类型可以分为五大类:数值型、字符串类型、...
《47道MySQL数据库集群高频题整理(附答案背诵版).md》是一份专为数据库管理员、开发人员和数据工程师设计的学习资源,涵盖了MySQL数据库集群中最常见和高频的问题。通过系统地整理和解析每一道题目,这份资料旨在...
掌握这些基础概念和操作,将使你能够有效地管理和操作MySQL数据库。在实际应用中,还可能涉及索引、视图、触发器、事务处理、安全性和性能优化等方面的知识。不断实践和深入学习,可以提升你在MySQL领域的专业技能。
这些知识点涵盖了MySQL的基本架构、存储引擎特性、复制机制、事务处理、性能优化等多个方面,对于理解和使用MySQL数据库具有重要价值。理解并掌握这些知识点有助于开发高效、稳定的数据库应用。
本资源是一个关于MySQL数据库基础知识的教学课程,涵盖了数据库基础知识、MySQL安装和配置、数据库管理系统、结构化查询语言SQL等方面的内容。 数据库基础知识是指数据库的基本概念、特点、组成部分、发展阶段等。...
本资源是一个关于MySQL数据库基础知识的教程课件,内容涵盖了数据库基础知识、数据库管理系统、关系型数据库、结构化查询语言SQL、数据库系统等方面的知识。 数据库基础知识 数据库是指将数据按一定的数据模型组织...
根据提供的文件信息,我们可以整理出一系列关于MySQL数据库的关键知识点,主要涵盖了基本的SQL语句及其用法。下面将对这些知识点进行详细的解释与说明。 ### 1. 数据查询(SELECT) - **定义**:`SELECT` 语句用于...
MySQL数据库是世界上最流行的开源关系型数据库...总之,"Mysql数据库基础入门视频及xmind笔记"是一个全面的初学者资源,通过系统学习,你可以建立起对MySQL的坚实基础,为未来更深入的数据库开发和管理打下坚实的基础。