mysql命令 排序_mysql命令

语法

SELECT 函數名;

例:

mysql>SELECT DATABASE();

+------------+

| DATABASE() |

+------------+

| jiaowu |

+------------+

1 row in set (0.00 sec)

#查看默認數據庫是誰

mysql>SELECT LAST_INSERT_ID();

+------------------+

| LAST_INSERT_ID() |

+------------------+

| 4 |

+------------------+

1 row in set (0.00 sec)

#查詢上一次生成的ID到幾了

mysql>SELECT @@global.sql_mode;

+--------------------------------------------+

| @@global.sql_mode |

+--------------------------------------------+

| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |

+--------------------------------------------+

1 row in set (0.00 sec)

#@@表示調用服務器變量或內置變量

语法

SELECT select-list FROM tb WHERE qualification

SELECT * FROM tb_name;

#顯示表中所有字段

SELECT field1,field2 FROM tb_name;

#基於投影,只顯示哪些字段

例:mysql> SELECT Name,Age FROM students;

+------+------+

| Name | Age |

+------+------+

| Tom | 30 |

+------+------+

1 row in set (0.00 sec)

SELECT * FROM tb_name WHERE qualification

#選擇,顯示符合條件的行, qualification表示搜索碼,搜索碼是表中字段即可

例:mysql> SELECT * FROM students WHERE Age>=20;

+-----+------+------+--------+------+------+------+---------------------+

| SID | Name | Age | Gender | CID1 | CID2 | TID | CreateTime |

+-----+------+------+--------+------+------+------+---------------------+

| 1 | Tom | 30 | F | NULL | NULL | NULL | 2012-04-06 10:00:00 |

+-----+------+------+--------+------+------+------+---------------------+

1 row in set (0.00 sec)

mysql>SELECT Name,Age FROM students WHERE Age>=20;

+------+------+

| Name | Age |

+------+------+

| Tom | 30 |

+------+------+

1 row in set (0.00 sec)

SELECT [DISTINCT] * FROM tb_name WHERE qualification

#[DISTINCT]表示其後的相同的值只顯示一次,如下面語句中指Gender相同的只顯示一次

例:mysql> SELECT DISTINCT Gender FROM students;

+--------+

| Gender |

+--------+

| F |

+--------+

1 row in set (0.00 sec)

========================================================

*** 规范

1. FROM子句後可跟表、多個表、其它SELECT語句,表示要查詢的關系

2. WHERE子句指定一個布爾關系表達式,用到的符號有=、>、=、<=、!=、<=>,在做數值比較時,數值不能加引號,條件是字符時必須用’’引號引起,<=>表示就算表中有空值也可以正確比較

3. 邏輯表達式

AND、OR、NOT

BETWEEN…AND…# 在…之間

LIKE ''# 比較操作,這時要用通配符%和_

%表示任意長度任意字符

_表示一個長度任意字符

REGEXP或RLIKE# 支持正則表達式

IN ()# 做離散取值時使用,括號中是符合的條件

IS NULL# 判斷是否為空

IS NOT NULL # 判斷是否不空

ORDER BY field_name (ASC|DESC)

# 將查詢後的結果排序,默認是昇序,ASC是昇序,DESC是降序

AS# 字段別名

4. LIMIT子句:只显示几行结果或偏移几行显示几行

LIMIT [offset,]Count

5. 聚合計算:SUM(), MIN(), MAX(), AVG(),COUNT()

6. GROUP BY:分組,目的是將整張表的內容跟據某個標准碼分完組後求聚合函數

HAVING# 條件:分組時用的过滤。与WHERE使用方法一样

========================================================

例:

mysql>source /root/jiaowu.sql

mysql>SELECT Name,Age FROM students WHERE Age>=20;

+-------------+------+

| Name | Age |

+-------------+------+

| DingDian | 25 |

| HuFei | 31 |

mysql>SELECT Name,Age FROM students WHERE Gender='M';

+-------------+------+

| Name | Age |

+-------------+------+

| GuoJing | 19 |

| YangGuo | 17 |

mysql>SELECT Name,Age FROM students WHERE Age+1>=20;

+-------------+------+

| Name | Age |

+-------------+------+

| GuoJing | 19 |

| DingDian | 25 |

#用表達式做條件,但在字段中這樣用會不能索引

mysql>SELECT Name FROM students WHERE Age>20 AND Gender='M';

+-------------+

| Name |

+-------------+

| DingDian |

| HuFei |

#與

mysql>SELECT Name FROM students WHERE Age>20 OR Gender='M';

+-------------+

| Name |

+-------------+

| GuoJing |

| YangGuo |

#或

mysql>SELECT Name FROM students WHERE NOT Age>20;

+--------------+

| Name |

+--------------+

| GuoJing |

| YangGuo |

#非

mysql>SELECT Name,Age,Gender FROM students WHERE NOT Age>20 AND NOT Gender='M';

+--------------+------+--------+

| Name | Age | Gender |

+--------------+------+--------+

| HuangRong | 16 | F |

| YueLingshang | 18 | F |

mysql>SELECT Name,Age,Gender FROM students WHERE NOT (Age>20 OR Gender='M');

+--------------+------+--------+

| Name | Age | Gender |

+--------------+------+--------+

| HuangRong | 16 | F |

| YueLingshang | 18 | F |

mysql>SELECT Name,Age FROM students WHERE Age>=20 AND Age<=25;

+-------------+------+

| Name | Age |

+-------------+------+

| DingDian | 25 |

| ZhangWuji | 20 |

#年齡在20-25之間的同學

mysql>SELECT Name,Age FROM students WHERE Age BETWEEN 20 AND 25;

+-------------+------+

| Name | Age |

+-------------+------+

| DingDian | 25 |

| ZhangWuji | 20 |

#用BETWEEN…AND,与上面效果一样

mysql>SELECT Name FROM students WHERE Name LIKE 'y%';

+--------------+

| Name |

+--------------+

| YangGuo |

| YueLingshang |

#找姓名中以y開頭的,用LIKE,表示模糊查找,要用通配符

mysql>SELECT Name FROM students WHERE Name LIKE 'y____';

+-------+

| Name |

+-------+

| YiLin |

+-------+

#找y後跟4個字符的

mysql>SELECT Name FROM students WHERE Name LIKE '%ing%';

+--------------+

| Name |

+--------------+

| GuoJing |

| DingDian |

#找包含ing的

mysql>SELECT Name FROM students WHERE Name RLIKE '^[DHY].*$';

+--------------+

| Name |

+--------------+

| YangGuo |

| DingDian |

#RLIKE或REGEXP表示用正則表達式,找D、H、Y開頭的後面是任意字符,用正則時索引可能不太有用

mysql>SELECT Name FROM students WHERE Age IN (18,20,25);

+--------------+

| Name |

+--------------+

| DingDian |

| YueLingshang |

#找年齡爲18、20、25的,用IN來指定一個列表

mysql>SELECT Name FROM students WHERE CID2 IS NULL;

+-------------+

| Name |

+-------------+

| LingHuchong |

| YiLin |

+-------------+

#找課程2爲空的,用NULL時要用IS,不空用IS NOT NULL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值