Mysql所有增删改查命令
Mysql命令
1. 数据库操作
1.1 查询数据库
1  | -- 查询所有数据库  | 
1.2 创建数据库
1  | -- 创建一个数据库dh_test  | 
1  | -- 创建数据库语法,如果需要设置字符集的话  | 
1.3 删除数据库
1  | -- 删除数据库dh  | 
1  | -- 删除数据库语法,删除一个数据库如果这个数据库不存在则不报错  | 
1.4 使用及切换数据库
1  | -- 进入/切换 数据库到use dh_test;  | 
1  | use 数据库名;  | 
2. 表操作
2.1 查询表数据
1  | -- 查询当前数据库所有表  | 
2.2 创建表
1  | -- 案例案例:1.编号(纯数字)2.员工工号(字符串类型,长度不超过10位)3.员工姓名(字符串类型,长度不超过10位)4.性别(男/女,储存一个汉字)5.年龄(正常人年龄,不可能粗存负数)6.身份证号(二代身份证号均为18位,身份证中有X这样的字符)7.入职时间(取值年月日即可)  | 
1  | create table 表名(字段1 字段1类型[comment 字段1注释]),字段2 字段2类型[comment 字段2注释],字段3 字段3类型[comment 字段3注释],,字段n 字段n类型[comment 字段n注释]  | 
2.3 修改表数据
2.3.1 表中添加字段
1  | -- 案例:在上面员工案例中添加一个字段nickname(类型为varchar(20))  | 
1  | alter table 表名 add 字段名 类型(长度) [comment注释] [约束];alter table 表名 add 字段名 类型(长度) [comment注释] [约束];  | 
2.3.2 表中修改字段
1  | -- 案例:在上面员工案例中的nickname字段修改为username(类型为varchar(30))  | 
1  | alter 表名 change 旧字段名 新字段名 类型(长度) [comment注释] [约束];  | 
2.3.3 表中删除字段
1  | -- 案例:在上面员工案例中的username字段删除  | 
1  | alter table 表名 drop 字段名;  | 
2.3.4 表中修改表名
1  | -- 修改yuangong表名为emp  | 
1  | alter table 表名 rename to 新表名;  | 
2.3.5 删除表
1  | -- 删除表  | 
3. 数据操作
3.1 添加数据(insert)
1  | -- 给指定字段添加数据给指定字段添加数据  | 
1  | -- 给指定字段添加数据给指定字段添加数据  | 
3.2 修改数据(update)
1  | -- 案例1:修改id为1的数据,将name修改为donghao  | 
1  | -- 修改数据  | 
3.3 删除数据(delete)
- 当有外键约束无法删除时可执行以下sql指令关闭外键约束后,即可成功强制删除该数据
SET FOREIGN_KEY_CHECKS=0; 
1  | -- 案例1:删除age为18的数据  | 
1  | delete from 表名 [where条件]delete from 表名 [where条件]  | 
4. 数据库查询
4.1 插入表和数据(可练习使用)
1  | -- 创建表  | 
4.2 基本查询
4.2.1 查询多个字段
1  | -- 例1:查询指定字段name,workno,age,返回  | 
1  | -- 查询多个字段  | 
4.2.2 设置别名
1  | -- 例1:查询所有员工的工作地址,起别名mysql  | 
1  | select 字段1 [AS 别名1],字段2[AS 别名2]...from 表名;select 字段1 [AS 别名1],字段2[AS 别名2]...from 表名;  | 
4.2.3 去除重复记录
1  | -- 例1:查询公司员工的上班地址(去重)  | 
1  | select distinct 字段列表 from 表名;  | 
4.3 条件查询
4.3.1 比较运算符
1  | -- > 大于  | 
1  | select 字段列表 from 表名 where 条件列表;  | 
4.3.2 逻辑运算符
1  | -- and或&& 并且(多个条件同时成立)  | 
1  | select 字段列表 from 表名 where 条件列表;  | 
4.4 分组查询
4.4.1 通过聚合函数查询
1  | -- count 统计数量  | 
1  | select 聚合函数(字段列额表) from 表名;  | 
4.4.2 通过group by having 查询
1  | -- 例1:根据性别分组,统计男性员工和女性员工的数量  | 
where与having区别
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤
判断条件不同:where不能对聚合函数进行判断,而having可以
- 分组之前用where group by是分组查询 分组之后用having
 - 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义
 
1  | -- 使用语法  | 
4.5 排序查询
1  | -- asc 升序(默认值)  | 
1  | select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;  | 
4.6 分页查询
1  | -- 例1:查询第1页员工数据,每页展示10条记录  | 
注意:
- 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
 - 分页查询是数据库的方言,不同数据库有不同的实现,mysql中是limit
 - 如果查询得到是第一页数据,起始索引可以省略,直接简写为limit10
 
1  | select 字段列表 from 表名 limit 起始索引,查询记录数;  | 
4.7 DQL查询语句案例练习
1  | -- 查询年龄为20,21,22,23岁的女性员工信息  | 
4.8 DQL编写顺序
1  | select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数  | 
4.9 DQL执行顺序
1  | from 类名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 select 字段列表 order by 排序字段列表 limit 分页参数  | 
5. 用户及权限操作
5.1 管理用户
5.1.1 查询用户
1  | use mysql;  | 
5.1.2 创建用户
1  | -- 例1:创建用户itcast,只能够在当前主机localhost访问,密码123456  | 
1  | create user "用户名"@"主机名" identifled by "密码";create user "用户名"@"主机名" identifled by "密码";  | 
5.1.3 修改用户密码
1  | -- 例:修改用户trkj的访问密码为1234  | 
1  | alter user "用户名"@"主机名" identifled with mysql_native_password by "新密码";  | 
5.1.4 删除用户
1  | -- 例:删除itcast@localhost用户  | 
1  | drop user"用户名"@"主机名";  | 
5.2 控制权限
5.2.1 操作权限
- all,all privileges 所有权限
 - select 查询数据
 - insert 插入数据
 - update 修改数据
 - delete 修改数据
 - drop 删除数据库/表/视图
 - create 创建数据库/表
 
5.2.2 管理权限
1  | -- 查询权限  | 
1  | -- 查询权限  | 
5.2.3 mysql配置允许外界连接
1  | -- 进入数据库  | 
1  | -- 1.当发现数据库分配%权限后还是无法连接时,请使用以下命令检查是否存在两个root用户  | 
 评论
