一、创建表语法
1.1 创建表
格式:
create table表名(
列名1 数据类型primary key,
列名2 数据类型,
列名n 数据类型
):
1.2 查看仓库中全部的表
格式: show tables;
1.3 查看表结构
格式: desc 表名;
二、插入语法
2.1 向全部列插入数据格式:
insert into 表名 values(列值1,列值2,列值3...);
说明:values中的列值,必须和表结构中的列名是对应的。
2.2向指定列插入数据格式:
insert into 表名(列名1,列名2,列名3...) values(列值1,列值2列值3.);
说明:表名中的列名必须和values中的列值是--对应的。
三、更新
更新语句格式:
update 表名 set 列名1=该刿新值,列名2=该列新值... where条件;
说明:如果没有where修改表中全部数据。
四、删除
4..1 删除表中的数据
格式:delete from 表名 where 条件:
说明:如果没有where条件,删除全部数据
4.2 删除表
格式: drop table (if exists)表名;
五、查询(重点)
5.1 查询全部列数据
格式:
select*from 表名
5.2 查询指定列数据
格式:
select 列名1,列名2,列名3....列名n from 表名
5.3 给列起别名
格式:
select 列名1 as 别名1,列名 as 别名2,...,列名n as 别名n from 表名;
5.4 去重
格式:
select distinct 列名 from 表名;
5.5 限制查询(limit)
格式:
select */列名 from 表名limit 初始位置,行数;
说明:初始位置是从哪行开始显示,一个可选值,默认值是0,行数是要查询的行数
5.6 排序(order by)
格式:
select */列名 from 表名order by列名1 asc/desc,列名2 asc/desc;
说明:
(a)asc 升序(默认) desc 降序
(b)如果对多列进行排序的时候,首先排序第一列,第一列中必须有相同的列值,才会进行第二列排序。
5.7条件查询
语法格式:
select */列名 from 表名 where 条件;
条件包括:关系运算符(> < = >= <= <>/!=)、逻辑运算符(and、or、not)、特殊情况
(1)查询列值为空(is null)
(2)查询列值不为空(is not null)
(3)between...and主要用于查询符合某个值范围条件的数据
语法格式:
select列名 from 表名where 列名 between 初值 and 终值;说明:[初值,终值]
(4)in主要用于比较要查询的值是否在列中存在
5.8模糊查询(like)
语法格式:
select 列名 from 表名 where列名 like 条件
说明:
(a)%:表示0个或者多个任意字符
(b)_:表示任意1个字符
5.9 分组查询
5.9.1聚合(分组)函数
(1)count(列名/*)
*:统计该表中数据的总条数
列名:统计该列中列值不为空的,数据的总条数
(2)sum(列名)统计该列中所有列值累加之和
(3)avg(列名)统计该列中,所有列值的平均值
(4)min(列名)统计该列中的最小值
(5)max(列名)统计该列中的最大值
5.9.2 分组查询解释
根据某一列,把数据分成几组,可以对每一组数据使用聚合函数。
语法格式:
select 列名/分组函数from 表名
where条件
group by 列名
order by列名/分组函数asc/desc;
5.9.3 HAVING语句
说明:对分组以后的数据,再次进行过滤,经常和分组函数一起使用。
比较having和where:
where针对整张表数据进行过滤,
having针对分组后的数据进行过滤
where可以单独使用,
having必须和group by一起使用。
格式:
select列名/分组函数from 表名
where条件
group by 列名
having条件
5.10 嵌套查询(子查询)难点
说明:在查询内部又包含一个查询语句
5.11 关联查询 难点
多表连接查询
说明:由于要查询的数据,分布在不同的表中,为了一次获取不同表中的数据,就需要使用连接查询。
(1)内连接查询
只查询满足条件的记录
格式:
select别名1.*/列名1,别名2.*/列名2..
from 表1别名1,表2别名2.
where 关联条件;
(2)外连接查询
1)左外连接查询
说明:以左边的表为主,查询左表中所有的数据以及与之关联的右表中的数据。
格式:
select别名1.*/列名1,别名2.*/列名2..
from 表1别名1 left join 表2别名2.
on 关联条件;
2)右外连接查询
说明:以右边的表为主,查询左表中所有的数据以及与之关联的左表中的数据。
格式:
select别名1.*/列名1,别名2.*/列名2..
from 表1别名1 right join 表2别名2.
on 关联条件;
六、主键约束(primary key)
说明:
主键约束就是用来标识表中的数据,避免表中出现重复的数据,被主键约束所修饰的列,该列的列值必须是唯一且非空的,一张表中只能有一个主键约束。
修改表时,添加主键约束
格式:
alter table 表名 add primary key(列名)
删除主键约束
格式:
alter table 表名 drop primary key;
七、唯一约束(unqiue)
说明:用来指定一个列或者几个列的组合值,使其具有唯一性,防止用户在该列上输入重复的列值。
1.使用唯一约束修饰的列,该列可以插入null值
2.一张表可以有多个唯一约束
修改表时,添加唯一约束
格式:
alter table 表名 add unique(列名1,列名2...);
八、默认值约束(default)
说明:用来表示,在某列指定默认值,当执行插入操作的时候,如果该列没有插入列值,系统会自动把默认值作为该列的列值。每个列只能指定一个默认值
修改表时,添加默认值约束
格式:
alter table 表名 modify 列名 数据类型 default 默认值;
删除默认值约束
格式:
alter table 表名 modify列名数据类型default null;
九、非空约束(not null)
说明:当执行插入操作的时候,被非空约束所修饰的列,该列的列值不能为null
修改表时,添加非空约束
格式:
alter table 表名 modify 列名 数据类型 not null;
删除非空约束
格式:
alter table 表名 modify 列名 数据类型: