mysql部落格園day mysql day03

2021-10-18 22:05:13 字數 3386 閱讀 9792

10:50分

3、多表查詢

1、兩種方式

1、不加where條件(笛卡爾積)

select t1.name,t2.name from t1,t2;

2、加where條件

select 欄位名列表 from 表1,表2 where 條件;

3、示例

1、查詢省、市詳細資訊

河北省 石家莊市

河北省 廊坊市

湖北省 武漢市

select sheng.s_name,city.c_name from sheng,city where sheng.s_id=city.cfather_id;

2、查詢省、市、縣詳細資訊

select sheng.s_name,city.c_name,xian.x_name from sheng,city,xian

where

sheng.s_id=city.cfather_id and

city.c_id=xian.xfather_id;

4、連線查詢

1、內連線(inner join)

1、語法格式

select ... from 表1 inner join 表2 on 條件

inner join 表3 on 條件;

2、示例

1、查詢省、市詳細資訊

select sheng.s_name,city.c_name from sheng

inner join city

on sheng.s_id=city.cfather_id;

2、查詢省、市、縣詳細資訊

select sheng.s_name,city.c_name,xian.x_name from

sheng inner join city

on sheng.s_id=city.cfather_id

inner join xian

on city.c_id=xian.xfather_id;

2、外連線

1、左連線(left join)

1、以左表為主顯示查詢結果

2、右連線(right join)

1、以右表為主顯示查詢結果

select sheng.s_name,city.c_name,xian.x_name from

sheng left join city

on sheng.s_id=city.cfather_id

right join xian

on city.c_id=xian.xfather_id;

5、約束

1、非空約束(not null)

1、不允許該字段的值為null

## name varchar(20) not null

2、預設約束(default)

1、插入記錄時,不給該字段賦值,則使用預設值

## *** enum("m","f","s") not null default "s";

6、索引

1、定義

對資料庫表的一列或者多列的值進行排序的一種結構(btree方式)

2、優點

加快資料的檢索速度

3、缺點

1、占用物理儲存空間

2、當對表中資料更新時,索引需要動態維護,占用系統資源,降低資料維護速度

4、索引示例

1、開啟執行時間檢測

set profiling=1;

2、執行查詢語句(沒有索引)

select name from t1 where name="lucy88888";

3、在name欄位建立索引

create index name on t1(name);

4、再執行查詢語句(有索引)

select name from t1 where name="lucy99999";

5、對比執行時間

show profiles;

7、索引分類

1、普通索引(index) && 唯一索引(unique)

1、使用規則

1、可設定多個字段

2、約束

普通索引:無約束 key標誌 :mul

唯一索引:字段值不允許重複,可為null  uni

3、把經常用來查詢的字段設定為索引字段

2、建立表建立

create table 表名(

index(name),

index(age),

unique(phnumber),

unique(cardnumber)

3、已有表建立

create [unique] index 索引名 on 表名(欄位名);

4、檢視索引

1、desc 表名;  --> key標誌

2、show index from 表名\g;

5、刪除索引

drop index 索引名 on 表名;

2、主鍵(primary key) && 自增長(auto_increment)

1、使用規則

1、只能有1個字段

2、約束 :字段值不允許重複,且不能為 null

3、key標誌 :pri

4、通常設定編號id為主鍵,能唯一鎖定1條記錄

2、建立表時建立

create table 表名(

id int primary key auto_increment,

alter table 表名 auto_increment =1000;

3、已有表建立

alter table 表名 add primary key(id);

4、刪除

1、先刪除自增長

alter table 表名 modify id int;

2、刪除主鍵

alter table 表名 drop primary key;

3、外來鍵(foreign key)

1、定義

讓當前表字段的值在另乙個表的範圍內選擇

2、語法

foreign key(參考欄位名)

references 主表(被參考欄位名)

on delete 級聯動作

on update 級聯動作

3、使用規則

1、主表、從表字段資料型別要一致

4、示例

1、繳費資訊表(財務)

id   姓名    班級   繳費金額

1  唐伯虎  aid08     300

2  點秋香  aid08     200

create table jftab(

id int primary key,

name varchar(20) not null,

class char(5) default "aid",

money smallint

)charset=utf8;

mysql部落格園 mysql

一 聯合查詢 在兩種情況下可能用到 1 想要的結果在一條語句中會引起邏輯衝突,只能放在兩條語句中是要使用聯合查詢 2 一張表的資料量非常大時,會分隔成多張表儲存,要查詢時也要用到聯合查詢 2,聯合查詢中的order by必須搭配上limit關鍵字才能生效!因為系統預設的聯合查詢的結果往往比較多,所以...

python部落格園 python 模擬部落格園系統

作業 用 模擬系統。專案分析 一 首先程式啟動,頁面顯示下面5內容供使用者選擇 1.請登入 2.請註冊 3.進入文章頁面 5.進入日記頁面 6.進入收藏頁面 7.登出賬號 8.退出整個程式 二 必須實現的功能 1.註冊功能要求 a.使用者名稱 密碼要記錄在檔案中。b.使用者名稱要求 只能含有字母或者...

mysql安裝 部落格園 mysql安裝

2.解壓 解壓並在解壓後根目錄建立my.ini和data資料夾 basedir 替換成自己的根目錄 my.ini client 設定mysql客戶端預設字符集 default character set utf8 mysqld 設定3306埠 port 3306 設定mysql的安裝目錄 based...