mysql資料庫預設建立的test資料庫下實踐
/*建立兩張表 users 和 products*/
use test;
create
table
`test`.`users`( `user_id`
intnot
null auto_increment, `username`
varchar(30), primary
key (`user_id`) );
create
table
`test`.`products`( `p_id`
intnot
null auto_increment, `user_id`
int, `p_name`
varchar(40), primary
key (`p_id`) );
/**插入users表資料**/
insert
into
`test`.`users` ( `username`) values ('user1');
insert
into
`test`.`users` ( `username`) values ('user2');
insert
into
`test`.`users` ( `username`) values ('user3');
insert
into
`test`.`users` ( `username`) values ('user4');
insert
into
`test`.`users` ( `username`) values ('user5');
insert
into
`test`.`users` ( `username`) values ('user6');
insert
into
`test`.`users` ( `username`) values ('user7');
insert
into
`test`.`users` ( `username`) values ('user8');
insert
into
`test`.`users` ( `username`) values ('user9');
insert
into
`test`.`users` ( `username`) values ('user10');
insert
into
`test`.`users` ( `username`) values ('user11');
insert
into
`test`.`users` ( `username`) values ('user12');
insert
into
`test`.`users` ( `username`) values ('user13');
1、查詢產品最多的五個使用者名稱,以及產品數目/*插入products表資料*/
insert
into
`test`.`products` (`user_id`, `p_name`) values ('1', 'p1');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('2', 'p2');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('3', 'p3');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('4', 'p4');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('5', 'p5');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('6', 'p6');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('7', 'p7');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('8', 'p8');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('9', 'p9');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('10', 'p10');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('11', 'p11');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('12', 'p12');
insert
into
`test`.`products` (`user_id`, `p_name`) values ('13', 'p13');
/*查出每個產品對應的使用者名稱的記錄*/
select p_id,username from users u , products p where u.`user_id` = p.user_id;
/*將查詢出來的結果建立乙個檢視p_u_view,儲存到資料庫中*/
create
view p_u_view as (select username,p_id from users u , products p where u.`user_id` = p.user_id)
/*從檢視中查詢出產品最多的前三名使用者名稱以及產品數量*/
select username,count(username) pcount from p_u_view
group
by username
order
by pcount desc
limit 0,3;
查詢結果:/*完整的sql語句*/
select username,count(username) pcount from (select username,p_id from users u , products p where u.`user_id` = p.user_id) name_count
group
by username
order
by pcount desc
limit 0,3;
/*********desc 遞減 ,asc 遞增 *********/
/*oracle中不支援limit語法,可以用top語法 或者使用oracle的隱藏欄位rownum來實現*/
sql多表聯查
sql的多表聯查有點忘了,搞個例子記錄一下,以後再忘來看看。一 內連線 student表 name collegeid 張三11 李四college表 collegeid collegename 11清華 北大內連線 select name,college.collegename from stud...
SQL多表聯查總結
交叉連線 不常用 返回兩個表的笛卡爾乘積 也即全組合排列 中符合查詢條件的資料行。內連線返回連線表中符合連線條件和查詢條件的資料行。左外連線 返回符合連線條件和查詢條件 即 內連線 的資料行,且還返回左表中不符合連線條件但符合查詢條件的資料行。右外連線 返回符合連線條件和查詢條件 即 內連線 的資料...
SQL多表關聯查詢
關於 有時候,我們查詢資料時,會採用多資料庫關聯查詢的方式。資料庫通過連線兩張表或多張表查詢時,會生成一張臨時的中間表,然後返回給使用者的就是這張臨時表的資料。那麼具體怎麼操作呢?我們可以採用left join,搭配on where來實現。具體備註 1.on條件是在生成臨時表時使用的條件,它不管on...