分页查询:
语法:select .... limit start, rows
表示从start+1行开始取,取出rows行,start从0开始计算
公式:limit 每页显示记录数 *(第几页-1),每页显示记录数
自连接:
概念:在同一张表的连接查询(将同一张表看作两张表)
特点:1.同一张表当作两张表使用
2.需要给表取别名 表名 表别名
3.列名不明确,可以指定列的别名 列名 as 列的别名
子查询:
概念:嵌入在其它sql语句中的select语句,也叫嵌套查询
单行子查询:指只返回一行数据的子查询语句
多行子查询:指返回多行数据的子查询 使用关键字in
all和any关键字:
select ename,sal,deptno from emp
where sal > any/all (select sal from emp
where deptno = 30);
多列子查询:
概念:指查询返回多列数据的子查询语句
select * from emp
where (deptno,job) = (
select deptno,job from emp
where ename = 'ALLEN')
and ename != 'ALLEN';
外连接:
左外连接(如果左边的表完全显示,则称为左外连)
select ... from 表1 left join 表2 on 条件[表1:左表,表2:右表]
右外连接(如果右边的表完全显示,则称为右外连)
select ... from 表1 right join 表2 on 条件[表1:左表,表2:右表]
mysql约束:
主键:字段名 字段类型 primary key 或 表定义最后写 primary key(列名)
1.用于唯一的标示表行的数据,当定义主键约束后,该列不能重复且不能为null
2.一张表只能有一个主键,但是可以复合主键,例如:primary key( id , name )
not null(非空):如果在列上定义了not null,那么当插入数据时,必须为列提供数据
unique(唯一):当定义了唯一约束后,该列值是不能重复的
1.如果没有指定not null,则unique字段可以有多个null
2.一张表可以有多个unique字段
外键:用于定义主表和从表之间的关系,外键约束要定义在从表上,主表则必须具有主键约束或是unique约束,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为null
foreign key(本表字段名)references 主表名(主键名或unique字段名)
注意事项:
1.外键指向的表的字段,要求是primary key或者是unique
2.表的类型是innodb,这样的表才支持外键
3.外键字段的类型要和主键字段的类型一致(长度可以不同)
4.外键字段的值,必须在主键字段中出现过,或者为null(前提是外键字段允许为null)
5.一旦建立主外键的关系,数据就不能随意删除了
check:用于强制行数据必须满足的条件
列名 类型 check(check条件)
自增长:从1开始自动的增长
字段名 整型 primary key auto_increment
方式:
1. insert into xxx (字段1,字段2....) values(null,'值' ....)
2.insert into xxx(字段2,.....)values('值'....)
3.insert into xxx values(null,'值'......)