1.外键: 表格中某一列,引用另一张表的主键。
2.创建带外键的表格:
CREATE TABLE foreign_table(
column1 VARCHAR(20)
column2 VARCHAR(20)
FOREIGN KEY (column1)
REFERENCES another_table (main_key)
);
3. AS语句
AS作用就像隧道一样将SELECT语句查询的结果导入到新表,新表数据结果跟SELECT查询的数据结构一样。
PS:AS 跟在表名或者列名后面,可以取别名。
CREATE TABLE new_table AS new
(column1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
column2 VARCHAR(20))
AS
SELECT column FROM old_table AS old
GROUUP BY column2 AS dont_know
ORDER BY column;
4,SUBSTR(column,num): 去掉字符串num前的字符。
SUBSTRING_INDEX(column,'符号',1):根据第一个符号分割字符串,返回第一部.分字符串。
5. 连接
主要就是表格与表格之间的连接,我们运用连接可以融合几张表格,得到我们想要的数据。
* CROSS JOIN 交叉连接---就是将俩张表中选中的列进行笛卡尔乘积,得到一张新表。
SELECT a.column1,b.column1
FROM a_table AS a
CROSS JOIN
b_table AS b;
*INNER JOIN 内连接--利用条件式里德比较运算符结合俩张表格。
SELECT somecolumn #想要的某一列
FROM table1
INNER JOIN #内连接
table2
ON condition; #结合条件
*NATURAL JOIN 自然连接---利用相同列名进行结合的内连接。
SELECT somecolumn
FROM table1
NATURAL JOIN
table2
6.外连接
外连接与内连接的差别:外连接以一张表数据为基础,匹配另一章表的数据,若另一张表没有,数据就用NULL代替。 内连接则不会。
SELECT a.column,b.column
FROM table_a a
LEFT OUTER JOIN
table_b b
ON condition;
*自连接
SELECT a.coluumn,b.column
FROM table a
INNER JOIN
table b
ON conditon;
7.联合 UNION
UNION 语句:将不同表的选取结果联合起来,不包含重复值,各表选取的列数量必须相同,数据类型必须要能相互转化。
INTERSET: 交集
EXCEPT:差集。
SELECT column FROM table1 #联合俩张表格
UNION
SELECT column FROM table2;
SELECT column FROM table1 #选取俩列的并集
INTERSECT
SELECT column FROM table2;
SELECT column FROM table1 #除去另一列的数据。
EXCEPT
SELECT column FROM table2;