一:建立資料庫
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...