常见的约束
主键是能确定一条记录的唯一标识,比如:一条记录包括身份证号、姓名、年龄。
(1)添加主键、还未创表
create table 表名(主键名 数据类型 primary key,字段名 数据类型);
(2)已经创建好的表上添加主键
alter table 表名 add constraint 主键名(pk_表名) primary key 表名(主键字段名);
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性
(1)添加外键
alter table 主表 add constraint 外键名(fk_主表_从表)foreign key 主表(主表字段) references 从表
(从表的字段)
(2)删除主键
alter table 表名 drop primary key
(3)删除外键
alter table 表名 drop foreign key 外键名
(3)自动增长
create table 表名(id int(11) PRIMARY key auto_increment, name varchar(20) )
唯一约束&非空约束
create table test2( id int(11) primary key auto_increment, name varchar(20) not null, address
varchar(200) unique )
约束 | 关键词 |
主键 | primary key |
外键 | foreign key |
非空 | not null |
唯一 | unique |
where条件表达式
运算符 | 描述 |
> 、<、>=、<=、<> | 大于、小于、大于等于、小于等于、不等于 |
and | 且 |
between..and | 连续区间的查询,闭区间(含头含尾) |
or | 或 |
in() | 查询在包含在in括号的值 |
not | 不成立 |
is null | 判空 |
ike | 模糊查询,通常和%或者_这两个通配符搭配使用 |
常用的聚合函数
聚合函数 | 描述 |
count(*) | 计数 |
max() | 最大值 |
min() | 最小值 |
sum() | 求和 |
avg() | 平均值 |
给表新增一列
alter table 表名 add column 新字段名 数据类型(after 已有的字段)
蠕虫复制
(1)创建表
create table 新表名 like 旧表名
(2)插入
insert into 新表名 select * from 旧表名
排序
order by
select * from 表名 order by 字段名 asc|desc
select * from 表名 where 条件表达式 order by 字段名 ASC|DESC
分组
group by
select * from 表名 group by 字段名(having)
连接查询
(1)交叉连接(cross join):不带on子句,返回连接表中所有数据行的笛卡尔积
select * from 表名1,表名2;
select * from 表名1 cross join 表名2;
(2)内连接(inner join):返回连接表中符合连接条件及查询条件的数据行
select * from 表名1 inner join 表名2 on 子句
(3)外连接:分为左外连接(left outer join)、右外连接(right outer join)。与内连接不同的是,
外连接不仅仅返回连接表中符合连接条件及查询条件的数据行,也返回左表(左外连接时)或右表
(右外连接时)中仅符合查询条件但不符合连接条件的数据行
①左连接
left join
select * from 左表 left join 右表 on 子句
②右连接
right join
select * from 左表 right join 右表 on 子句