




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
高端IT就業(yè)培訓專家第三十五章數(shù)據(jù)庫本章目標安裝介紹創(chuàng)建數(shù)據(jù)庫表、主鍵、處鍵概念范式表與表之間關(guān)系字段約束字段類型數(shù)據(jù)庫與表的創(chuàng)建函數(shù)查詢語句select
from
where查詢語句group
by,having,order
by,函數(shù)多表查詢子查詢MySql數(shù)據(jù)庫介紹與安裝數(shù)據(jù)庫:數(shù)據(jù)的集合目前流行的數(shù)據(jù)庫存儲形式為關(guān)系型數(shù)庫流行數(shù)據(jù)庫軟件有MySql、SqlServer、Oracle、DB2下載官網(wǎng)址:表名:學生(Stu)學號(StudyNo)、身份證號(IdCardNo)、性名(name)、性別(sex)、選修課(elective)StudyNoIdCardNoNameSexElective1019800715小明男數(shù)學1119800815小華女Android1219800816小強女JSP1319800817張三男Android1419800818張三女Android1519800819小王女Spring表字段記錄主鍵關(guān)鍵字如果某個字段或多個字段的值可以唯一地標識一條記錄,則該字段或字段組就稱為關(guān)鍵字。主鍵如果一個關(guān)鍵字是用以標識每條記錄的唯一性,并作為該表與其他表實現(xiàn)關(guān)聯(lián)之用候選關(guān)鍵字除主關(guān)鍵字以外的其他關(guān)鍵字表的范式三大范式–第一范式:字段不能再分;
(必須符合)第二范式:必須有主鍵;第三范式:除主鍵之外不能再有候選關(guān)鍵字。表與表的關(guān)系表與表的關(guān)聯(lián)關(guān)系有三種一對一一對多多對一一對一國家:country總統(tǒng):President主鍵外鍵,必須約束值唯一。是否為空可以根據(jù)業(yè)務(wù)任意指定id
主鍵Namesexf_country_id
外鍵1奧吧馬男12習近平男23安倍晉三男3id
主鍵NameLanguage1美國英語2中國漢語3日本日語一對多(多對一)一個班有多個學生,每個學生只有一個班主鍵idclassNameHeadTeacher1外鍵火箭班張文2沖刺班小王外鍵id
主鍵nameagef_class_id1張三3012李四3213王五2924小四3415小五3326小六282多對多id
主鍵name1張三2李四3王五4小四5小五6小六表:Teacherid
主鍵name1張小華2陳建明id主鍵f_Teacher_id外f_Stu_id
外鍵11鍵1212313414521622723表:Stu表:teacher_stu_middle字段約束主鍵字約束(primary
key)值不能為空,并且值唯一外鍵字約束(foreign
key)值必須為指向的表的主鍵值惟一性約束(unique)值唯一非空約束
(not
null)
值不能為空檢查約束(check)值為符合指定條件的值缺省約束(default)相當于值沒有約束最常用的字段類型數(shù)值類型:int、float、double字符串(字符)類型:char:
只能存儲一個字符(一個漢字也行)char(M):能存儲M個字符varchar(M):能存儲M個字符,但是實計存儲的字符小于M個時,存儲空間會被自動縮小SQL——創(chuàng)建、刪除數(shù)據(jù)庫create
database
數(shù)據(jù)庫名;drop
database
數(shù)據(jù)庫名;SQL——創(chuàng)建表刪除表創(chuàng)建表:?create
table
表名?(字段名類型<約束>,字段名類型<約束>,......字段名類型<約束>);刪除表:?drop
table
表名;SQL——創(chuàng)建表刪除表示例創(chuàng)建表:create
table
stu(id
int
primary
key
auto_increment,idcardno
char(20)
unique
not
null,name
char(16)
not
null,sexchar(2)notnullcheck(sex='男人'orsex='女生'),elective
char(20));id:
主鍵,從1自增長;idcardno:非空,值唯一
name:非空;sex:非空;elective:默認約束
刪除表:drop
table
stu;idIdCardNoNameSexElective1019800715小明男數(shù)學1119800815小華女Android1219800816小強女JSP1319800817張三男Android1419800818張三女Android1519800819小王女SpringSQL——一對一外鍵示例創(chuàng)建country表create
table
country(id
int
primary
key
auto_increment,name
char(10)
,
language
char(10));創(chuàng)建president表create
table
president(id
int
primary
key
auto_increment,name
char(10)
not
null,sex
char,
f_country_id
int
unique);指定president表中的字段f_country_id為外鍵,指向country表的主鍵country(id);alter
table
president
add
constraint
foreign
key(f_country_id)references
country(id) on
delete
cascade;on
delete
cascade:刪除country時刪除相應(yīng)的presidenton
delete
set
null:刪除country時設(shè)置相應(yīng)的president為nullon
delete
no
action:如果country中某條記錄被president指向,那么刪除country報錯,即不能刪除。主鍵外鍵,必須約束值唯一id
主鍵NameLanguage1美國英語2中國漢語3日本日語id
主鍵Namesexf_country_id1奧吧馬男12習近平男23安倍三男3外鍵SQL——一對多示例創(chuàng)建class表:create
table
class(classname
char(10)
primary
key,headteacher
char(10));創(chuàng)建stu表:create
table
stu(no
int
primary
key
auto_increment,name
char(10),age
int,
f_classname
char(10));增加外鍵約束:alter
table
stu
add
constraint
foreign
key(f_classname)references
class(classname)on
delete
cascade;classNameHeadTeacher火箭班張文沖刺班小王nonameageF_className1張三30火箭班2李四32火箭班3王五29沖刺班4小四34火箭班5小五33沖刺班6小六28沖刺班主鍵外鍵主鍵班級:class學生:stuSQL——多對多示例創(chuàng)建Teacher表create
table
Teacher(id
int
primary
key
auto_increment,name
char(10));創(chuàng)建Stu表create
table
stu(id
int
primary
key
auto_increment,name
char(10));創(chuàng)建中間表middle
create
table
middle(id
int
primary
key
auto_increment,f_teacher_id
int,
f_stu_id
int);增加外鍵約束alter
table
middle
add
constraint
foreignkey(f_teacher_id)
referencesteacher(id);增加外鍵約束alter
table
middle
add
constraint
foreignkey(f_stu_id)
references
stu(id);id
主鍵name1張小華2陳建明id
主鍵f_Teacher_id
外鍵f_Stu_id
外鍵111212313414521622723id
主鍵name1張三2李四3王五4小四5小五6小六TeacherstuSQL——檢查約束示例create
table
mytest(id
int
primary
key,no1
int
check(no1<20),no2
int
check(no2>20
and
no2
<30),no3
int
check(no3>20
or
no3<0),sex
char(2)
check(sex='男',sex='女'));上面寫了check檢查約束,但是實際插入值時會發(fā)現(xiàn)check沒有生效,原因是mysql數(shù)據(jù)庫對check檢查約束不支持,保留可以這樣寫是為了以后板本等級有可能支持。SQL——增、刪、改idNameSexage1小一女202小二男213小三男214小四女235小一女286小六女237小七男208小八男239小九女2110小十女2111小十一女2312小十二男2013小十三男20stu增加:insert
into
表(字段)values(值);insert
into
stu(id,
name,
sex,
age)
values
(13,'小十三','男',
20);insert
into
stu
values
(14,
'小十四', '男',
20);insert
into
stu(age)values
(20);修改:update
表set
屬性1=值1,......,屬性n=值n
<where
條件>update
stu
set
sex='G'where
sex='女';update
stu
set
sex='男'where
id>5
and
id<10;update
stu
set
name='小花',sex='G'where
sex='女';刪除:delete
from
表<where
條件>delete
from
stu
where
id=2;delete
from
stu
where
name='小一'and
sex='女'and
age=28;SQL——單表查詢介紹查詢語句要使用到的關(guān)鍵字有select
字段from
表where
條件過濾表中的行g(shù)roup
by
分組having
條件過濾組order
by
排序<desc>SQL——單表查詢select
*
from
stu;|
29
|
小花|
男|
20||
30
|
小花|
男|
23||
31
|
小花|
男|
23||
32
|
小花|
男|
32||
33
|
小花|
女|
23||
34
|
小花|
女|
23||
38
|
小花|
女|
21||
39
|
小花|
女|
21|idNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21stuSQL——單表查詢select
id,
name,
sex,
age
from
stu;+----+------+-----+-----+|
id
|
name
|
sex
|
age
|+----+------+-----+-----+|
29
|
小花|
男|
20||
30
|
小花|
男|
23||
31
|
小花|
男|
23||
32
|
小花|
男|
32||
33
|
小花|
女|
23||
34
|
小花|
女|
23||
38
|
小花|
女|
21||
39
|
小花|
女|
21|+----+------+-----+-----+idNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21stuSQL——單表查詢select
name,
id,
age
from
stu;+------+----+-----+|
name
|
id
|
age
|+------+----+-----+|
小花|
29
|
20||
小花|
30
|
23||
小花|
31
|
23||
小花|
32
|
32||
小花|
33
|
23||
小花|
34
|
23||
小花|
38
|
21||
小花|
39
|
21|+------+----+-----+stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21SQL——單表查詢select
*
from
stu
where
id=29;+----+------+-----+-----+|
id
|
name
|
sex
|
age
|+----+------+-----+-----+|
29
|
小花
|
男
|
20
|+----+------+-----+-----+stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21SQL——單表查詢select
*
from
stuwhere
idin(29,30,31,32);+----+------+-----+-----+|
id
|
name
|
sex
|
age
|+----+------+-----+-----+|
29
|
小花|
男|
20||
30
|
小花|
男|
23||
31
|
小花|
男|
23||
32
|
小花|
男|
32|+----+------+-----+-----+stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21SQL——單表查詢select
*
fromstuwhere
id
not
in(29,30,31,32);+----+------+-----+-----+|
id
|
name
|
sex
|
age
|+----+------+-----+-----+|
33
|
小花|
女|
23||
34
|
小花|
女|
23||
38
|
小花|
女|
21||
39
|
小花|
女|
21|+----+------+-----+-----+stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21SQL——單表查詢select
*
fromstuwhere
id>29
and
id<34;+----+------+-----+-----+|
id
|
name
|
sex
|
age
|+----+------+-----+-----+|
30
|
小花|
男|
23||
31
|
小花|
男|
23||
32
|
小花|
男|
32||
33
|
小花|
女|
23|+----+------+-----+-----+stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21SQL——單表查詢stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21select
*
from
stu
where
id>31
and
age=23;+----+------+-----+-----+|
id
|
name
|
sex
|
age
|+----+------+-----+-----+|
33
|
小花
|
女
|
23
||
34
|
小花
|
女
|
23
|+----+------+-----+-----+SQL——單表查詢stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21select
*
from
stuwhere d=29
or
age=23
or
age=31;+----+------+-----+-----+|
id
|
name
|
sex
|
age
|+----+------+-----+-----+|
29
|
小花|
男|
20||
30
|
小花|
男|
23||
31
|
小花|
男|
23||
33
|
小花|
女|
23||
34
|
小花|
女|
23|+-
--+------+-----+-----+SQL——單表查詢stu1i;dNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21select
*
from
stu
where
id=29
or
id=23
or
id=3+----+------+-----+-----+|
id
|
name
|
sex
|
age
|+----+------+-----+-----+|
29
|
小花
|
男
|
20
||
31
|
小花
|
男
|
23
|+----+------+-----+-----+SQL——單表查詢stuidsex;NameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21select
count(*)as
性別人數(shù)from
stu
group
by+----------+|
性別人數(shù)|+----------+||4|4|+----------+SQL——單表查詢stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21select
sex,count(*)as
性別人數(shù)from
stu
group
by
sex;+-----+----------+|
sex
|
性別人數(shù)|+-----+----------+|
女||
男|4
|4
|+-----+----------+SQL——單表查詢stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21select
sex,count(*)as
性別人數(shù)from
stuwhere
id
not
in(29,30)group
by
sex;+-----+----------+|
sex
|
性別人數(shù)|+-----+----------+|
女||
男|4
|2
|+-----+----------+SQL——單表查詢stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21select
sex,count(*)as性別人數(shù)from
stuwhere
id
not
in(29,30)group
by
sex
desc;+-----+------------+|
sex
|
as性別人數(shù)|+-----+------------+|
男|2
||
女|4
|SQL——單表查詢stuidNameSexage29小花男2030小花男2331小花男2332小花男3233小花女2334小花女2338小花女2139小花女21select
sex,count(*)as性別人數(shù)
from
stuwhere
id
not
in(29,30)group
by
sexhaving
sex='女'desc;SQL——多表查詢21
二班S_IDS_NAMES_SEXS_AGES_MOENYC_IDt_stu表:s_id、s_name、s_sex、s_age、s_money、c_idt_class表:c_id、c_name查詢班級名稱、學生姓名、性別、繳費、相同班級的要放在一起,姓名根據(jù)字典順序排列。select
c_name,
s_name,
s_sex,s_moneyfrom
t_stu,
t_classwhere
t_stu.c_id=t_class.c_idorder
by
S_NAME1張三男204000202李四男215000203王五女226000214小六女23700021C_ID5C_name小明女2480002120一班S_IDS_NAMES_SEXS_AGES_MOENYC_IDC_IDC_NAME1張三男2040002020一班2李四男2150002020一班3王五女2260002120一班4小六女2370002120一班5小明女2480002120一班1張三男2040002021二班2李四男2150002021二班3王五女2260002121二班4小六女2370002121二班5小明女2480002121二班SQL——多表查詢S_IDS_NAMES_SEXS_AGES_MOENYC_ID1張三男204000202李四男215000203王五女226000214小六女237000215小明女24800021T_STU表:S_ID、S_NAME、S_SEX、S_AGE、S_MOENY、C_IDT_CLASS表:C_ID、C_NAME★、學生表:學號、姓名、性別、入學年齡、繳費★、班級表:班級編號、班級名稱查詢各班名稱和人數(shù)select
c.C_NAME,count(*)
as
rsfrom
T_STU
s,T_CLASS
Cwhere
s.C_ID=c.c_id
group
by
c.C_NAMEC_IDC_name20一班21二班S_IDS_NAMES_SEXS_AGES_MOENYC_IDC_IDC_NAME1張三男2040002020一班2李四男2150002020一班3王五女2260002120一班4小六女2370002120一班5小明女2480002120一班1張三男2040002021二班2李四男2150002021二班3王五女2260002121二班4小六女2370002121二班5小明女2480002121二班SQL——多表查詢T_STU表:S_ID、S_NAME、S_SEX、S_AGE、S_MOENY、C_IDT_CLASS表:C_ID、C_NAME★、學生表:學號、姓名、性別、入學年齡、繳費★、班級表:班級編號、班級名稱★★查詢各班名稱和人數(shù),但人數(shù)必須不少于2,人數(shù)多的放在前面select
c.C_NAME,count(*)
as
rsfrom
T_STU
s,T_CLASS
Cwhere
s.C_ID=c.c_idgroup
by
c.C_NAMEhaving
count(*)>=2order
by
count(*)
descC_IDC_name20一班S_IDS_NAMES_SEXS_AGES_MOENYC_ID1張三男204000202李四男215000203王五女226000214小六女237000215小明女2480002121S_ID二班S_NAMES_SEXS_AGES_MOENYC_IDC_IDC_NAME1張三男2040002020一班2李四男2150002020一班3王五女2260002120一班4小六女2370002120一班5小明女2480002120一班1張三男2040002021二班2李四男2150002021二班3王五女2260002121二班4小六女2370002121二班5小明女2480002121二班SQL——多表查詢T_STU表:S_ID、S_NAME、S_SEX、S_AGE、S_MOENY、C_IDT_CLASS表:C_ID、C_NAME★、學生表:學號、姓名、性別、入學年齡、繳費★、班級表:班級編號、班級名稱查詢沒有人員的班級效率低:s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房屋抵押權(quán)設(shè)立合同
- 教育信息化解決方案項目投資合同
- 物流配送損害免責聲明
- 教育培訓服務(wù)責任豁免協(xié)議
- 文化產(chǎn)業(yè)投資開發(fā)協(xié)議書
- 攝影工作室拍攝作品著作權(quán)歸屬聲明
- 農(nóng)業(yè)現(xiàn)代化高效節(jié)水灌溉技術(shù)推廣方案
- 企業(yè)產(chǎn)品質(zhì)量危機處理預(yù)案
- 高考文言文雙文本專練:《史記》《論語》
- 近期項目成果回顧與反思
- 2025年不停電電源(UPS)項目合作計劃書
- 林木采伐安全協(xié)議書范本
- 招聘技巧話術(shù)培訓
- 2025年湖南食品藥品職業(yè)學院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 碳酸鈣脫硫劑項目可行性研究報告立項申請報告模板
- 山東省泰安市新泰市2024-2025學年(五四學制)九年級上學期1月期末道德與法治試題(含答案)
- 英語-遼寧省大連市2024-2025學年高三上學期期末雙基測試卷及答案
- DB3502T 160-2024 工業(yè)產(chǎn)品質(zhì)量技術(shù)幫扶和質(zhì)量安全監(jiān)管聯(lián)動工作規(guī)范
- 燃氣農(nóng)村協(xié)管員培訓
- 春節(jié)后復工安全教育培訓
- 提高發(fā)票額度的合同6篇
評論
0/150
提交評論