SQL:结构化查询语言,一种规范,所有的关系型数据库都遵循这个规范,允许不同的数据库有所差异。
SQL 分类:
- DDL:数据定义语言,用来定义数据库对象:数据库,表,列等
- DML:数据操作语言
- DCL:数据控制语言,用来定义访问权限
- DQL:数据查询语言,用来查询记录
DDL
- 操作数据库:
创建数据库 create database 数据库名称
删除:drop database 数据库名称
修改:alter database 数据库名称 character set 字符集名称
查询:show database 查询所有数据库的名称
查询创建数据库语句 show create database 数据库名称 - 操作表
-
创建:
*列的数据类型:
int 整型
double 浮点型
char 固定长度的字符串类型
varchar 可变长度的字符串类型
text 字符串类型:存大格式的文本
blob 字节类型
date 日期类型
time 时间类型
datetime 日期时间类型
*语法 create table 表明(列名1 类型1,列名2 类型2,…); -
删除:drop table 表名;
-
修改:
1. 修改之添加列:给stu表添加classname列: ALTER TABLE stu ADD (classname varchar(100)); 2. 修改之修改列类型:修改stu表的gender列类型为CHAR(2): ALTER TABLE stu MODIFY gender CHAR(2); 3. 修改之修改列名:修改stu表的gender列名为sex: ALTER TABLE stu change gender sex CHAR(2); 4. 修改之删除列:删除stu表的classname列: ALTER TABLE stu DROP classname; 5. 修改之修改表名称:修改stu表名称为student: ALTER TABLE stu RENAME TO student;
-
查询:show tables; – 查询该数据库下所有表名称
desc 表名; – 查询表结构
* 注意:操作表之前,应该先选择一个数据库使用:use 数据库名称; -
DML:操作表中的数据
增加语句:insert into 表名 values(‘值1’,‘值2’,…) 给全部字段赋值
给目标字段添加值:insert into 表名(字段1,字段2,…) values (‘值1’,‘值2’,…)
删除:delete from 表名 [where 条件]
改:update 表名 set 列名1=值1,列名2 [where 条件]
-
DQL:查询
select 要查询的列的名称 from 表名 where 条件 group by 对查询结果分组 having 分组后的条件 order by 对结果分组 limit 限定结果
条件查询:where 子句
=、!=、<>(不等于)、<、<=、>、>=;
between and;在什么范围之间
in;
is null;为空
is not null;不为空
and;并且
or;或者
not;非
模糊查询:like
通配符: :匹配单个任意字符
%:匹配多个任意字符
eg:查询姓名为三个字符的人
select people from people_table where p_name like’__’;
查询名字中包含z字母的人
select people from people_table where p_name like’%z%’;
字段控制:
修改字段的别名:AS
eg:给字段起别名
select p_name as 姓名 from people
字段运算:null参与的运算,结果都为null
去除重复记录 distinct
eg:去除姓名重复的
select distinct p_name as 姓名 from people
排序:order by 默认升序排列 ASC 默认值 DESC 降序排列
聚合函数:用来做纵向运算的函数;
count():统计指定列不为null的记录行数
Max():计算指定列的最大值
MIN():计算指定列的最小值
Sum():计算指定列的数值和,如果指定列不为数值类型,计算结果为0
AVG():计算指定列的平局值,如果指定列不为数值类型,计算结果为0
分组查询:group by
eg:统计一个班级的男生与女生总数
select stu_sex,count(*) from class group by stu_sex;
分页查询:limit
limit 0,5 开始的记录索引, 每一页显示的条数 索引从0开始
开始的记录索引 = (页码-1)* 每一页显示的条数
在查询一些比较多的数据的时候,可以进行分页查询来展示
select * from student limit 0,5;第一页的五条查询结果