1 SQL简介
2 通用语法
3 SQL分类
4、DDL:操作数据库
5,DDL:操作表
5.1 查询表
5.2 创建表
创建表
create table 表名 ( 字段名1 数据类型1, 字段名2 数据类型2, … 字段名n 数据类型n )
注意:最后一行末尾,不能加逗号
5.3 数据类型
MySQL 支持多种类型,可以分为三类:
数值
tinyint : 小整数型,占一个字节 int : 大整数类型,占四个字节 eg : age int double : 浮点类型 使用格式: 字段名 double(总长度,小数点后保留的位数) eg : score double(5,2)
日期
date : 日期值。只包含年月日 eg :birthday date : datetime : 混合日期和时间值。包含年月日时分秒
字符串
char : 定长字符串。 优点:存储性能高 缺点:浪费空间 eg : name char(10) 如果存储的数据字符个数不足10个,也会占10个的空间 varchar : 变长字符串。 优点:节约空间 缺点:存储性能底 eg : name varchar(10) 如果存储的数据字符个数不足10个,那就数据字符个数是几就占几个的空间
5.4删除表
5..5修改表
6、DML语句
6.1 添加数据
6.2 修改数据
修改表数据 UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ;
6.3 删除数据
删除数据 DELETE FROM 表名 [WHERE 条件] ;
注意:
删除、修改语句中如果不加条件,则将所有数据都修改!
像上面的语句中的中括号,表示在写sql语句中可以省略这部分
7、DQL
SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段 HAVING 分组后条件 ORDER BY 排序字段 LIMIT 分页限定
7.1基础查询
7.1.1语法
7.2.1条件查询
select 字段列表 from 表名 where 条件列表;
注意:模糊查询使用like关键字,可以使用通配符进行占位:
(1)_ : 代表单个任意字符
(2)% : 代表任意个数字符
eg: select * from stu where name like '_天%';
7.3排序查询
7.3.1语法
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;
上述语句中的排序方式有两种,分别是:
ASC : 升序排列 (默认值) DESC : 降序排列
如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序
7.4聚合函数
7.4.1 概念:将一列数据作为一个整体,进行纵向计算。
7.4.2聚合函数的分类
7.4.3聚合函数的语法
SELECT 聚合函数名(列名) FROM 表;
7.5分组查询
7.5.1语法
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
select sex, avg(math),coun() from stu where math > 70 group by sex having count() > 2;
where 和 having 区别: 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过 滤。 可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。
.7.6分页查询
7.6.1语法 select 字段列表 from表名 limit起始索引 , 查询条目数;
注意: 上述语句中的起始索引是从0开始
7.6.2计算索引的公式 起始索引 = (当前页码 - 1) * 每页显示的条数