AS, SUM, DESC, GROUP BY, ORDER BY, AVG, MIN, MAX, COUNT, LIMIT;
select * from user as u order by age limit 5;
// as 用來做別名, order by 用來排序(從小到大,從大到小是DESC), limit用來取結果的條數。select sum(age) from user group by sex;
// sum分別求出user中男性年齡的和,還有女性的年齡和,group by分組。avg是求平均, min是求最小值, max是最大值,和sum用法一樣
select count(user_id) from user;
//返回user_id個數,也就是表中人數。//查詢所有人的信息,並按照年齡排序:
select * from user order by age;//查詢名叫chen的信息:
select * from user where username='chen';//查詢年齡為18的人的姓名,並讓id從大到小排序
select username from user where age=18 order by user_id DESC;
IN, NOT IN, EXISTS, NOT EXISTS。
//查詢所有擁有toyname為pig的人的姓名:
select username from user where user_id in (select user_id from toy where toyname='onepiece');
select u.username, t.toyname from user as u cross join toy as t;
//交叉連接就是把所有第一個表和第二個表的值一一對應
//例如:假如第一個表格有5個值,第二個表有4個值,這個結果就應該有20條記錄。
select u.username, t.toyname from user as u inner join toy as t on(也可以用where) u.user_id = t.user_id;
//這個的結果就是各自擁有的玩具了。
select u.username, t.toyname from user as u inner join toy as t on(也可以用where) u.user_id <> t.user_id order by u.username;
//這個的結果是各自沒有的玩具
這個是有在連接的兩個表格中的列名稱相等的時候才能用。
select u.username, t.toyname from user as u natural join toy as t; //和上面的相等連接的結果是一樣的。
左外聯接、右外聯接比較相似:left outer join ; right outer join;
select u.usrename, t.toyname from user u inner join toy t on (這裡不能用where) u.user_id = t.user_id;
//這個是查詢用戶姓名和他所擁有的玩具名字
select u.username, t.toyname from user u left outer join toy t on u.user_id = t.user_id;
//這個是以左表(user)為基准,來查詢所有用戶姓名和他所擁有的玩具名字。select u.username, t.toyname from user u right outer join toy t on u.user_id = t.user_id;
//這個是以右表(toy)為基准,來查詢所有玩具的擁有者姓名,對於沒有擁有者的為NULL
聯合查詢就是合並幾次的查詢結果到一張表裡
select user_id from user union select user_id from toy order by user_id;
//聯合的兩個查詢語句的列必須相同, union可以連接多個, 假如排序在最後一條語句後面加order by;(重復自動去除)
union all:
select user_id from user union all select user_id from toy order by user_id;
//和union的運作方式一樣,就是union all的結果裡會返回所有值,而不是每個值的復制,包裹重復的也會列出來。
create table m_union as select user_id from user union select user_id from toy;
//這樣會把user裡的user_id和toy表裡的user_id的內容都拿出來放到心創建的m_union表格裡。
INTERSECT,EXCEPT
INTERSECT是交集. EXCEPT是差集的意思select user_id from user intersect select user_id from toy;
//就是返回這兩個select查詢相同的部分.(這裡就是有玩具的孩子的user_id)select user_id from user except select user_id from toy;
//就是返回第一個select 減去第二個select 結果的部分。(這裡就是沒有玩具的孩子的user_id)
大致先這麼多,以後再說聯接轉換子查詢