SQL day2

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;

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值