表的增刪改查
- 增刪改查
- 1.插入資料
- 2.查看資料
- 3.修改資料
- 4.洗掉資料
增刪改查
1.插入資料
insert into [表名] values (對應的欄位內容);
插入的欄位的數目和型別需要和表結構中要求的一致,

指定列插入,根據需要只插入其中的某幾列

2.查看資料
1.select* from[表名];
*是一個通配符,意思是把所有的列都查找,

生產環境的服務器本來壓力就很大,資料量非常多,一旦執行這樣select* 操作,可能就會給生產環境的服務器造成很大的負擔,甚至導致服務器卡死或宕機,
2.指定列查找
select [列名] from [表名];

3.查詢欄位為運算式
針對查到的列進行一定的運算式計算,
a)查找所有同學的姓名和總成績

b)查找所有同學的語文成績,并在基礎上+10.

4.查詢欄位求別名
把列指定了別名total ,as可以省略

5.去重
select distinct [列名] from [表名]

去重結果,得到的結果表的行數和原來可能是不一樣的,
select得到的結果也相當是一張表(MySQL構造的一個臨時表)大部分的select操作的查找結果是無法和原來的表的記錄一一對應,
使用distinct的時候,必須把對應的列都放到distinct之后,
所有的select操作都不會對原來的表造成任何改變,基于原來的表,生成結果表,想要修改,insert update delete…
6.排序
order by 指定針對哪個列進行排序
a)查找同學們的資訊并且按照語文成績升序排序

b)查找學生資訊并按照數學成績排序(降序)

c)查找學生資訊并按照總成績降序排序

d)按照總成績排序,使用別名

e)按照多個列來排序
先把所有同學的資訊按照語文降序排序,再按照數學降序排序,再按照英語降序排序,
列越靠前,優先級越高,如果語文的分數一樣,再按照數學排序,如果語文數學的分數一樣,再按照英語排序,

null是最靠前的

7.條件查詢where[特別重要]
條件查詢中涉及的運算子
< <= > >=:沒啥特殊的,
= :比較相等,不是賦值.(update中的=相當于賦值)
<=>;比較相等,能夠針對NULL進行比較
如果運算式NULL=NULL->NULL相當于條件不成立
如果運算式NULL<=>NULL->true相當于條件成立
!= <> 表示不等于
between x and y:表示當值在[x,y]閉區間都是滿足條件,
in(若干個選項):當前值在()中的若干選項里匹配任意一個都是滿足條件,
is null
is not null專門用于判定值是否為null
like 模糊匹配
and邏輯與
or邏輯或
not邏輯取反
%匹配任意個字符
a)查找資料chinese為null的記錄
錯誤的寫法null=null結果為false

正確的寫法:

b)查找英語成績不及格的同學資訊(<60)

c)查找語文成績比英語好的同學資訊

d)查找總分在200分以下的同學
where中不能使用別名,

e)查詢語文成績大于80并且英語成績也大于80的同學

f)查詢語文成績大于80或者英語成績大于80,

g)查詢語文成績在[80,90]之間的同學

h)查詢數學成績是60.0或者73.0


i)查找所有姓孫的同學的成績
%:匹配任意個字符
_: 匹配一個任意字符


j)查找所有同學9開頭的

k)查找所有同學中,姓孫并且語文成績>60的同學


進行復雜查詢時,存在一個"最左原則"發現此時兩個條件,chinese>60 name like ‘孫%’ 先后順序不影響最終的結果,但是我們建議,把name like條件放在左邊,
兩種寫法的第一次遍歷都需要遍歷全表,第二次遍歷的時候,第一種寫法需要遍歷記錄,第二種只需要遍歷兩條,
多個條件在一起聯合生效時,一般要求哪個條件能過濾掉的資料多(剩下的資料少,把該條件放到左側).,
8.分頁查找,上面講過的這些select操作,除了條件查找以外,剩下的都是不應該在生產服務器上直接執行的,最保險的就是加上分頁查找,相當于把查找結果只選取其中的一小部分來作為結果limit,
a)查找同學資訊中總分最高的前三名,


b)查找同學資訊中總分最高的4-6

c)如果limit后面的數字太大,超過了記錄的數目,回傳結果不會有任何錯誤,
d)如果Offset過大得到的結果可能是一個空的結果,

3.修改資料
update [表名] set [列名] =[修改的值],[列名]=[修改的值] where 子句;
a)把孫悟空的數學成績改成80分,


update每次修改幾行記錄是不確定的,具體取決于where中的條件怎么寫,得看where條件過濾之后剩下多少記錄.
b)把曹孟德數學成績改成50,語文成績改成95.

c)所有同學的語文成績都-10

d)將總成績倒數3名的同學的數學成績+10分

4.洗掉數據
delete from [表名] where [篩選條件];

資料庫的資料都是存到磁盤上的,如果資料特別多,超出磁盤容納的上限,此時就無法繼續寫入資料了,根據資料的重要情況,決定是定期清理還是定期備份,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/352279.html
標籤:其他
上一篇:[OS-Linux]詳解Linux的行程間通信1------管道
下一篇:打卡第二天-線性規劃(2)
