Mysql 的基礎查詢語句

使用Mysql 的基礎查詢語句

``名稱等東西可以加上這個

1. show

use 數據庫名; #進入數據庫
show database; #顯示數據庫
show table; # 顯示所有表
show COLUMNS FROM 表名# 顯示錶列
SHOW STATUS,用於顯示廣泛的服務器狀態信息;
SHOW GRANTS; #顯示授予用戶的權限
SHOW ERRORS和SHOW WARNINGS; #用來顯示服務器錯誤或警告消息。
desc 表名; #查詢表結構

2. SELECT

SELECT 列名1,列名2 from 表名; # 查看錶中多個列的元素
SELECT * FROM 表名; # *通配符 所有列
SELECT DISTINCT id FROM TABL_E; #去重放在列名前面
# distinct
SELECT ID FROM TABL_E LIMIT 5; #前5個行
SELECT ID FROM TABL_E LIMIT 5, 5; #從第5行開始的後5個行,行是從0開始的
SELECT ID FROM TABL_E LIMIT 5 OFFSET 1; #從第1行開始的後5個行,行是從0開始的
SELECT TABL_E.ID FROM TABL_E; #完全限定列名

# 查詢常量值
SELECT 100;
SELECT 'ssa';
# 查詢表達式
SELECT 100%98;
# 查詢函數
SELECT VERSION();

# 起別名
/*
便於理解
如果查詢字段有重名的情況,使用別名可區分
也可以只加空格
加雙引號可以區分
*/
SELECT 100%98 AS 結果;
SELECT last_name AS 姓, first_name AS 名 FROM emp;
SELECT last_name "姓", first_name 名 FROM emp;
SELECT DISTINCT last_name "姓", first_name 名 FROM emp; 去重
SELECT CONCAT('a','b','c') AS 結果; # 如果有null就會自動顯示null
# 連接
/*
 結果
 abc
 */
 
SELECT 
  IFNULL(sid, 0) AS id, # 如果爲空換成什麼值
  CONCAT(sid,',', cid)  #其實就像c++中的 cout << 一樣;
FROM
  sc ;

不能部分使用DISTINCT, DISTINCT關鍵字應用於所有列而 不僅是前置它的列。如果給出SELECT DISTINCT vend_id, prod_price,除非指定的兩個列都不同,否則所有行都將被 檢索出來。

樣例

3. 排序數據

sql語句是由子句構成的 通常一個人關鍵字和所提供數據組成

SELECT ID FROM TABL_E ORDER BY ID;
# order這條語句除了指示MySQL對prod_name列以字母順序排序數據的ORDER BY子句外,與前面的語句相同

3.1 多級排序

就連着在後面寫就行了

SELECT ID, Iv, Ix FROM TABL_E ORDER BY ID, Iv, Ix; #會先按ID在按Iv在按Ix排序
  • 排序方向:
SELECT ID,Iv FROM TABL_E ORDER BY ID DESC; #降序desc 降序關鍵字只需要放在需要對應的列後面
SELECT ID,Iv FROM TABL_E ORDER BY ID DESC, Iv;
# ID 降序 Iv沒有 
#ASC升序 默認升序
  • 組合找最值

    SELECT ID,Iv FROM TABL_E ORDER BY ID DESC LIMIT 1; # 最高的以此可以知道如何找最低的
    limit 必須放在orderby 之後
    

    3.2 條件查詢

 /*
 語法:
	select
		查詢列表 3
	form
		表名 1
	where                  #r如同if 表達的結果不是true就是false
		篩選條件; 2
 */
 
/*
一按條件表達式篩選
條件運算符: >< = != <=  >=
二邏輯表達式
	&& || !
	and or not
	模糊表達式
	like
	between and
	in
	is null
*/
# 查詢大於12000的信息
SELECT 
  * 
FROM
  emp 
 WHILE
    salary > 12000 ;
# 查看不等於90的
SELECT 
	*
FROM
	emp
WHERE
	dep_id!=90; 或者 dep_id<>90;
  • 按邏輯表達式
    • 用於連接條件表達式的
# 90到100之間
SELECT 
	*
FROM 
	emp
WHERE 
	dep_id >= 90 AND dep_id <= 100;

# id 不是在90到100之間的,或者工資高於 cs 不等於90的
SELECT 
*
FROM 
	emp
WHERE
	NOT(90 <= dep_id AND dep_id <= 100) OR cs != 90;
  • 模糊查詢

    like
    between and
    in
    is null | is not null
    # like
    一般跟通配符一起用
    % 任意多個字符 包含0, not null
    _ 任意單個字符
    \ 如果要轉義就用 也可以自己設置 ESCAPE '$'
    # 查詢包含字母c的信息
    SELECT * FROM emp WHERE
    	name_s LIKE '%c%'; # %->是通配符
    # 查第二個字符是c的
    SELECT * FROM emp WHERE
    	name_s LIKE '_c%'; # %->是通配符
    
    # between and
    # 90-100
    # 包含臨界值
    # 必須從左到右
    SELECT * FROM emp WHERE dep_id BETWEEN 90 AND 100;
    # in
    
    SELECT 
    	*
    FROM
    	emp
    WHERE
    	dep_id = 90 OR dep_id = 100 OR dep_id = 110;
    
    # --------------------------------------------------------
    # 判斷是否屬於in內的值
    
    SELECT 
    	*
    FROM
    	emp
    WHERE
    	dep_id IN(90, 100, 110);
    
    
    • is null | is not null

      等於和普通的運算符不能判斷null值

SELECT 
	*
FROM
	emp
WHERE
	cs is null;
  • 安全等於

    • <=>: 這個可以用null和普通值
    SELECT 
    	*
    FROM
    	emp
    WHERE
    	cs <=> null;
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章