關於mysql資料庫的一些使用心得

2021-08-16 19:52:42 字數 4064 閱讀 9944

建立乙個部落格應用 定義了五個表 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 資料冗餘 資料冗餘大致分為兩種 資料庫冗餘。是指為了防止資料丟失,或者為了提高資料庫效能而對整個資料庫進行備份操作,這樣可以防止其中一台資料庫崩潰時系統平台也崩潰的情況。資料表字段冗餘。是指在設計資料庫時,某一字段資料乙個表,但它又同時出現在...