1. 程式人生 > >表的內外連線與增刪改操作

表的內外連線與增刪改操作

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,效率更高