1.高級建表和插入html
使用creat 和select 進行建表操做,中間採用AS 標識符;spa
CREATE TABLE new_table AS SELECT * FROM exist_table LIMIT 10;
從一個表中複製列插入到指定的表中:code
INSERT INTO table2
SELECT * FROM table1;
2.select 子查詢htm
子查詢就是一個select 語句做爲另外一個查詢語句的輸入值,主要分爲如下三種狀況:blog
Select 列名
From 表名
Where 列 操做符 (Select 列名 From 表名)
******使用注意:
(1)子查詢語句必須針對一個字段進行查詢操做,不然拋錯:Operand should contain 1 column(s
Select 字段 from (select * from 表名)as 別名
*********此處的使用注意:
(1)子查詢在from 語句以後,其實就是生成了一個臨時表,因此子查詢能夠查詢多個字段;
(2)子查詢 在from 以後的時候,必需要對錶取一個別名進行使用
select 字段1,(select 字段2 from 表名) from 表名
***********此處的使用注意:
(1)子查詢語句必須針對一個字段進行查詢操做,不然拋錯:Operand should contain 1 column(s)
(2)子查詢語句返回的必須是一行數據,不然拋錯:Subquery returns more than 1 row
3.多表操做排序
格式: select * from 表A union (union All) select * from 表B; ******使用注意: (1)操做合併的兩個表,必須是字段或者列數相同; (2)union 對錶作合併操做的時候,會進行去重操做; (3)union all 對錶作合併操做的時候,不會進行去重操做; (4)使用合併操做的時候,不能進行order by操做,若是須要進行排序操做,能夠在合併表結束後,使用子查詢的方式,進行order by 操做;
4.行結合 Join :數據分析
SQL 的join 子句基於多個表之間的相同字段,進行表之間的行結合操做,主要分爲Left Join,Right Join ,Inner Join ,Full Outer Join四種,如下爲這四種操做描述:io
注意事項:table
1)多表關聯的核心原理在於笛卡爾積,參考文章(https://www.cnblogs.com/nick-huang/p/4919178.html#my_inner_label1); 2)多表關聯可能會致使數據的重複,也就是在創建關聯時的 1:1,1:N,N:N 的形式,因此須要注意數據的去重工做,要先處理每一個表的數據,再進行關聯操做;
5.MySql 變量class
1)代碼中不少地方都會重複用到同一段代碼; 2)每次從新使用代碼的時候,可能只須要修改某些參數便可;例如:時間,區域 3)構建一個標識字段,幫助作數據分析判別。例如:對某類型字段進行排序分析;
1)變量聲明: 使用@變量名; 2)變量命名組成元素能夠是:字母、數字、下劃線、‘.’ 、'$'幾種元素; 3)變量的賦值: 使用: set @變量名 =value; 使用: set @變量名 :=value; 使用: select 方式賦值:select @變量名:=value;(注意:該種方式聲明變量只能使用‘:=’進行,由於在select 語句中 ‘=’會被認爲是比較操做符) 4)變量的使用:直接調用變量名便可; **********注意: 變量的聲明屬於會話級別,因此變量在SQL 定義完成並執行後纔會有,變量沒法指定變量的類型,是在賦值的時候自動推斷變量的類型;