表的內外連線與增刪改操作
阿新 • • 發佈:2018-11-13
1.內連線
內連線:內連線實際上就是利用where子句對兩種表形成的笛卡兒積進行篩選,我們前面學習的查詢都是內連線
格式:
select 列名 from 表名inner join 表2 on 連線條件 and 其他條件;
左外連線:如果聯合查詢,左側的表完全顯示
格式:
select 欄位名 from 表名1 left join 表名2 on 連線條件
右外連線:如果聯合查詢,右的表完全顯示
格式:
select 欄位 from 表名1 right join 表名2 on 連線條件;
左外查詢和右外查詢,如果置換表的位置,查詢結果一樣。
表的增刪改
1.增加 insert into
insert into 表名 【(要插入的列名)】 values(插入的資料1) 【,(插入的資料2),..,】;
不寫列名就是隱含列,插入時需按列的順序插入且插入全表內容,且資料型別需對應,資料大小在對應的範圍內,
指定列插入值需對應資料型別插入
字串.日期等要加單引號
當主鍵衝突時,則更新資料:–>將原先資料update後內容的更新為新資料,其他保持原衝突資料不變
insert into goods (id,goods_name,price) values(89,’sm’,2) on duplicate key update goods name=’sm’,price=7;
替換全部資料:
replace into goods (id,goods_name,price) values(89,’sm’,2)
注:若主鍵有重複則全部替換原資料,若無重複則新增新資料
2.更新操作update
update 表名 set 要修改的列名=修改後的值....【where 條件】 【limit 數字】;
eg:limt 2 -->從第一個資料開始,更新2個數據
沒有約束條件的情況下,會修改列中所有的資料
3. 刪除delete
delete from 表名 【where 條件】
不能刪除列,刪除列可通過 alter drop 命令或 update 更新為null
不加where條件—》整表資料刪除,且是一行一行的刪,會返回刪除資料行的結果
複製表的資料(兩步)
i)複製表結構
a)
show create table [];
b)
create table [新表名] like [要複製的表名];
ii)複製表資料
select * from [要複製的表名];
4.刪除 truncate
truncate table 表名
一次性刪除資料, 直接將表長度變為0
但是表結構在,且速度快於delete,效率更高