MYSQL數據庫操作總結(一)

《主鍵》
某一列要作爲主鍵的條件:

  1. 任意兩行都不具有相同的主鍵。
  2. 每行都必須有一個主鍵(主鍵列不允許爲NULL)
    使用主鍵的好習慣:
    1.不更新主鍵列的值
    2.不重用主鍵列的值
    3.不在主鍵列中使用可能會更改的值。
    (例如,如果使用一個 名字作爲主鍵以標識某個供應商,當該供應商合併和更改其 名字時,必須更改這個主鍵。)

《外鍵》

《檢索》
使用庫: use 庫名
查看錶: show 表名 詳細的列信息: desc 表名
檢索單個列:select 列名 from 表名;
檢索多個列: select 列名,列名… from 表名;
檢索所有的列: select * from 表名;

對檢索結果進行去重: distinct 關鍵字。
例如: select distinct id from 表名;

限制結果: 只顯示前n行。
例: select * from 表名 limit n; (n是顯示的行數,結果將不會大於n行)

檢索的是下一個n行
例: select * from 表名 limit n,n; (顯示的是從第n行開始,後面的n行)

《排序檢索數據》
order by 列名… (依據一個或者多個列對輸出進行排序)
例:select * from 表名 order by id;(單個列,根據id進行排序) select * from 表名 order by price,name; (先通過價格對結果排序,再在價格中對名字進行排序)

指定方向排序:
升序 ASC(默認), 降序 DESC;
例: select * from 表名 order by price DESC,name; (該語句的對結果的價格進行降序排序,然後對姓名進行升序的排序(不寫則默認升序));

《過濾數據》
1.使用where 子句;
where常用的操作符:= (相等) <> (不相等) != 不相等 < <= > >= between and (在指定的兩個值之間) 空值檢查 (is null)

《數據過濾》
1.and 操作符,在where 進行過濾數據時可連接多個判斷語句,必須同時滿足時才進行輸出。
例: select * from 表名 where id < 10 and name < ‘張三’;
2. or 操作符,與and不同之處在於,or連接的判斷語句,僅僅一個滿足時就可以進行輸出。
例: select * from 表名 where id < 10 or name < ‘張三’;
注意:
計算的次序:SQL 在處理or操作符之前,會優先處理AND操作符。 可以對or操作符加括號來防止優先級導致的錯誤。
例: select * from 表名 where (id < 10 or name < ‘張三’) and price >= 10;
3.in 操作符,in用來指定範圍,where後括號的條件都可以進行匹配。
例: select * from 表名 where id in (1002,1003);
可以看出in 和 or 的作用有點相似,那爲什麼還要有in 和 or 兩個關鍵字呢?有一個不就行了嗎?
原因:
1. 當選項過於長時,使用in 會更加的清晰。
2. 使用in 時計算的次序更加容易管理。
3. in 操作符一般比or操作符 執行更快。
4. in 的最大優點是可以包含其他的select語句。
4. not 操作符,與in的操作符相反,這裏不再詳細敘述。

《使用通配符進行過濾》
1.like 操作符
通配符: % %表示任何字符出現 任意次數。
例:select * from 表名 like ‘zhang%’;
_ 下劃線的用途與%一樣,但下劃 線只匹配單個字符而不是多個字符.
例:select * from 表名 like ‘_三’;
通配符的使用注意:
1.不要過度使用通配符。如果其他操作符能達到相同的目的,應該 使用其他操作符。
2.在確實需要使用通配符時,除非絕對有必要,否則不要把它們用 在搜索模式的開始處。把通配符置於搜索模式的開始處,搜索起 來是最慢的。
3.仔細注意通配符的位置。如果放錯地方,可能不會返回想要的數據。

《用正則表達式進行搜索》
關鍵字 EXGEXP ,正則表達式的作 用是匹配文本,將一個模式(正則表達式)與一個文本串進行比較。
不區分大小寫,區分的情況下可在後面加入 BINARY。
例:select id from 表名 where id REGEXP ‘1000 | 2000’; | 表示或 . 表示匹配單個字符 [] 匹配範圍。
有興趣的大家可以下來了解。

《創建計算字段》
計算字段並不實際存在於數據庫表中。計算字段是運行時在SELECT語句 內創建的。
1.拼接 將值聯結到一起構成單個值。
使用Concat() 函數來拼接兩個列。
MySQL的不同之處 多數DBMS使用+或||來實現拼接, MySQL則使用Concat()函數來實現。
當把SQL語句轉換成 MySQL語句時一定要把這個區別銘記在心。
例:
在這裏插入圖片描述
上圖中的目的達到了,但是列名看起來有點突兀,該怎麼解決呢?2.MYSQL提供了AS 關鍵詞來給列起一個別名。
在這裏插入圖片描述
別名的其他用途: 別名還有其他用途。常見的用途包括在實際 的表列名包含不符合規定的字符(如空格)時重新命名它,在 原來的名字含混或容易誤解時擴充它,等等。
3.執行算數計算
常用的算術操作符有: + - * / 。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章