Mysql第六講 select查詢基礎篇
基本語法
select 查詢的列 from 表名;1
注意:
-
select語句中不區分大小寫,SELECT和select、FROM和from效果一樣。
-
查詢的結果放在一個表格中,表格的第1行稱為列頭,第2行開始是資料,類屬於一個二維陣列。
查詢常量
select 常量值1,常量值2,常量值3;1
如:
mysql> select 1,'b';+---+---+| 1 | b |+---+---+| 1 | b |+---+---+1 row in set (0.00 sec)1234567
查詢表示式
select 表示式;1
如:
mysql> select 1+2,3*10,10/3;+-----+------+--------+| 1+2 | 3*10 | 10/3 |+-----+------+--------+| 3 | 30 | 3.3333 |+-----+------+--------+1 row in set (0.00 sec)1234567
查詢函式
select 函式;1
如:
mysql> select mod(10,4),isnull(null),ifnull(null,'第一個引數為空返回這個值'),ifnull(1,'第一個引數為空返回這個值,否知返回第一個引數');+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+| mod(10,4) | isnull(null) | ifnull(null,'第一個引數為空返回這個值') | ifnull(1,'第一個引數為空返回這個值,否知返回第一個引數') |+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+| 2 | 1 | 第一個引數為空返回這個值 | 1 |+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+1 row in set (0.00 sec)1234567
說明一下:
mod函式,對兩個引數取模運算。
isnull函式,判斷引數是否為空,若為空返回1,否則返回0。
ifnull函式,2個引數,判斷第一個引數是否為空,如果為空返回第一個引數的值,否則返回第一個引數的值。
查詢指定的欄位
select 欄位1,欄位2,欄位3 from 表名;1
如:
mysql> drop table if exists test1;Query OK, 0 rows affected (0.01 sec)mysql> create table test1(a int not null comment '欄位a',b varchar(10) not null default '' comment '欄位b');Query OK, 0 rows affected (0.01 sec)mysql> insert into test1 values(1,'a'),(2,'b'),(3,'c');Query OK, 3 rows affected (0.01 sec)Records: 3 Duplicates: 0 Warnings: 0mysql> select a,b from test1;+---+---+| a | b |+---+---+| 1 | a || 2 | b || 3 | c |+---+---+3 rows in set (0.00 sec)12345678910111213141516171819
說明:
test1表有兩個欄位a、b,select a,b from test1;用於查詢test1中兩個欄位的資料。
查詢所有列
select * from 表名1
說明:
*表示返回表中所有欄位。
如:
mysql> select * from test1;+---+---+| a | b |+---+---+| 1 | a || 2 | b || 3 | c |+---+---+3 rows in set (0.00 sec)123456789
列別名
在建立資料表時,一般都會使用英文單詞或英文單詞縮寫來設定欄位名,在查詢時列名都會以英文的形式顯示,這樣會給使用者檢視資料帶來不便,這種情況可以使用別名來代替英文列名,增強閱讀性。
語法:
select 列 [as] 別名 from 表;1
使用雙引號建立別名:
mysql> select a "列1",b "列2" from test1;+------+------+| 列1 | 列2 |+------+------+| 1 | a || 2 | b || 3 | c |+------+------+3 rows in set (0.00 sec)123456789
使用單引號建立別名:
mysql> select a '列1',b '列2' from test1;;+------+------+| 列1 | 列2 |+------+------+| 1 | a || 2 | b || 3 | c |+------+------+3 rows in set (0.00 sec)123456789
不用引號建立別名:
mysql> select a 列1,b 列2 from test1;+------+------+| 列1 | 列2 |+------+------+| 1 | a || 2 | b || 3 | c |+------+------+3 rows in set (0.00 sec)123456789
使用as建立別名:
mysql> select a as 列1,b as 列 2 from test1;ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2 from test1' at line 1mysql> select a as 列1,b as '列 2' from test1;+------+-------+| 列1 | 列 2 |+------+-------+| 1 | a || 2 | b || 3 | c |+------+-------+3 rows in set (0.00 sec)1234567891011
別名中有特殊符號的,比如空格,此時別名必須用引號引起來。
懵逼示例,看效果:
mysql> select 'a' 'b';+----+| a |+----+| ab |+----+1 row in set (0.00 sec)mysql> select 'a' b;+---+| b |+---+| a |+---+1 row in set (0.00 sec)mysql> select 'a' "b";+----+| a |+----+| ab |+----+1 row in set (0.00 sec)mysql> select 'a' as "b";+---+| b |+---+| a |+---+1 row in set (0.00 sec)12345678910111213141516171819202122232425262728293031
認真看一下第1個和第3個返回的結果(列頭和資料),是不是懵逼狀態,建議這種的最好使用as,as後面跟上別名。
表別名
select 別名.欄位,別名.* from 表名 [as] 別名;1
如:
mysql> select t.a,t.b from test1 as t;+---+---+| a | b |+---+---+| 1 | a || 2 | b || 3 | c |+---+---+3 rows in set (0.00 sec)mysql> select t.a as '列 1',t.b as 列2 from test1 as t;+-------+------+| 列 1 | 列2 |+-------+------+| 1 | a || 2 | b || 3 | c |+-------+------+3 rows in set (0.00 sec)mysql> select t.* from test1 as t; +---+---+| a | b |+---+---+| 1 | a || 2 | b || 3 | c |+---+---+3 rows in set (0.00 sec)mysql> select * from test1 as t;+---+---+| a | b |+---+---+| 1 | a || 2 | b || 3 | c |+---+---+3 rows in set (0.00 sec)123456789101112131415161718192021222324252627282930313233343536373839
注意:
-
建議別名前面跟上as關鍵字
-
查詢資料的時候,避免使用select *,建議需要什麼欄位寫什麼欄位
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2721963/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《MySQL 基礎篇》四:查詢操作MySql
- MySQL講義第 47 講——select 查詢之查詢練習(五)MySql
- MySQL講義第27講——select 查詢之自連線查詢MySql
- Mysql基礎+select5種子句 + 子查詢MySql
- MySQL基礎篇快速記憶和查詢MySql
- MySQL第六篇:索引與子查詢MySql索引
- MySQL45講基礎篇MySql
- MySQL基礎查詢語句MySql
- mysql查詢表基礎資訊MySql
- MySQL資料庫基礎——多表查詢:子查詢MySql資料庫
- 閃回查詢(基礎例項講解)
- MySQL(三)DQL之基礎查詢MySql
- 閃回事務查詢(基礎例項講解)
- MySQL學習(三) SQL基礎查詢MySql
- Mysql系列第七講 玩轉select條件查詢,避免採坑MySql
- Elasticsearch 第六篇:聚合統計查詢Elasticsearch
- 史上最簡單MySQL教程詳解(基礎篇)之多表聯合查詢MySql
- select查詢之三:子查詢
- select查詢之一:普通查詢
- select子查詢
- Thinkphp5基礎——07 模型(模型關聯——查詢篇)PHP模型
- 剖析SQL Server 2005查詢通知之基礎篇SQLServer
- 資料庫基礎查詢--單表查詢資料庫
- MySQL基礎知識點串講PART04--完結篇MySql
- select查詢之四:連線查詢
- MySQL--基礎知識點--65--組合查詢MySql
- mysql 各種級聯查詢後更新(update select).MySql
- SQL的基礎查詢案例SQL
- Django:查詢基礎語法Django
- MySQL必知必會筆記——查詢的基礎知識MySql筆記
- 查詢優化與併發控制[姊妹篇.第六彈]優化
- SQL Server調優系列基礎篇(子查詢運算總結)SQLServer
- MySQL 學習之索引篇和查詢MySql索引
- MySQL索引基礎--菜鳥篇MySql索引
- 《MySQL 基礎篇》五:函式MySql函式
- ElasticSearch基礎及查詢語法Elasticsearch
- SQL語言基礎(子查詢)SQL
- MSSQL基礎教程:多表格查詢SQL