sql作为一门古老的语言,学习起来性价比超高!几十年都不用更新!本节内容为进阶高级复习题!
创建数据库/表
create database 数据库名 create table 表名 ( 字段1 varchar(255) 约束, 字段2 类型 约束, primary key (字段1) ... )
约束
not null 不能为null unique 唯一 primary key 主键 foreign key 外键 default 默认 check 选择
删除数据库/表
drop table 表名 drop database 数据库名 只清空: delete from 表 truncate table 表
返回前xxx条数据
select top 5 字段 from 表 select 字段 from 表 limit 5
like 模糊搜索
select 字段 from 表 where 字段2 like "%结尾" %代表任意字符 not like 代表不包含这个模糊搜索
通配符
% 代表0个或多个字符 _ 代表一个字符 REGEXP [1,2,'a'] 代表内部任何单一字符 REGEXP ^[A-H] 不包含任何单一大写字母 REGEXP ![^字符列表] 不包含任何单一字符
IN 选取多个规定内的
select 字段 from 表 where 字段 in (值1,值2) not in 不在
between 在一个区间内选择
select 字段 from 表 where 字段 between 值1 and 值2 not between 不属于
别名 as
select 字段 as 新字段名 from 表 select 字段 from 表 as 新表名
多表链接 join on
内链接 inner join
select * from 表1 inner join 表2 on 表1.字段1 = 表2.字段2
左右链接 left/right join
select * from 表1 lect/right join 表2 on 表1.字段1=表2.字段2
完全链接 full join
select * from 表1 full join 表2 on 表1.字段1=表2.字段2
outer join
可以用在左右全中,如left outer join,可以返回不包含的内容
join去重
在 on 后加where 如 select * from 表1 left join 表2 on 表1.字段1=表2.字段2 where 表2.字段 is null
合并查询结果 union
select * from 表1 union select * from 表2
允许重复合并结果 union all
select * from 表1 union all select * from 表2
复制数据到其他表
create table 新表 as select * form 旧表 insert into 新表 select * from 旧表 insert into 新表 (字段名) select * from 旧表
创建索引 create index
create index 索引名 on 表名 (字段名-可不写) 创建不允许值重复的唯一索引 create unique index 索引名 on 表名
删除索引 drop index
alert table 表名 drop index 索引名