1、SQL注释
单行注释:
-- 注释内容
多行注释:
/*
注释内容
*/
2、数据库操作
--创建库
create database 数据库名;
--删除库
drop database 数据库名;
--查看库
show databases;
--使用库
use 数据库名;
3、表的操作
--查看所有表
show tables;
--创建表
create table 表名(字段名 数据类型(长度), 字段名 数据类型(长度), ...);
--字段约束
主键(primary key):值不能重复,auto_increment代表值自动增长
非空(not null):此字段不允许填写空值
唯一(unique):此字段的值不允许重复;
默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准。
--删除表
drop table 表名;
4、数据的增删改查
(1)insert 插入
insert into 表名 values (...);
(2)DELETE、TRUNCATE 删除表的记录
--删除表中所有内容
delete from 表;
truncate table 表;
--删除表中指定内容
delete from 表名 where 条件;
DELETE和TRUNCATE的区别
在速度上,truncate > delete
如果想删除部分数据用delete,注意带上where子句
(3)UPDATE 修改数据
update 表名 set 字段1=值1,字段2=值2 ... (where 条件) ;
(4)Select 查询
--查询所有
select * from 表名;
--查询指定字段
select 字段1,字段2, ...from 表名;
--指定别名查询(字段和表都可以有别名)
select * from 表名 as 别名;
--条件查询
select * from 表名 where 条件;
条件查询支持的操作符
比较运算符
>, >= ,<,<= !=(不等于)
逻辑运算符
and(与)、or(或)、not(非)
模糊查询
select * from 表 where 字段 like '%包含字段%';
select * from 表 where 字段 like '_字段';
查询范围
in ('value1','value2','value3')):表示一个在非连续的范围内
between ... and :表示在一个连续的范围内
is null:为空
is not null:不为空
排序
ase(默认值)从小到大排序,即升序
desc从大到小排序,即降序
聚合函数
count 总记录数
max 最大值
min 最小值
sum 求和
avg 平均值
group by 分组
having 数据筛选(和group by一起使用)
5、连接查询
select * from 表1 inner join 表2 on 表1.字段 = 表2.字段;
select * from 表1,表2 where 表1.字段 = 表2.字段;
--左连接 ,查询的结果为两个表匹配到的数据加左表特有的数据, 对于右表中不存在的数据使用 null
select * from 表1 left join 表2 on 表 1.字段=表 2.字段;
--右连接 ,查询的结果为两个表匹配到的数据加右表特有的数据, 对于左表中不存在的数据使用 null
select * from 表1 right join 表2 on 表 1.字段=表 2.字段;
6、子查询
在一个select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select语句称之为子查询语句。
外层的第一条 select 语句为主查询 ,里层的select为子查询
主查询和子查询的关系
子查询是嵌入到主查询中
子查询是辅助主查询的, 要么充当条件, 要么充当数据源
子查询是可以独立存在的语句, 是一条完整的 select 语句