约束补充
– 约束:
– 主键约束:PRIMARY KEY 非空且唯一,一张表中只能有一个主键 (联合主键)
– 自增长约束:AUTO_INCREMENT 配合整数类型的字段,而且该字段是主键 也就是主键自增长。
– 唯一约束 UNIQUE
– 非空 约束
– 外键约束:FOREIGN KEY REFERENCES
– 非负约束 unsigned
– enum 枚举类型
– 多表查询:
– 内连接:不符合条件的数据,不展示。
– 隐式内连接:select a.,b. from a,b where 关联条件
– 显示内连接:select a.,b. from a inner join b on 关联条件
– 外连接:左外连接和右外连接 select a.,b. from a left outer join b on 关联条件
– 子查询:一个主查询的条件,来自于另一条查询的结果。
– 自查询:在一张表中进行查询,把一张表看做两张表来查询。
-- 复制表中的字段和数据到另一张表中。
-- 我创建一张表,这张表中的字段和数据,是来自一条查询语句。
CREATE TABLE myemp AS SELECT * FROM emp;
--
CREATE TABLE myemp2 AS SELECT emp.`empno`,emp.`ename`,emp.`job` FROM emp;
-- 我只想复制表头,不要表中的数据
CREATE TABLE myemp3 AS SELECT * FROM emp WHERE FALSE;
CREATE TABLE myemp5 AS SELECT * FROM emp WHERE TRUE;
-- 我只想复制表头,不要表中的数据 条件给假
CREATE TABLE myemp3 AS SELECT * FROM emp WHERE 1=2;
-- 我只想复制表头,还要表中的数据 条件给真
CREATE TABLE myemp5 AS SELECT * FROM emp WHERE 1=1;
-- 可以复制多表查询出来的结果
SELECT user.*,orders.id AS oid,orders.`totalprice` FROM USER,orders WHERE user.`id`=orders.`user_id`;
CREATE TABLE myuser AS SELECT user.*,orders.id AS oid,orders.`totalprice` FROM USER,orders WHERE user.`id`=orders.`user_id`;