DDL----数据库操作、表、表字段操作;
DML----完成数据的增删改
DQL----查询数据
DCL--数据控制语言(管理数据库用户、访问权限)
1、DDL-表操作-查询
Show tables;---查询当前库里的所有表
Desc +表名----查询表结构
Show creat table +表名----查询指定表的键表语句
DDL-表操作-创建
(use itcast)返回自定义的库,不在系统的库。
DDL-表操作-修改
添加字段
Alter table 表名 add 字段名 类型(长度)[comment “注释”][约束];
修改数据类型
Alter table 表名 modify 字段名 新数据类型 (长度);
修改字段名、数据类型
Alter table 表名 change 旧字段名 新字段名 数据类型(长度)[comment 注释][约束];
删除字段
Alter table 表名 drop 字段名;
修改表名
Alter table 表名 rename to 新表名;
删除指定表,并重新创建该表
Truncate table 表名;
删除表----drop 表名;
总结
二、DML完成数据的增删改
添加数据(Insert)
修改数据(update)
删除数据(delete)
DML---添加数据
- 给指定的字段添加数据
Insert into 表名(字段名1,字段名2,);
- 给全部字段添加数据
Insert into 表名 values(值1,值2);
- 批量添加数据
Insert into 表名(字段名1,字段名) values(值1,值2),(值1,值2);
Insert into 表名 values (值1,值2),(值1,值2);
注意:插入数据时,指定的字段顺序要与值的顺序是一一对应的;
字符串和日期型数据应该包含在引号中;
插入的数据大小应该在字段的规定范围内;
DML-修改数据
Update 表名 set 字段名=值1,字段名2=值2 where 条件;如果没有where条件则表里所有的值都改变;
DML-删除数据
Delete from 表名 where 条件
Delete 不能删除某一个字段的值(可以用update 值为 null)
总结:
DQL--语法
Select 字段列表+
from 表名列表
Where 条件列表
Grup by 分组字段列表
Having 分组后条件列表
Order by 排序字段列表
Limit 分页参数
DQL-基本查询
- 查询多个字段
Select 字段1,字段2 from 表名;
Select * from 表名;(查询表中所有数据)
- 设置别名
Select 字段1 as 别名1 from 表名;
- 去除重复记录
Select disinct 字段列表 from 表名;
DQL-条件查询
- 语法
Select 字段列表 from 表名 where 条件列表;
查询年龄为19的学生;
查询年龄小于25的学生;
查询年龄小于等于19的学生;
查询有id的学生;
查询年龄不等于19的学生信息
查询年龄在19到25之间的学生信息;
查询性别为女并且年龄小于20岁的学生信息;
查询姓名为两个字的学生信息
查询id最后一位是2的学生信息
DQL-聚合函数
Count--统计数量
Max--求最大值
Min--求最小值
Avg--求平均值
Sum--求和
聚合函数---语法
Select 聚合函数(字段列表) from 表名;(所有的null不参与聚合运算)
案例;
统计这个班所有的学生数量
统计学生的平均年龄
统计这个班的学生的最大年龄
统计这个班学生的最小年龄
统计这个班所有性别是女的学生的年龄之和
DQL--分组查询
语法
Select字段列表 from 表名 where 条件/ group by分组字段名 /having 分组后的过滤条件;
Where与having的区别
执行的世纪不同:Where 是分组之前进行过滤,不满足where条件不参与分组;而having是分组之后对结果进行过滤。
判断的条件不同:where不能对聚合函数进行判断。而having可以;
注意:
执行顺序:where>聚合函数>having;
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段五任何意义;
案例:
- 根据性别分组,统计男性学生与女性学生的数量;
- 根据性别分组,统计男学生与女学生的平均年龄
- 查询年龄小于20的学生,并根据年龄分组,获取学生数量大遇4的学生年龄
DQL--排序查询
语法:
Select 字段列表 from表名 order by 字段1 排序方式1,字段2,排序方式2;
排序方式
Asc 升序(默认值)
Desc 降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
案例:
- 根据年龄对学生进行升序排序
- 根据年龄对学生进行降序排序
- 根据年龄对学生进行升序排序,如果年龄一样再根据sid进行降序排序
四、DQL-分页查询
语法
Select字段列表 from 表名 limit起始索引,查询记录数;
注意:
起始索引从0开始,起始索引=(查询页码-1)*每页显示的记录数;
分页查询是数据库的方言,不同的数据库有不同的实现,mysql中是limlt;
如果查询的是第一页的数据,起始索引可以省略,总结简写为limit 10。
案例:
- 查询第一页的学生数据,每页展示3条记录;
- 查询第二页学生的数据,每页展示3条记录;
DQL--案例练习
- 查询年龄为19,20岁的学生信息;
- 查询性别为男并且年龄在19到24之间的姓名为两个字的学生信息;
- 统计学生信息表中年龄小于25岁的男性与女性学生的人数
- 查询所有年龄小于20岁的学生的姓名和年龄,并且对查询结果按年龄进行升序排序
- 查询性别为男。并且年龄在19到24岁以内的前五个学生的信息对查询结果按年龄进行升序排序;
DQL-- 总结
五、DCL--数据控制语言(管理数据库用户、访问权限)
DCL--管理用户
- 查询用户
Use mysql;
Select * from user;
- 创建用户
Create user ‘用户名’@’主机名’ identified by ‘密码’;
- 修改用户
Alter suer ‘用户名’@’主机名’ identified with mysql_native_password by ‘新密码’;
- 删除用户
Drop user‘用户名’@‘主机名’;
练习:
- 创建用户itcast ,只能够在当前主机local host访问,密码www654321;
- 创建用户 叶婷, 可以在任意主机访问改数据库;密码123456
- 修改用户 叶婷的访问密码为www654321
- 删除itcast@localhot 用户;
六、DCL--权限控制
小结
函数
字符串函数
数值函数
........