




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一、寫在前面黑窗口啟動(dòng)mysql服務(wù):netstartmysql
登錄:mysql-uroot-p
備份數(shù)據(jù)庫(kù):mysqldump-uroot-p1234store28>g:/1.sql
建議使用Navicat工具操作MySQL二、SQL語(yǔ)句的分類DDL:數(shù)據(jù)定義語(yǔ)言
create、drop、alter
DML:數(shù)據(jù)操作語(yǔ)句
insert、delete、update、truncate
DQL:數(shù)據(jù)查詢語(yǔ)言:
select、show三、操作數(shù)據(jù)庫(kù)①查詢所有數(shù)據(jù)庫(kù)
showdatabases;
查看活躍連接
showprocesslist;
②創(chuàng)建數(shù)據(jù)庫(kù)
createdatabaseblogdefaultcharactersetutf8;
③查看數(shù)據(jù)庫(kù)的默認(rèn)字符集
showcreatedatabaseblog;
④刪除數(shù)據(jù)庫(kù)
dropdatabaseblog;
⑤修改數(shù)據(jù)庫(kù)
alterdatabaseblogdefaultcharactersetgbk;
⑥選擇數(shù)據(jù)庫(kù)
useblog;四、操作表①查看所有表
showtables;
②創(chuàng)建表
createtablestudent(sidint,snamevarchar(20));
③查看表結(jié)構(gòu)
descstudent;
④刪除表
droptablestudent;
⑤修改表
添加字段
altertablestudentaddsgendervarchar(2);
刪除字段
altertablestudentdropsgender;
修改字段類型
altertablestudentmodifysgendervarchar(100);
修改字段名稱
altertablestudentchangesgendergendervarchar(2);
修改表名稱
altertablestudentrenametoteacher;五、增刪改數(shù)據(jù)①增加數(shù)據(jù)
insertintostudentvalues(1,'張三','男',20);
insertintostudent(id,name)values(2,'李四');
②修改數(shù)據(jù)
updatestudentsetgender='女';
updatestudentsetgender='男'whereid=1;
updatestudentsetgender='男',age=30whereid=2;
③刪除數(shù)據(jù)
deletefromstudent;
deletefromstudentwhereid=2;
truncatetablestudent;
刪除對(duì)比:
deletefrom可以帶條件刪除;只能刪除表的數(shù)據(jù),不能刪除表的約束;可以回滾(事務(wù))
truncatetable不能帶條件刪除;既可以刪除表的數(shù)據(jù),也可以刪除表的約束;不能回滾六、查詢數(shù)據(jù)(重點(diǎn))①查詢時(shí)添加常量列
selectid,name,gender,age,'java學(xué)習(xí)'as'java'
fromstudent;
查詢時(shí)合并列(合并列只能合并數(shù)值類型的字段)
selectid,name,(servlet+jsp)as'總成績(jī)'fromstudent;
查詢時(shí)去除重復(fù)記錄
selectdistinctgenderfromstudent;
selectdistinct(gender)fromstudent;
②條件查詢<>(不等于)
select*fromstudentwherejspbetween75and90;
select*fromstudentwheregender<>'男';
判空條件(null空字符串)
select*fromstudentwhereaddressisnulloraddress='';
select*fromstudentwhereaddressisnotnullandaddress<>'';
模糊條件:like
%表示任意個(gè)字符
_表示一個(gè)字符
③聚合查詢
常用的聚合函數(shù):
sum()
avg()
max()
min()
count()
注意:count()函數(shù)統(tǒng)計(jì)的數(shù)量不包含null的數(shù)據(jù)
④分頁(yè)查詢(開始行,行數(shù))0開始
select*fromstudentlimit(當(dāng)前頁(yè)-1)*每頁(yè)顯示條數(shù),每頁(yè)顯示條數(shù);
⑤查詢排序
select*fromstudentorderbyservletasc,jspdesc;
⑥分組查詢
selectgender,count(*)fromstudentgroupbygender;
⑦分組查詢后篩選(分組之前條件使用where關(guān)鍵字,分組之后條件使用having關(guān)鍵字)
selectgender,count(*)fromstudentgroupbygenderhavingcount(*)>2;七、六種約束類型①默認(rèn)值
default
②非空notnull
③唯一unique
④主鍵primarykey非空且唯一
⑤自增長(zhǎng)
AUTO_INCREMENT
--自增長(zhǎng),從0開始
zerofill零填充
--刪除:delete不能影響自增長(zhǎng)約束,truncate可以影響自增長(zhǎng)約束
例:idint(4)zerofillprimarykeyauto_increment,
⑥外鍵
例:constraintemlyee_dept_fkforeignkey(deptid)referencesdept(id)
注意:
1)被約束的表稱為副表,約束別人的表稱為主表,外鍵設(shè)置在副表上。
2)主表的參考字段通用為主鍵。
3)添加數(shù)據(jù):先添加主表,再添加副表。
級(jí)聯(lián)操作:
級(jí)聯(lián)修改:onupdatecascade
級(jí)聯(lián)刪除:ondeletecascade
constraintemlyee_dept_fkforeignkey(deptid)referencesdept(id)onupdatecascadeondeletecascade八、數(shù)據(jù)庫(kù)(表)設(shè)計(jì)①設(shè)計(jì)原則:設(shè)計(jì)的表盡量遵守三大范式。
②三大范式:
第一范式:確保每列的原子性.
第二范式:在第一范式的基礎(chǔ)上,確保表中的每列都和主鍵相關(guān).
第三范式:在第二范式的基礎(chǔ)上,確保每列都和主鍵列直接相關(guān),而不是間接相關(guān).(非主鍵字段不能相互依賴)九、關(guān)聯(lián)查詢(多表查詢)多表查詢規(guī)則:
a.確定查詢哪些表
b.確定哪些哪些字段
c.表與表之間連接條件(規(guī)律:連接條件數(shù)量是表數(shù)量-1)
①
內(nèi)連接查詢
selecte.empname,d.deptnamefromemployeeeinnerjoindeptdone.deptid=d.id;
②
左[外]連接查詢:使用左邊表的數(shù)據(jù)去匹配右邊表的數(shù)據(jù),如果符合連接條件的結(jié)果則顯示,如果不符合連接條件則顯示null
selectd.deptname,e.empnamefromdeptdleftjoinemployeeeond.id=e.deptid;
③
右[外]連接查詢:使用右邊表的數(shù)據(jù)去匹配左邊表的數(shù)據(jù),如果符合連接條件的結(jié)果則顯示,如果不符合連接條件則顯示null
selectd.deptname,e.empnamefromemployeeerightjoindeptdond.id=e.deptid;
④
自連接查詢:
selecte.empname,b.empnamefromemployeeeleftouterjoinemployeebone.bossid=b.id;十、UNION和UNIONALL的作用和語(yǔ)法UNION用于合并兩個(gè)或多個(gè)SELECT語(yǔ)句的結(jié)果集,并消去表中任何重復(fù)行。
UNION內(nèi)部的SELECT語(yǔ)句必須擁有相同數(shù)量的列,列也必須擁有相似的數(shù)據(jù)類型。
同時(shí),每條SELECT語(yǔ)句中的列的順序必須相同.
示例:
SELECTcolumn_nameFROMtable1
UNION
SELECTcolumn_nameFROMtable2
注意:
默認(rèn)地,UNION操作符選取不同的值。如果允許重復(fù)的值,使用UNIONALL。UNIONALL不消除重復(fù)行
另外,UNION結(jié)果集中的列名總是等于UNION中第一個(gè)SELECT語(yǔ)句中的列名。
UNION結(jié)果集中的列名總是等于第一個(gè)SELECT語(yǔ)句中的列名十一、存儲(chǔ)過程①描述:帶有邏輯的sql語(yǔ)句。
②優(yōu)缺點(diǎn):
執(zhí)行效率非常快,存儲(chǔ)過程是在數(shù)據(jù)庫(kù)的服務(wù)器端執(zhí)行的。
移植性很差,不同數(shù)據(jù)庫(kù)的存儲(chǔ)過程是不能移植。
③語(yǔ)法:
--全局變量(內(nèi)置變量):mysql數(shù)據(jù)庫(kù)內(nèi)置的變量(所有連接都起作用)
--查看所有全局變量:showvariables
--查看某個(gè)全局變量:select@@變量名
--修改全局變量:set變量名=新值
--character_set_client:mysql服務(wù)器的接收數(shù)據(jù)的編碼
--character_set_results:mysql服務(wù)器輸出數(shù)據(jù)的編碼
--會(huì)話變量:只存在于當(dāng)前客戶端與數(shù)據(jù)庫(kù)服務(wù)器端的一次連接當(dāng)中。如果連接斷開,那么會(huì)話變量全部丟失
--定義會(huì)話變量:set@變量=值
--查看會(huì)話變量:select@變量
--局部變量:在存儲(chǔ)過程中使用的變量就叫局部變量。只要存儲(chǔ)過程執(zhí)行完畢,局部變量就丟失
④示例:
delimiter$
createprocedurepro_test(outresultVARCHAR(20))
begin
DECLAREscoreintdefault0;
SELECTavg(english)intoscorefromstudent;
ifscore>90then
setresult='優(yōu)秀';
elseifscore>70andscore<=90then
setresult='良好';
else
setresult='一般';
endif;end$CALLpro_test(@result);select@result;
dropprocedurepro_test;十二、觸發(fā)器①描述:當(dāng)操作了某張表時(shí),希望同時(shí)觸發(fā)一些動(dòng)作行為,使用觸發(fā)器完成。
②示例:
createtriggertri_empaddafterinsertonemployeeforeachrow
--當(dāng)往員工表插入一條記錄時(shí)
insertintotest_log(content)values('員工表插入了一條記錄');十三、MySQL權(quán)限問題--
mysql數(shù)據(jù)庫(kù),用戶配置:user表
usemysql;
--查看密碼
selectpassword('root');
--修改密碼
updateusersetpassword=password('123456')whereuser='root';
--分配權(quán)限賬戶
grant權(quán)限on數(shù)據(jù)庫(kù).表to'賬戶名'@'賬戶類型'identifiedby'密碼';
權(quán)限:selectinsertdeleteupdatedropcreate/
或,all
舉例:grantselectonday16.employeeto'eric'@'localhost'identifiedby'123456';
--備份(無需登陸)
mysqldump-uroot-pday17>c:/bak.sql
--恢復(fù)(無需登陸)
mysql-uroot-pday17<d:/back.sql十四、MySQL常用函數(shù)version()
返回mysql服務(wù)器的版本
from_unixtime(ts,fmt)
根據(jù)指定的fmt格式,格式化unix時(shí)間戳ts
time_format(time,fmt)
依照字符串fmt格式化時(shí)間time值
date_format(date,fmt)
依照字符串fmt格式化日期date值
format(x,y)
把x格式化為以逗號(hào)隔開的數(shù)字序列,y是結(jié)果的小數(shù)位數(shù)
substring(str,pos)字段,開始位置
substring(str,pos,length)
字段,開始位置,長(zhǎng)度n
now()返回當(dāng)前的日期和時(shí)間
curdate()
返回當(dāng)前的日期
curtime()
返回當(dāng)前
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 衡水中學(xué)高三上學(xué)期七調(diào)理綜化學(xué)試題
- 湖南省長(zhǎng)沙市望城區(qū)等4地2025屆高三下學(xué)期3月模擬預(yù)測(cè)語(yǔ)文試題(含答案)
- 2024年人力資源管理師考試政策解讀試題及答案
- 基于區(qū)塊鏈技術(shù)的2025年散裝貨物裝卸安全合同
- 基因與生物性狀表達(dá)的研究試題及答案
- 一站式2024年基金從業(yè)資格試題及答案
- 投資決策中數(shù)據(jù)分析的重要性試題及答案
- 最佳復(fù)習(xí)時(shí)間表特許另類投資分析師試題及答案
- 2024年注冊(cè)會(huì)計(jì)師考試的挑戰(zhàn)與機(jī)遇試題及答案
- 注冊(cè)會(huì)計(jì)師面試技巧與經(jīng)驗(yàn)分享試題及答案
- 中央戲劇學(xué)院招聘筆試真題2023
- 大模型原理與技術(shù)-課件 chap6 大模型微調(diào)
- 2021年高級(jí)經(jīng)濟(jì)師《高級(jí)經(jīng)濟(jì)實(shí)務(wù)》建筑與房地產(chǎn)經(jīng)濟(jì)專業(yè)考試題庫(kù)及答案解析
- 人教版高中物理選擇性必修第三冊(cè)第五章原子核第2節(jié)放射性元素的衰變課件
- 40萬只全現(xiàn)代化蛋雞養(yǎng)殖場(chǎng)項(xiàng)目可行性研究報(bào)告寫作模板-申批備案
- 20起典型火災(zāi)事故案例合集-2024年消防月專題培訓(xùn)
- 拼多多在線測(cè)評(píng)98道題
- 中國(guó)國(guó)新基金管理有限公司招聘筆試題庫(kù)2024
- 環(huán)境監(jiān)測(cè)站運(yùn)行管理與質(zhì)量控制標(biāo)準(zhǔn)
- 高中歷史選擇性必修2知識(shí)點(diǎn)總結(jié)歸納
- 湖南省2024年對(duì)口升學(xué)考試計(jì)算機(jī)應(yīng)用類試題(含參考答案)
評(píng)論
0/150
提交評(píng)論