數據庫 (三)多表聯查

數據庫

關鍵字

  1. from:找到表
  2. where:拿着where指定的約束條件,去文件表中取出一條條記錄
  3. group by:將取出的一條條記錄進行分組group by,若是沒有group by,則總體做爲一組
  4. select:執行select
  5. distinct:去重
  6. having:將分組的結果進行having過濾
  7. order by:將結果按條件排序:order by
  8. limit:限制結果的顯示條數

null和not null

Null

select 條件 *from 表名where name is null;函數

not null

create table 表名(列1 列約束,列2 varchar(32)not null default'')charset= utf8排序

單表操做

分組

group by:索引

分組是的是:將全部記錄按照某個相同字段進行分類,好比針對員工信息的用法:it

select 聚合函數,選取的字段from employee group by 分組的字段;table

group by 必須和聚合函數(count)出現class

min:求最小select

max:求最大分頁

sum:求和語法

count:計數,數量

avg:平均數

having: 表示group by 以後的數據,進行再一次的篩選

asc: order by 字段名asc(升序)

desc: order by 字段名desc(降序)

limit:分頁 limit offset,size

offset: 行數據索引

size: 取多少條數據

總結

使用的順序:

select *from 表名 where 條件group by 條件 having 條件order by 條件 limit 條件;

where>group by > having > order by > limit

多表操做

外鍵

使用緣由:

  1. 減小佔用空間、

  2. 只須要修改department表中一次,其他的表中的數據就會相應的修改

一對多:

使用方法:constraint 外鍵名 foreign key (被約束的字段) references 約束的表(約束的字段)

多對多:

使用方法: constraint 表1 表二foreign key(列明) references 列明

一對一:

constraint 表名 foring key(列名) references 表名(列明),unique(列明)charset = utf8

多表聯查

  1. 多表鏈接查詢:

    語法:select 字段列表 from 表1 inner/left/right join 表2 on 表1 .字段=表2.字段;

  2. 內鏈接:

    select employee.列名 from employee inner join department on employee.列明 =department.列名

  3. 左鏈接:

    select employee.列名,employee.列名,department.列名 as 列名 from employee left join department on employee.列名=department.列名;

  4. 右鏈接:

    select employee.列名,employee.列名,department.列名 as 列名 from employee right join department on employee.列名=department.列名;

  5. 全鏈接(顯示左右兩邊的所有記錄):

    select *from employee left join department on employee.列名=department.列名

相關文章
相關標籤/搜索