版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、MYSQLMYSQL經(jīng)典基礎(chǔ)教程經(jīng)典基礎(chǔ)教程MySQLMySQL簡介簡介l數(shù)據(jù)庫簡介SQL Server、Oracle、MySQL、DB2、SyBaselMySQL數(shù)據(jù)庫的安裝和配置l使用命令行窗口連接MYSQL數(shù)據(jù)庫mysql u用戶名 p密碼數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系MySQLDBDB表表表Clientl所謂安裝數(shù)據(jù)庫服務(wù)器,只是在機(jī)器上裝了一個(gè)數(shù)據(jù)庫管理程序,這個(gè)管理程序可以管理多個(gè)數(shù)據(jù)庫,一般開發(fā)人員會針對每一個(gè)應(yīng)用創(chuàng)建一個(gè)數(shù)據(jù)庫。l為保存應(yīng)用中實(shí)體的數(shù)據(jù),一般會在數(shù)據(jù)庫創(chuàng)建多個(gè)表,以保存程序中實(shí)體的數(shù)據(jù)。l數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系如圖所示:數(shù)據(jù)
2、在數(shù)據(jù)庫中的存儲方式數(shù)據(jù)在數(shù)據(jù)庫中的存儲方式id=1name=“l(fā)isi”age=23User對象idnameage1lisi232wang24User表id=2name=“wang”age=24行(row)列(column)l表的一行稱之為一條記錄l表中一條記錄對應(yīng)一個(gè)java對象的數(shù)據(jù)User對象創(chuàng)建數(shù)據(jù)庫CREATE DATABASE IF NOT EXISTS db_name create_specification , create_specification . create_specification: DEFAULT CHARACTER SET charset_name | D
3、EFAULT COLLATE collation_name lCHARACTER SET:指定數(shù)據(jù)庫采用的字符集lCOLLATE:指定數(shù)據(jù)庫字符集的比較方式l練習(xí):創(chuàng)建一個(gè)名稱為mydb1的數(shù)據(jù)庫。創(chuàng)建一個(gè)使用utf-8字符集的mydb2數(shù)據(jù)庫。創(chuàng)建一個(gè)使用utf-8字符集,并帶校對規(guī)則的mydb3數(shù)據(jù)庫。查看、刪除數(shù)據(jù)庫顯示數(shù)據(jù)庫語句:SHOW DATABASES顯示數(shù)據(jù)庫創(chuàng)建語句:SHOW CREATE DATABASE db_name 數(shù)據(jù)庫刪除語句:DROP DATABASE IF EXISTS db_name l練習(xí):查看當(dāng)前數(shù)據(jù)庫服務(wù)器中的所有數(shù)據(jù)庫查看前面創(chuàng)建的mydb2數(shù)據(jù)庫的
4、定義信息刪除前面創(chuàng)建的mydb1數(shù)據(jù)庫修改、備份、恢復(fù)數(shù)據(jù)庫ALTER DATABASE IF NOT EXISTS db_name alter_specification , alter_specification . alter_specification: DEFAULT CHARACTER SET charset_name | DEFAULT COLLATE collation_namel備份數(shù)據(jù)庫表中的數(shù)據(jù)mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 文件名.sqll恢復(fù)數(shù)據(jù)庫Source 文件名.sqll練習(xí)l 查看服務(wù)器中的數(shù)據(jù)庫,并把其中某一個(gè)庫的字符集修改為utf8;l
5、備份test庫中的數(shù)據(jù),并恢復(fù)創(chuàng)建表(基本語句)CREATE TABLE table_name(field1 datatype,field2 datatype,field3 datatype,)character set 字符集字符集 collate 校對規(guī)則校對規(guī)則field:指定列名datatype:指定列類型l注意:創(chuàng)建表時(shí),要根據(jù)需保存的數(shù)據(jù)創(chuàng)建相應(yīng)的列,并根據(jù)數(shù)據(jù)的類型定義相應(yīng)的列類型。例:user對象id int name stringpassword stringbirthday dateIdName Passwordbirthdayl注意:創(chuàng)建表前,要先使用use db語句使用
6、庫。MySQL常用數(shù)據(jù)類型lVARCHAR、BLOB和TEXT類是變長類型。每個(gè)類型的存儲需求取決于列值的實(shí)際長度。 分類數(shù)據(jù)類型說明數(shù)值類型BIT(M)TINYINT UNSIGNED ZEROFILL BOOL,BOOLEAN SMALLINT UNSIGNED ZEROFILL INT UNSIGNED ZEROFILL BIGINT UNSIGNED ZEROFILL FLOAT(M,D) UNSIGNED ZEROFILL DOUBLE(M,D) UNSIGNED ZEROFILL 位類型。M指定位數(shù),默認(rèn)值1,范圍1-64帶符號的范圍是-128到127。無符號0到255。使用0或1
7、表示真或假2的16次方2的32次方2的64次方M指定顯示長度,d指定小數(shù)位數(shù)表示比float精度更大的小數(shù)文本、二進(jìn)制類型CHAR(size) char(20)VARCHAR(size) varchar(20)BLOB LONGBLOBTEXT(clob) LONGTEXT(longclob)固定長度字符串可變長度字符串二進(jìn)制數(shù)據(jù)大文本時(shí)間日期DATE/DATETIME/TimeStamp日期類型(YYYY-MM-DD) (YYYY-MM-DD HH:MM:SS),TimeStamp表示時(shí)間戳,它可用于自動(dòng)記錄insert、update操作的時(shí)間創(chuàng)建表練習(xí)l創(chuàng)建一個(gè)員工表字段屬性Id整形nam
8、e字符型sex字符型或bit型brithday日期型Entry_date日期型job字符型Salary小數(shù)型resume大文本型修改表使用 ALTER TABLE 語句追加, 修改, 或刪除列的語法.ALTER TABLE tableADD (column datatype DEFAULT expr , column datatype.);ALTER TABLE tableMODIFY (column datatype DEFAULT expr , column datatype.);ALTER TABLE tableDROP (column);修改表的名稱:Rename table 表名 t
9、o 新表名修改表的字符集:alter table student character set utf8;修改表l練習(xí)在上面員工表的基本上增加一個(gè)image列。修改job列,使其長度為60。刪除sex列。表名改為user。修改表的字符集為utf-8列名name修改為usernamealter table user change column name username varchar(20);數(shù)據(jù)庫CRUD語句lInsert語句 (增加數(shù)據(jù))lUpdate語句 (更新數(shù)據(jù))lDelete語句 (刪除數(shù)據(jù))lSelect語句(查找數(shù)據(jù))Insert語句INSERT INTOtable (colum
10、n , column.)VALUES(value , value.);l使用 INSERT 語句向表中插入數(shù)據(jù)。l插入的數(shù)據(jù)應(yīng)與字段的數(shù)據(jù)類型相同。l數(shù)據(jù)的大小應(yīng)在列的規(guī)定范圍內(nèi),例如:不能將一個(gè)長度為80的字符串加入到長度為40的列中。l在values中列出的數(shù)據(jù)位置必須與被加入的列的排列位置相對應(yīng)。l字符和日期型數(shù)據(jù)應(yīng)包含在字符和日期型數(shù)據(jù)應(yīng)包含在單引號單引號中。中。l插入空值,不指定或insert into table value(null)Insert語句練習(xí)l練習(xí):使用insert語句向表中插入三個(gè)員工的信息。字段名字段類型id整形name字符串型sex字符或整數(shù)類型birthday
11、日期型salary浮點(diǎn)型entry_date日期型resume大文本型l注意:字符和日期要包含在單引號中。lshow variables like character%;lset character_set_results=gbk;Update語句UPDATE tbl_name SET col_name1=expr1 , col_name2=expr2 . WHERE where_definition l使用 update語句修改表中數(shù)據(jù)。lUPDATE語法可以用新值更新原有表行中的各列。lSET子句指示要修改哪些列和要給予哪些值。lWHERE子句指定應(yīng)更新哪些行。如沒有WHERE子句,則更新
12、所有的行。Update語句練習(xí)l練習(xí):在上面創(chuàng)建的employee表中修改表中的紀(jì)錄。l要求l將所有員工薪水修改為5000元。l將姓名為zs的員工薪水修改為3000元。l將姓名為aaa的員工薪水修改為4000元,job改為ccc。l將wu的薪水在原有基礎(chǔ)上增加1000元。Delete語句delete from tbl_name WHERE where_definition l使用 delete語句刪除表中數(shù)據(jù)。l如果不使用where子句,將刪除表中所有數(shù)據(jù)。lDelete語句不能刪除某一列的值(可使用update)l使用delete語句僅刪除記錄,不刪除表本身。如要?jiǎng)h除表,使用drop tab
13、le語句。l同insert和update一樣,從一個(gè)表中刪除記錄將引起其它表的參照完整性問題,在修改數(shù)據(jù)庫數(shù)據(jù)時(shí),頭腦中應(yīng)該始終不要忘記這個(gè)潛在的問題。l刪除表中數(shù)據(jù)也可使用TRUNCATE TABLE 語句,它和delete有所不同,參看mysql文檔。Delete語句練習(xí)l刪除表中名稱為zs的記錄。l刪除表中所有記錄。l使用truncate刪除表中記錄。Select語句(1)SELECT DISTINCT *|column1, column2. column3.FROMtable;lSelect 指定查詢哪些列的數(shù)據(jù)。lcolumn指定列名。l*號代表查詢所有列。lFrom指定查詢哪張表。
14、lDISTINCT可選,指顯示結(jié)果時(shí),是否剔除重復(fù)數(shù)據(jù)l基本select語句Select語句(1)l練習(xí):l查詢表中所有學(xué)生的信息。l查詢表中所有學(xué)生的姓名和對應(yīng)的英語成績。l過濾表中重復(fù)數(shù)據(jù)。Select語句()SELECT *|column1expression, column2expression,.FROMtable;l在select語句中可使用表達(dá)式對查詢的列進(jìn)行運(yùn)算l在select語句中可使用as語句SELECT column as 別名別名 from 表名表名;Select語句()l練習(xí)l在所有學(xué)生分?jǐn)?shù)上加10分特長分。l統(tǒng)計(jì)每個(gè)學(xué)生的總分。l使用別名表示學(xué)生分?jǐn)?shù)。Select語
15、句(3)l使用where子句,進(jìn)行過濾查詢。練習(xí):l查詢姓名為wu的學(xué)生成績l查詢英語成績大于90分的同學(xué)l查詢總分大于200分的所有同學(xué)Select語句()l在where子句中經(jīng)常使用的運(yùn)算符比較運(yùn)算符 = = 大于、小于、大于(小于)等于、不等于BETWEEN .AND.顯示在某一區(qū)間的值IN(set)顯示在in列表中的值,例:in(100,200)LIKE 張張pattern模糊查詢IS NULL判斷是否為空邏輯運(yùn)算符and多個(gè)條件同時(shí)成立or多個(gè)條件任一成立not不成立,例:where not(salary100);Like語句中,% 代表零個(gè)或多個(gè)任意字符,_ 代表一個(gè)字符,例fir
16、st_name like _a%;Select語句(4)l查詢英語分?jǐn)?shù)在 8090之間的同學(xué)。l查詢數(shù)學(xué)分?jǐn)?shù)為89,90,91的同學(xué)。l查詢所有姓李的學(xué)生成績。l查詢數(shù)學(xué)分80,語文分80的同學(xué)。Select語句()SELECT column1, column2. column3.FROMtable;order by column asc|desclOrder by 指定排序的列,排序的列即可是表中的列名,也可以是select 語句后指定的列名。lAsc 升序、Desc 降序lORDER BY 子句應(yīng)位于SELECT語句的結(jié)尾。l練習(xí):l對數(shù)學(xué)成績排序后輸出。l對總分排序后輸出,然后再按從高到
17、低的順序輸出l對姓李的學(xué)生成績排序輸出l使用order by 子句排序查詢結(jié)果。合計(jì)函數(shù)countSelect count(*)|count(列名列名) from tablenameWHERE where_definition l練習(xí):l統(tǒng)計(jì)一個(gè)班級共有多少學(xué)生?l統(tǒng)計(jì)數(shù)學(xué)成績大于90的學(xué)生有多少個(gè)?l統(tǒng)計(jì)總分大于250的人數(shù)有多少?lCount(列名)返回某一列,行的總數(shù)合計(jì)函數(shù)SUMSelect sum(列名列名),sum(列名列名) from tablenameWHERE where_definition l練習(xí):l統(tǒng)計(jì)一個(gè)班級數(shù)學(xué)總成績?l統(tǒng)計(jì)一個(gè)班級語文、英語、數(shù)學(xué)各科的總成績l統(tǒng)計(jì)
18、一個(gè)班級語文、英語、數(shù)學(xué)的成績總和l統(tǒng)計(jì)一個(gè)班級語文成績平均分l注意:sum僅對數(shù)值起作用,否則會報(bào)錯(cuò)。l注意:對多列求和,“,”號不能少。lSum函數(shù)返回滿足where條件的行的和Student.sql合計(jì)函數(shù)AVGSelect sum(列名列名),sum(列名列名) from tablenameWHERE where_definition l練習(xí):l求一個(gè)班級數(shù)學(xué)平均分?l求一個(gè)班級總分平均分lAVG函數(shù)返回滿足where條件的一列的平均值Student.sql合計(jì)函數(shù)MAX/MINSelect max(列名列名)from tablenameWHERE where_definition l
19、練習(xí):l求班級最高分和最低分(數(shù)值范圍在統(tǒng)計(jì)中特別有用)lMax/min函數(shù)返回滿足where條件的一列的最大/最小值Student.sqlSelect語句(6)SELECT column1, column2. column3. FROM table;group by columnl練習(xí):對訂單表中商品歸類后,顯示每一類商品的總價(jià)l使用group by 子句對列進(jìn)行分組SELECT column1, column2. column3.FROMtable;group by column having .l使用having 子句過濾l練習(xí):查詢購買了幾類商品,并且每類總價(jià)大于100的商品lHavi
20、ng和和where均可實(shí)現(xiàn)過濾,但在均可實(shí)現(xiàn)過濾,但在having可以使用合計(jì)函數(shù)可以使用合計(jì)函數(shù),having通常跟在通常跟在group by后,它作用于組。后,它作用于組。時(shí)間日期相關(guān)函數(shù)ADDTIME (date2 ,time_interval )將將time_interval加到加到date2CURRENT_DATE ( )當(dāng)前日期當(dāng)前日期CURRENT_TIME ( )當(dāng)前時(shí)間當(dāng)前時(shí)間CURRENT_TIMESTAMP ( )當(dāng)前時(shí)間戳當(dāng)前時(shí)間戳DATE (datetime )返回返回datetime的日期部分的日期部分DATE_ADD (date2 , INTERVAL d_val
21、ue d_type )在在date2中加上日期或時(shí)間中加上日期或時(shí)間DATE_SUB (date2 , INTERVAL d_value d_type )在在date2上減去一個(gè)時(shí)間上減去一個(gè)時(shí)間DATEDIFF (date1 ,date2 )兩個(gè)日期差兩個(gè)日期差NOW ( )當(dāng)前時(shí)間當(dāng)前時(shí)間YEAR|Month|DATE (datetime )年月日年月日示例:select addtime(02:30:30,01:01:01); 注意:字符串、時(shí)間日期的引號問題 select date_add(entry_date,INTERVAL 2 year) from student;增加兩年sele
22、ct addtime(time,1 1-1 10:09:09) from student;時(shí)間戳上增加,注意年后沒有-字符串相關(guān)函數(shù)CHARSET(str)返回字串字符集返回字串字符集CONCAT (string2 ,. )連接字串連接字串INSTR (string ,substring )返回返回substring在在string中出現(xiàn)的位置中出現(xiàn)的位置,沒有返回沒有返回0UCASE (string2 )轉(zhuǎn)換成大寫轉(zhuǎn)換成大寫LCASE (string2 )轉(zhuǎn)換成小寫轉(zhuǎn)換成小寫LEFT (string2 ,length )從從string2中的左邊起取中的左邊起取length個(gè)字符個(gè)字符LEN
23、GTH (string )string長度長度REPLACE (str ,search_str ,replace_str )在在str中用中用replace_str替換替換search_strSTRCMP (string1 ,string2 )逐字符比較兩字串大小逐字符比較兩字串大小,SUBSTRING (str , position ,length )從從str的的position開始開始,取取length個(gè)字符個(gè)字符LTRIM (string2 ) RTRIM (string2 ) trim去除前端空格或后端空格去除前端空格或后端空格數(shù)學(xué)相關(guān)函數(shù)ABS (number2 )絕對值絕對值BIN (decimal_number )十進(jìn)制轉(zhuǎn)二進(jìn)制十進(jìn)制轉(zhuǎn)二進(jìn)制CEILING (number2 )向上取
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版外專局外國教育專家勞動(dòng)合同3
- 二零二五年度工業(yè)品綠色制造與節(jié)能降耗合同3篇
- 二零二五年度技術(shù)咨詢合同:某科技公司與某制造業(yè)企業(yè)關(guān)于技術(shù)改進(jìn)的咨詢協(xié)議3篇
- 二零二五年度石場生產(chǎn)線承包合同模板制作3篇
- 2024版食品委托加工合同標(biāo)準(zhǔn)范本
- 酒店設(shè)備采購合同三篇
- 二零二五年度房地產(chǎn)項(xiàng)目財(cái)務(wù)顧問及財(cái)務(wù)分析報(bào)告服務(wù)合同3篇
- 2024新能源汽車銷售代理與合作經(jīng)營合同
- 2024物業(yè)管理公司服務(wù)范圍拓展與合同變更
- 證券交易軟件許可協(xié)議合同三篇
- GMP廠房設(shè)施和設(shè)備培訓(xùn)課件
- 銀行數(shù)據(jù)安全風(fēng)險(xiǎn)排查報(bào)告6篇
- 北師大版初三上課后習(xí)題及答案
- 22S702 室外排水設(shè)施設(shè)計(jì)與施工-鋼筋混凝土化糞池
- 護(hù)理三基三嚴(yán)題庫及答案匯總
- 2013日產(chǎn)天籟全電路圖維修手冊45車身控制系統(tǒng)
- 人教部編版三年級語文上冊古詩詞日積月累默寫模板
- (完整版)綜合醫(yī)院康復(fù)醫(yī)學(xué)科建設(shè)與管理指南
- 八年級家長會-數(shù)學(xué)ppt
- JJF 1384-2012開口/閉口閃點(diǎn)測定儀校準(zhǔn)規(guī)范
- GB/T 33720-2017LED照明產(chǎn)品光通量衰減加速試驗(yàn)方法
評論
0/150
提交評論