Mysql(多表查询)

本文围绕MySQL展开,介绍了分页查询、自连接、子查询、all和any关键字、多列子查询、外连接等查询方式,还阐述了MySQL约束,包括主键、非空、唯一、外键、check和自增长约束,给出了相应的语法和使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分页查询:

语法: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,'值'......)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值