MySQL 查詢語句 1

2021-07-10 16:39:29 字數 4139 閱讀 8932

一:建立資料庫

1:create

database test; //建立資料庫test

2:show databases; //檢視目前資料庫中可用的資料庫,缺省會有系統資料庫

3:use test; //將test設定為目前操作的資料庫

4:show tables; //顯示乙個資料庫中的所有表

5:show columns from test.table //顯示test資料庫中乙個表的詳細資訊

二:select查詢和排序

1:select col from test.table;   //將test.table中的col列選擇出來

2:select col,col1 from test.table; //將test.table中col,col1列選擇出來

3:select * from test.table; //將test.table中所有列選擇出來

4:select

distinct col from test.table; //將test.table中col列選擇出來,並且剔除重複。

select

distinct col,col1 from test.table; //需要注意,會將col和col1中各自不同的剔除,去除重複時以不同的多的為主。

三:限制 limit

5: select col from test.table limit 5;   //返回test.table的col列,返回不多於5行

select col from test.table limit 5,5; //從第5行開始,往後數5行,注意,mysql是有0行這個概念的

四:排序 order by

6: select col from test.table

order

by col; //從test.table中選擇col列,並且按照col列排序。

select col,col1 from test.table

order

by col,col1; //按照col和col1列排序

select col from test.table

order

by col desc; //desc指定按照 逆序,如果想對多個列採用,那麼必須同時對每一列指定desc

//order by 和limit共同使用時,注意將limit放在order by後面。

五:選擇 where

7: select col from test.table where col=5;  //從test.table中選出col列值為5的元組。

//whrer和order by 共同使用時,注意將order by放到where後面。

//where 字句的操作符: = 等於 <> 不等於 != 不等於 < 小於 <= 小於等於 > 大於 >= 大於等於 between a and b a和b範圍之間的

select col from test.table where col <> 5; //col的值不等於5的,可以直接用!=

select col from test.table where col between 5

and10; //col的值在5或者10的。

select col from test.table where col1 is null; //預設檢測col1中是否有空值,比如有的使用者的郵箱沒有填。

六:資料過濾 and

8: select col,col1 from test.table

where col=1

and col1=2; //選出col=1並且col1=2的元組

select col,col1 from test.table

where col=1

or col1=2; //選出col=1或者col1=2的元組

select col,col1 from test.table

where (col=1

or col1=2) and col3 = 5; //選出col=1或者col1=2並且col3=5的所有元組

//注意:預設情況下and的優先順序比or高。

select col from test.table

where col in(3,5,...); //in實現和or一樣的功能,將()中的元素一一對應過去

select col from test.table

where col not

in(3,5); //除過col=3,4,5,的情況,顯示其餘部分

七:簡單匹配和正則。

9: select col from test.table

where col like

'jet%'; //%表示任意,'jet%'表示所有以jet開頭的。

10: select col from test.table

where col like

'_ ton'; //_表示乙個,'_ ton'表示所有 ton前面還有乙個字元 的串。

//正常情況下我們一般將萬用字元放在搜尋模式的最後,因為通配非常浪費時間,我們一般給盡可能小的資料量通配。

//正規表示式: regexp 處理簡單萬用字元無法處理的情況

//與通配的不同指出在於,通配時候,除非列中的資料完全和我們指定的串相等時才會查詢出來結果,即使資料中包含我們查詢的串也不行,舉個例子

//資料是 'hello' ,where col like 'hell' 是不會將'hello'返回的,但是我們用regexp就可以

//這點非常重要,即regexp會匹配我們資料的字串。

11: select prod_name from test.table

where col regexp '.jet'; // .表示匹配任意乙個字元,這點與萬用字元不同

12:select prod_name from test.table

where col regexp 1000|2000; // col 等於1000或者2000,還可以多增加幾個or

13: select prod_name from test.table

where col regexp '[123] ton'; //相當於匹配 1 ton|2 ton|3 ton;

select prod_name from test.table

where col regexp '[1-3] ton'; //和上面的語句是同乙個作用,簡寫。

select prod_name from test.table

where col regexp '1|2|3 ton'; //與上面的不同,相當於 1 | 2 | 3 ton;

select prod_name from test.table

where col regexp '[^123] ton'; //除過123之外的.ton,注意^是在裡面的。

//轉義字元 mysql中用 \\x x表示我們要轉義的字元 第乙個\mysql自己解釋,第二個\正規表示式庫解釋

select prod_name from test.table

where col regexp '\\.'; //找出帶符號.的。

//匹配字元

select prod_name from test.table

where col regexp '\\([0-9] sticks?\\)'; // \\( 轉義前括號 [0-9]匹配0-9 ?匹配乙個字元,\\)匹配後括號。

//^作為定位符 表示開始

select prod_name from test.table

where col regexp '^[0-9]\\.'; //表示以數字或者.開頭的串。

//regexp 是想和 like 一樣的功能

select prod_name from test.table

where col regexp '1000'

select prod_name from test.table

where col regexp '^1000$' //將每一項都按照全部匹配來做,和上面一樣.

mysql 查詢語句

在pdo中有很多模式能用,在使用的時候在用 bindvalue 的時候 在select 中有in 的 語句無法實現,在傳入的時候 select from users where id in 1,2,3 當1,2,3 用 pdo param str 的時候,會出現這種情況 select from ue...

MySQL查詢語句

建立水果表 create table fruits f id char 10 not null,s id int notnull,f name char 255 not null,f price decimal 8,2 not null,primary key f id 插入資料 insert in...

MYSQL查詢語句

內連線 取的兩個表的 有能連線的字段 的交集,即欄位相同的。利用內連線可獲取兩表的公共部分的記錄。select st.sno,st.sname,st.s st.age,st.sdept,co.cname,sc.grade from student st,course co,score sc wher...