建立乙個部落格應用 定義了五個表 users,blogs, comments,tags,blog_tag
9.users中最晚註冊的使用者(user_name,user_createdat)
select user_name ! ,user_createdat !
from users
where user_createdat = (select max(user_createdat)
from users)
在列名後加入字串可以當做列名的別名,但是不可以是數字
10.users中每個城市最晚註冊的使用者(user_name,user_city,user_createdat)
mysql多表聯查
內連線 inner join在mysql中用join也可代表inner join
外連線 左外聯接left [outer] join
右外聯接right [outer] join
create table t1(
customer_id varchar(10),
city varchar(10) not null,
primary key(customer_id)
)default charset = utf8
create table t2(
order_id int auto_increment,
cid varchar(10),
primary key(order_id)
)default charset = utf8
insert into t1 values('tedu','hz'),('jd','bj'),('tx','bj'),('bd','sh')
insert into t2(cid) values('tedu'),('jd'),('jd'),('tx'),(null)
t1和t2做無條件內連線,得到乙個t1和t2所有可能的資料記錄的組合
形成的表.大表又稱為t1和t2的笛卡爾積
select * from t1 join t2
t1和t2表做有條件內連線,從t1和t2的笛卡爾積中
篩選出符合條件的那些資料記錄組成乙個資料表
select * from t1 join t2 on t1.customer_id = t2.cid
只有在經過有條件內連線後獲得的資料表上,才能做
左外聯接或右外連線.
左外聯接或右外連線就是在有條件內連線表基礎上,必須
將主表記錄玩整顯示的資料表
select * from t1 left join t2 on t1.customer_id = t2.cid
select * from t1 right join t2 on t1.customer_id = t2.cid
10.users中每個城市最晚註冊的使用者
使用聯結構成的表時需要給之命名,僅做展示的話不需命名
向部落格表等其它資料表中插入資料
要求:1 不是所有的使用者都寫部落格
2 乙個使用者可以寫多篇部落格
3 不是所有的部落格都有標籤
4 乙個部落格可以有多個標籤
11.查詢所有部落格的作者資訊
(blog_id,blog_title,user_name)
select blog_id,blog_title,user_name
from blogs
join users
on blog_user_id = user_id
select group_concat(blog_title),user_name
from blogs
join users
on blog_user_id = user_id
group by user_name
12.查詢所有使用者及其所寫的blog
(user_id,user_name,blog_title)
select user_id,user_name,blog_title
from users
left join blogs
on user_id = blog_user_id
13.查詢所有blog的標籤資訊
(blog_id,blog_title,tag_content)
step 1 從blogs_tag查出有標籤的blog資訊
select rel_blog_id,rel_tag_id
from blogs_tag
step 2 從tags表和step1查詢得到的派生表查詢具體
tag的內容
select tag_content,rel_blog_id
from tags
join (select rel_blog_id,rel_tag_id
from blogs_tag)t1
on tag_id = rel_tag_id
可選 step 2.5 讓blog的標籤內容在一行顯示
select group_concat(tag_content),rel_blog_id
from tags
join (select rel_blog_id,rel_tag_id
from blogs_tag)t1
on tag_id = rel_tag_id
group by rel_blog_id
step3 從blogs表和step2 / step2.5查詢得到的派生表
聯合查詢得到blog的標題
select blog_id,blog_title,tc
from blogs
left join (select group_concat(tag_content)tc,rel_blog_id
from tags
join (select rel_blog_id,rel_tag_id
from blogs_tag)t1
on tag_id = rel_tag_id
group by rel_blog_id)t2
on blog_id = rel_blog_id
14.查詢所有blog的標籤資訊及其作者資訊
select blog_id,blog_title,tc,user_name
from users
join (select blog_id,blog_title,tc
from blogs
left join (select group_concat(tag_content)tc,rel_blog_id
from tags
join (select rel_blog_id,rel_tag_id
from blogs_tag)t1
on tag_id = rel_tag_id
group by rel_blog_id)t2
on blog_id = rel_blog_id)t3
on user_id=blog_user_id
step1.
關於一些MySQL資料庫的書籍
最近安裝電腦系統,看到之前買的一些關於mysql的資料,pdf版本的,看了之後感覺不錯,就去買了書,pdf就放在電腦裡吃灰了。現在心血來潮,想共享給大家 每個都是最低分,沒辦法0分 以下是列表 深入理解mysql核心技術 高可用mysql 第2版 美 貝爾 塞爾曼 這本書太大,我分成2部分上傳的 第...
mysql 資料庫使用的一些規範
通常來講,各個網際網路公司的資料庫分為5個資料庫環境 這些環境的機器,一定要做到許可權劃分明確,讀寫帳號分離,並且有辨識度,能區分具體業務。例如使用者名稱w wap,r wap 能看出來,讀寫帳號是wap應用的 開發規範本身也包含幾部分 基本命名和約束規範,字段設計規範,索引規範,使用規範等 規範存...
關於mysql資料庫的一些優化方案
最近在工作中總結的一些經驗,將部分章節分享給大家 2.1 資料冗餘 資料冗餘大致分為兩種 資料庫冗餘。是指為了防止資料丟失,或者為了提高資料庫效能而對整個資料庫進行備份操作,這樣可以防止其中一台資料庫崩潰時系統平台也崩潰的情況。資料表字段冗餘。是指在設計資料庫時,某一字段資料乙個表,但它又同時出現在...