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用户 |
评论