




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
SQL入門IT資訊交流網(wǎng)WWW.IT315.ORGSQL入門IT資訊交流網(wǎng)WWW.IT315.ORG1MySQL簡介數(shù)據(jù)庫簡介SQLServer、Oracle、MySQL、DB2、SyBaseMySQL數(shù)據(jù)庫的安裝和配置使用命令行窗口連接MYSQL數(shù)據(jù)庫mysql–u用戶名–p密碼MySQL簡介數(shù)據(jù)庫簡介2數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系MySQLDBDB表表表Client所謂安裝數(shù)據(jù)庫服務(wù)器,只是在機器上裝了一個數(shù)據(jù)庫管理程序,這個管理程序可以管理多個數(shù)據(jù)庫,一般開發(fā)人員會針對每一個應(yīng)用創(chuàng)建一個數(shù)據(jù)庫。為保存應(yīng)用中實體的數(shù)據(jù),一般會在數(shù)據(jù)庫創(chuàng)建多個表,以保存程序中實體的數(shù)據(jù)。數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系如圖所示:IT資訊交流網(wǎng)WWW.IT315.ORG數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系MySQLDBDB表表表Cli3數(shù)據(jù)在數(shù)據(jù)庫中的存儲方式id=1name=“l(fā)isi”age=23User對象idnameage1lisi232wang24User表id=2name=“wang”age=24行(row)列(column)表的一行稱之為一條記錄表中一條記錄對應(yīng)一個java對象的數(shù)據(jù)User對象IT資訊交流網(wǎng)WWW.IT315.ORG數(shù)據(jù)在數(shù)據(jù)庫中的存儲方式id=1User對象idnameag4創(chuàng)建數(shù)據(jù)庫CREATEDATABASE[IFNOTEXISTS]db_name
[create_specification[,create_specification]...]
create_specification:
[DEFAULT]CHARACTERSETcharset_name
|[DEFAULT]COLLATEcollation_name
CHARACTERSET:指定數(shù)據(jù)庫采用的字符集COLLATE:指定數(shù)據(jù)庫字符集的比較方式練習(xí):創(chuàng)建一個名稱為mydb1的數(shù)據(jù)庫。創(chuàng)建一個使用utf-8字符集的mydb2數(shù)據(jù)庫。創(chuàng)建一個使用utf-8字符集,并帶校對規(guī)則的mydb3數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫CREATEDATABASE[IFNOT5查看、刪除數(shù)據(jù)庫顯示數(shù)據(jù)庫語句:SHOWDATABASES顯示數(shù)據(jù)庫創(chuàng)建語句:SHOWCREATEDATABASEdb_name
數(shù)據(jù)庫刪除語句:DROPDATABASE[IFEXISTS]db_name
練習(xí):查看當(dāng)前數(shù)據(jù)庫服務(wù)器中的所有數(shù)據(jù)庫查看前面創(chuàng)建的mydb2數(shù)據(jù)庫的定義信息刪除前面創(chuàng)建的mydb1數(shù)據(jù)庫查看、刪除數(shù)據(jù)庫顯示數(shù)據(jù)庫語句:練習(xí):6修改、備份、恢復(fù)數(shù)據(jù)庫ALTERDATABASE[IFNOTEXISTS]db_name
[alter_specification[,alter_specification]...]
alter_specification:
[DEFAULT]CHARACTERSETcharset_name
|[DEFAULT]COLLATEcollation_name備份數(shù)據(jù)庫表中的數(shù)據(jù) mysqldump-u用戶名-p數(shù)據(jù)庫名>文件名.sql恢復(fù)數(shù)據(jù)庫 Source文件名.sql練習(xí)查看服務(wù)器中的數(shù)據(jù)庫,并把其中某一個庫的字符集修改為utf8;備份test庫中的數(shù)據(jù),并恢復(fù)修改、備份、恢復(fù)數(shù)據(jù)庫ALTERDATABASE[I7創(chuàng)建表(基本語句)CREATETABLEtable_name(
field1datatype, field2datatype, field3datatype,)characterset字符集collate校對規(guī)則field:指定列名datatype:指定列類型注意:創(chuàng)建表時,要根據(jù)需保存的數(shù)據(jù)創(chuàng)建相應(yīng)的列,并根據(jù)數(shù)據(jù)的類型定義相應(yīng)的列類型。例:user對象 idint namestring passwordstring birthdaydateIdNamePasswordbirthday注意:創(chuàng)建表前,要先使用usedb語句使用庫。創(chuàng)建表(基本語句)CREATETABLEtable_na8MySQL常用數(shù)據(jù)類型VARCHAR、BLOB和TEXT類是變長類型。每個類型的存儲需求取決于列值的實際長度。
分類數(shù)據(jù)類型說明數(shù)值類型BIT(M)TINYINT[UNSIGNED][ZEROFILL]BOOL,BOOLEANSMALLINT[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表示真或假2的16次方2的32次方2的64次方M指定顯示長度,d指定小數(shù)位數(shù)表示比float精度更大的小數(shù)文本、二進制類型CHAR(size)char(20)VARCHAR(size)varchar(20)BLOBLONGBLOBTEXT(clob)LONGTEXT(longclob)固定長度字符串可變長度字符串二進制數(shù)據(jù)大文本時間日期DATE/DATETIME/TimeStamp日期類型(YYYY-MM-DD)(YYYY-MM-DDHH:MM:SS),TimeStamp表示時間戳,它可用于自動記錄insert、update操作的時間MySQL常用數(shù)據(jù)類型VARCHAR、BLOB和TEXT類是9創(chuàng)建表練習(xí)創(chuàng)建一個員工表字段屬性Id整形name字符型sex字符型或bit型brithday日期型Entry_date日期型job字符型Salary小數(shù)型resume大文本型創(chuàng)建表練習(xí)創(chuàng)建一個員工表字段屬性Id整形name字符型sex10修改表使用ALTERTABLE語句追加,修改,或刪除列的語法.ALTERTABLEtableADD
(columndatatype[DEFAULTexpr] [,columndatatype]...);ALTERTABLEtableMODIFY
(columndatatype[DEFAULTexpr] [,columndatatype]...);ALTERTABLEtableDROP
(column);修改表的名稱:Renametable表名to新表名修改表的字符集:altertablestudentcharactersetutf8;修改表使用ALTERTABLE語句追加,修改,或刪11修改表練習(xí)在上面員工表的基本上增加一個image列。修改job列,使其長度為60。刪除sex列。表名改為user。修改表的字符集為utf-8列名name修改為usernamealtertableuserchangecolumnnameusernamevarchar(20);IT資訊交流網(wǎng)WWW.IT315.ORG修改表練習(xí)IT資訊交流網(wǎng)WWW.IT315.ORG12IT資訊交流網(wǎng)WWW.IT315.ORGIT資訊交流網(wǎng)WWW.IT315.ORG13數(shù)據(jù)庫CRUD語句Insert語句(增加數(shù)據(jù))Update語句(更新數(shù)據(jù))Delete語句(刪除數(shù)據(jù))Select語句(查找數(shù)據(jù))IT資訊交流網(wǎng)WWW.IT315.ORG數(shù)據(jù)庫CRUD語句Insert語句(增加數(shù)據(jù))IT資14Insert語句INSERTINTO table[(column[,column...])]VALUES (value[,value...]);使用INSERT語句向表中插入數(shù)據(jù)。插入的數(shù)據(jù)應(yīng)與字段的數(shù)據(jù)類型相同。數(shù)據(jù)的大小應(yīng)在列的規(guī)定范圍內(nèi),例如:不能將一個長度為80的字符串加入到長度為40的列中。在values中列出的數(shù)據(jù)位置必須與被加入的列的排列位置相對應(yīng)。字符和日期型數(shù)據(jù)應(yīng)包含在單引號中。插入空值,不指定或insertintotablevalue(null)IT資訊交流網(wǎng)WWW.IT315.ORGInsert語句INSERTINTO table[(co15Insert語句練習(xí)練習(xí):使用insert語句向表中插入三個員工的信息。注意:字符和日期要包含在單引號中。showvariableslike'character%';setcharacter_set_results=gbk;IT資訊交流網(wǎng)WWW.IT315.ORGInsert語句練習(xí)練習(xí):使用insert語句向表中插入三個16Update語句UPDATE tbl_name
SETcol_name1=expr1[,col_name2=expr2...]
[WHEREwhere_definition]
使用update語句修改表中數(shù)據(jù)。UPDATE語法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要給予哪些值。WHERE子句指定應(yīng)更新哪些行。如沒有WHERE子句,則更新所有的行。IT資訊交流網(wǎng)WWW.IT315.ORGUpdate語句UPDATE tbl_name
使用17Update語句練習(xí)練習(xí):在上面創(chuàng)建的employee表中修改表中的紀(jì)錄。要求將所有員工薪水修改為5000元。將姓名為’zs’的員工薪水修改為3000元。將姓名為’aaa’的員工薪水修改為4000元,job改為ccc。將wu的薪水在原有基礎(chǔ)上增加1000元。 IT資訊交流網(wǎng)WWW.IT315.ORGUpdate語句練習(xí)練習(xí):在上面創(chuàng)建的employee表中修18Delete語句deletefromtbl_name
[WHEREwhere_definition]
使用delete語句刪除表中數(shù)據(jù)。如果不使用where子句,將刪除表中所有數(shù)據(jù)。Delete語句不能刪除某一列的值(可使用update)使用delete語句僅刪除記錄,不刪除表本身。如要刪除表,使用droptable語句。同insert和update一樣,從一個表中刪除記錄將引起其它表的參照完整性問題,在修改數(shù)據(jù)庫數(shù)據(jù)時,頭腦中應(yīng)該始終不要忘記這個潛在的問題。刪除表中數(shù)據(jù)也可使用TRUNCATETABLE語句,它和delete有所不同,參看mysql文檔。IT資訊交流網(wǎng)WWW.IT315.ORGDelete語句deletefromtbl_name
19Delete語句練習(xí)刪除表中名稱為’zs’的記錄。刪除表中所有記錄。使用truncate刪除表中記錄。IT資訊交流網(wǎng)WWW.IT315.ORGDelete語句練習(xí)刪除表中名稱為’zs’的記錄。IT資訊交20Select語句(1)SELECT[DISTINCT]*|{column1,column2.column3..} FROM table;Select指定查詢哪些列的數(shù)據(jù)。column指定列名。*號代表查詢所有列。From指定查詢哪張表。DISTINCT可選,指顯示結(jié)果時,是否剔除重復(fù)數(shù)據(jù)基本select語句IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(1)SELECT[DISTINCT]*21Select語句(1)練習(xí):查詢表中所有學(xué)生的信息。查詢表中所有學(xué)生的姓名和對應(yīng)的英語成績。過濾表中重復(fù)數(shù)據(jù)。IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(1)練習(xí):IT資訊交流網(wǎng)WWW.IT3122Select語句(2)SELECT*|{column1|expression,column2|expression,..} FROM table;在select語句中可使用表達式對查詢的列進行運算在select語句中可使用as語句SELECTcolumnas別名from表名;IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(2)SELECT*|{column1|e23Select語句(2)練習(xí)在所有學(xué)生分?jǐn)?shù)上加10分特長分。統(tǒng)計每個學(xué)生的總分。使用別名表示學(xué)生分?jǐn)?shù)。IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(2)練習(xí)IT資訊交流網(wǎng)WWW.IT31524Select語句(3)使用where子句,進行過濾查詢。練習(xí):查詢姓名為wu的學(xué)生成績查詢英語成績大于90分的同學(xué)查詢總分大于200分的所有同學(xué)IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(3)使用where子句,進行過濾查詢。練習(xí)25Select語句(4)在where子句中經(jīng)常使用的運算符比較運算符><<=>==<>大于、小于、大于(小于)等于、不等于BETWEEN...AND...顯示在某一區(qū)間的值IN(set)顯示在in列表中的值,例:in(100,200)LIKE‘張pattern’模糊查詢ISNULL判斷是否為空邏輯運算符and多個條件同時成立or多個條件任一成立not不成立,例:wherenot(salary>100);Like語句中,%代表零個或多個任意字符,_代表一個字符,例first_namelike‘_a%’;IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(4)在where子句中經(jīng)常使用的運算符>26Select語句(4)查詢英語分?jǐn)?shù)在80-90之間的同學(xué)。查詢數(shù)學(xué)分?jǐn)?shù)為89,90,91的同學(xué)。查詢所有姓李的學(xué)生成績。查詢數(shù)學(xué)分>80,語文分>80的同學(xué)。IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(4)查詢英語分?jǐn)?shù)在80-90之間的同學(xué)。27Select語句(5)SELECTcolumn1,column2.column3.. FROM table; orderbycolumnasc|descOrderby指定排序的列,排序的列即可是表中的列名,也可以是select語句后指定的列名。Asc升序、Desc降序ORDERBY子句應(yīng)位于SELECT語句的結(jié)尾。練習(xí):對數(shù)學(xué)成績排序后輸出。對總分排序后輸出,然后再按從高到低的順序輸出對姓李的學(xué)生成績排序輸出使用orderby子句排序查詢結(jié)果。IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(5)SELECTcolumn1,col28合計函數(shù)-countSelectcount(*)|count(列名)fromtablename [WHEREwhere_definition]
練習(xí):統(tǒng)計一個班級共有多少學(xué)生?統(tǒng)計數(shù)學(xué)成績大于90的學(xué)生有多少個?統(tǒng)計總分大于250的人數(shù)有多少?Count(列名)返回某一列,行的總數(shù)IT資訊交流網(wǎng)WWW.IT315.ORG合計函數(shù)-countSelectcount(*)|coun29合計函數(shù)-SUMSelectsum(列名){,sum(列名)…}fromtablename [WHEREwhere_definition]
練習(xí):統(tǒng)計一個班級數(shù)學(xué)總成績?統(tǒng)計一個班級語文、英語、數(shù)學(xué)各科的總成績統(tǒng)計一個班級語文、英語、數(shù)學(xué)的成績總和統(tǒng)計一個班級語文成績平均分注意:sum僅對數(shù)值起作用,否則會報錯。注意:對多列求和,“,”號不能少。Sum函數(shù)返回滿足where條件的行的和IT資訊交流網(wǎng)WWW.IT315.ORG合計函數(shù)-SUMSelectsum(列名){,sum(列名30合計函數(shù)-AVGSelectsum(列名){,sum(列名)…}fromtablename [WHEREwhere_definition]
練習(xí):求一個班級數(shù)學(xué)平均分?求一個班級總分平均分AVG函數(shù)返回滿足where條件的一列的平均值IT資訊交流網(wǎng)WWW.IT315.ORG合計函數(shù)-AVGSelectsum(列名){,sum(列名31合計函數(shù)-MAX/MINSelectmax(列名)fromtablename [WHEREwhere_definition]
練習(xí):求班級最高分和最低分(數(shù)值范圍在統(tǒng)計中特別有用)Max/min函數(shù)返回滿足where條件的一列的最大/最小值IT資訊交流網(wǎng)WWW.IT315.ORG合計函數(shù)-MAX/MINSelectmax(列名)fro32Select語句(6)SELECTcolumn1,column2.column3..FROM table; groupbycolumn練習(xí):對訂單表中商品歸類后,顯示每一類商品的總價使用groupby子句對列進行分組SELECTcolumn1,column2.column3.. FROM table; groupbycolumnhaving...使用having子句過濾練習(xí):查詢購買了幾類商品,并且每類總價大于100的商品Having和where均可實現(xiàn)過濾,但在having可以使用合計函數(shù),having通常跟在groupby后,它作用于組。IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(6)SELECTcolumn1,col33時間日期相關(guān)函數(shù)ADDTIME(date2,time_interval)將time_interval加到date2CURRENT_DATE(
)當(dāng)前日期CURRENT_TIME(
)當(dāng)前時間CURRENT_TIMESTAMP()當(dāng)前時間戳DATE(datetime)返回datetime的日期部分DATE_ADD(date2,INTERVALd_valued_type)在date2中加上日期或時間DATE_SUB(date2,INTERVALd_valued_type)在date2上減去一個時間DATEDIFF(date1,date2)兩個日期差NOW(
)當(dāng)前時間YEAR|Month|DATE(datetime)年月日示例:selectaddtime(‘02:30:30’,‘01:01:01’);注意:字符串、時間日期的引號問題 selectdate_add(entry_date,INTERVAL2year)fromstudent;//增加兩年selectaddtime(time,‘11-110:09:09’)fromstudent;//時間戳上增加,注意年后沒有-IT資訊交流網(wǎng)WWW.IT315.ORG時間日期相關(guān)函數(shù)ADDTIME(date2,time_i34字符串相關(guān)函數(shù)CHARSET(str)返回字串字符集CONCAT(string2
[,...])連接字串INSTR(string,substring)返回substring在string中出現(xiàn)的位置,沒有返回0UCASE(string2)轉(zhuǎn)換成大寫LCASE(string2)轉(zhuǎn)換成小寫LEFT(string2,length)從string2中的左邊起取length個字符LENGTH(string)string長度REPLACE(str,search_str,replace_str)在str中用replace_str替換search_strSTRCMP(string1,string2)逐字符比較兩字串大小,SUBSTRING(str,position
[,length])從str的position開始,取length個字符LTRIM(string2)RTRIM(string2)trim去除前端空格或后端空格IT資訊交流網(wǎng)WWW.IT315.ORG字符串相關(guān)函數(shù)CHARSET(str)返回字串字符集CONC35數(shù)學(xué)相關(guān)函數(shù)ABS(number2)絕對值BIN(decimal_number)十進制轉(zhuǎn)二進制CEILING(number2)向上取整CONV(number2,from_base,to_base)進制轉(zhuǎn)換FLOOR(number2)向下取整FORMAT(number,decimal_places)保留小數(shù)位數(shù)HEX(DecimalNumber)轉(zhuǎn)十六進制LEAST(number,number2
[,..])求最小值MOD(numerator,denominator)求余RAND([seed])RAND([seed])IT資訊交流網(wǎng)WWW.IT315.ORG數(shù)學(xué)相關(guān)函數(shù)ABS(number2)絕對值BIN(de36定義表的約束定義主鍵約束primarykey:不允許為空,不允許重復(fù)刪除主鍵:altertabletablenamedropprimarykey;定義主鍵自動增長auto_increment定義唯一約束unique定義非空約束notnull定義外鍵約束constraintordersid_FKforeignkey(ordersid)referencesorders(id),定義表的約束定義主鍵約束37Tip:mysql中文亂碼mysql有六處使用了字符集,分別為:client、connection、database、results、server、system。client是客戶端使用的字符集。connection是連接數(shù)據(jù)庫的字符集設(shè)置類型,如果程序沒有指明連接數(shù)據(jù)庫使用的字符集類型就按照服務(wù)器端默認(rèn)的字符集設(shè)置。database是數(shù)據(jù)庫服務(wù)器中某個庫使用的字符集設(shè)定,如果建庫時沒有指明,將使用服務(wù)器安裝時指定的字符集設(shè)置。results是數(shù)據(jù)庫給客戶端返回時使用的字符集設(shè)定,如果沒有指明,使用服務(wù)器默認(rèn)的字符集。server是服務(wù)器安裝時指定的默認(rèn)字符集設(shè)定。system是數(shù)據(jù)庫系統(tǒng)使用的字符集設(shè)定。IT資訊交流網(wǎng)WWW.IT315.ORGTip:mysql中文亂碼mysql有六處使用了字符集,分別38SQL入門IT資訊交流網(wǎng)WWW.IT315.ORGSQL入門IT資訊交流網(wǎng)WWW.IT315.ORG39MySQL簡介數(shù)據(jù)庫簡介SQLServer、Oracle、MySQL、DB2、SyBaseMySQL數(shù)據(jù)庫的安裝和配置使用命令行窗口連接MYSQL數(shù)據(jù)庫mysql–u用戶名–p密碼MySQL簡介數(shù)據(jù)庫簡介40數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系MySQLDBDB表表表Client所謂安裝數(shù)據(jù)庫服務(wù)器,只是在機器上裝了一個數(shù)據(jù)庫管理程序,這個管理程序可以管理多個數(shù)據(jù)庫,一般開發(fā)人員會針對每一個應(yīng)用創(chuàng)建一個數(shù)據(jù)庫。為保存應(yīng)用中實體的數(shù)據(jù),一般會在數(shù)據(jù)庫創(chuàng)建多個表,以保存程序中實體的數(shù)據(jù)。數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系如圖所示:IT資訊交流網(wǎng)WWW.IT315.ORG數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系MySQLDBDB表表表Cli41數(shù)據(jù)在數(shù)據(jù)庫中的存儲方式id=1name=“l(fā)isi”age=23User對象idnameage1lisi232wang24User表id=2name=“wang”age=24行(row)列(column)表的一行稱之為一條記錄表中一條記錄對應(yīng)一個java對象的數(shù)據(jù)User對象IT資訊交流網(wǎng)WWW.IT315.ORG數(shù)據(jù)在數(shù)據(jù)庫中的存儲方式id=1User對象idnameag42創(chuàng)建數(shù)據(jù)庫CREATEDATABASE[IFNOTEXISTS]db_name
[create_specification[,create_specification]...]
create_specification:
[DEFAULT]CHARACTERSETcharset_name
|[DEFAULT]COLLATEcollation_name
CHARACTERSET:指定數(shù)據(jù)庫采用的字符集COLLATE:指定數(shù)據(jù)庫字符集的比較方式練習(xí):創(chuàng)建一個名稱為mydb1的數(shù)據(jù)庫。創(chuàng)建一個使用utf-8字符集的mydb2數(shù)據(jù)庫。創(chuàng)建一個使用utf-8字符集,并帶校對規(guī)則的mydb3數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫CREATEDATABASE[IFNOT43查看、刪除數(shù)據(jù)庫顯示數(shù)據(jù)庫語句:SHOWDATABASES顯示數(shù)據(jù)庫創(chuàng)建語句:SHOWCREATEDATABASEdb_name
數(shù)據(jù)庫刪除語句:DROPDATABASE[IFEXISTS]db_name
練習(xí):查看當(dāng)前數(shù)據(jù)庫服務(wù)器中的所有數(shù)據(jù)庫查看前面創(chuàng)建的mydb2數(shù)據(jù)庫的定義信息刪除前面創(chuàng)建的mydb1數(shù)據(jù)庫查看、刪除數(shù)據(jù)庫顯示數(shù)據(jù)庫語句:練習(xí):44修改、備份、恢復(fù)數(shù)據(jù)庫ALTERDATABASE[IFNOTEXISTS]db_name
[alter_specification[,alter_specification]...]
alter_specification:
[DEFAULT]CHARACTERSETcharset_name
|[DEFAULT]COLLATEcollation_name備份數(shù)據(jù)庫表中的數(shù)據(jù) mysqldump-u用戶名-p數(shù)據(jù)庫名>文件名.sql恢復(fù)數(shù)據(jù)庫 Source文件名.sql練習(xí)查看服務(wù)器中的數(shù)據(jù)庫,并把其中某一個庫的字符集修改為utf8;備份test庫中的數(shù)據(jù),并恢復(fù)修改、備份、恢復(fù)數(shù)據(jù)庫ALTERDATABASE[I45創(chuàng)建表(基本語句)CREATETABLEtable_name(
field1datatype, field2datatype, field3datatype,)characterset字符集collate校對規(guī)則field:指定列名datatype:指定列類型注意:創(chuàng)建表時,要根據(jù)需保存的數(shù)據(jù)創(chuàng)建相應(yīng)的列,并根據(jù)數(shù)據(jù)的類型定義相應(yīng)的列類型。例:user對象 idint namestring passwordstring birthdaydateIdNamePasswordbirthday注意:創(chuàng)建表前,要先使用usedb語句使用庫。創(chuàng)建表(基本語句)CREATETABLEtable_na46MySQL常用數(shù)據(jù)類型VARCHAR、BLOB和TEXT類是變長類型。每個類型的存儲需求取決于列值的實際長度。
分類數(shù)據(jù)類型說明數(shù)值類型BIT(M)TINYINT[UNSIGNED][ZEROFILL]BOOL,BOOLEANSMALLINT[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表示真或假2的16次方2的32次方2的64次方M指定顯示長度,d指定小數(shù)位數(shù)表示比float精度更大的小數(shù)文本、二進制類型CHAR(size)char(20)VARCHAR(size)varchar(20)BLOBLONGBLOBTEXT(clob)LONGTEXT(longclob)固定長度字符串可變長度字符串二進制數(shù)據(jù)大文本時間日期DATE/DATETIME/TimeStamp日期類型(YYYY-MM-DD)(YYYY-MM-DDHH:MM:SS),TimeStamp表示時間戳,它可用于自動記錄insert、update操作的時間MySQL常用數(shù)據(jù)類型VARCHAR、BLOB和TEXT類是47創(chuàng)建表練習(xí)創(chuàng)建一個員工表字段屬性Id整形name字符型sex字符型或bit型brithday日期型Entry_date日期型job字符型Salary小數(shù)型resume大文本型創(chuàng)建表練習(xí)創(chuàng)建一個員工表字段屬性Id整形name字符型sex48修改表使用ALTERTABLE語句追加,修改,或刪除列的語法.ALTERTABLEtableADD
(columndatatype[DEFAULTexpr] [,columndatatype]...);ALTERTABLEtableMODIFY
(columndatatype[DEFAULTexpr] [,columndatatype]...);ALTERTABLEtableDROP
(column);修改表的名稱:Renametable表名to新表名修改表的字符集:altertablestudentcharactersetutf8;修改表使用ALTERTABLE語句追加,修改,或刪49修改表練習(xí)在上面員工表的基本上增加一個image列。修改job列,使其長度為60。刪除sex列。表名改為user。修改表的字符集為utf-8列名name修改為usernamealtertableuserchangecolumnnameusernamevarchar(20);IT資訊交流網(wǎng)WWW.IT315.ORG修改表練習(xí)IT資訊交流網(wǎng)WWW.IT315.ORG50IT資訊交流網(wǎng)WWW.IT315.ORGIT資訊交流網(wǎng)WWW.IT315.ORG51數(shù)據(jù)庫CRUD語句Insert語句(增加數(shù)據(jù))Update語句(更新數(shù)據(jù))Delete語句(刪除數(shù)據(jù))Select語句(查找數(shù)據(jù))IT資訊交流網(wǎng)WWW.IT315.ORG數(shù)據(jù)庫CRUD語句Insert語句(增加數(shù)據(jù))IT資52Insert語句INSERTINTO table[(column[,column...])]VALUES (value[,value...]);使用INSERT語句向表中插入數(shù)據(jù)。插入的數(shù)據(jù)應(yīng)與字段的數(shù)據(jù)類型相同。數(shù)據(jù)的大小應(yīng)在列的規(guī)定范圍內(nèi),例如:不能將一個長度為80的字符串加入到長度為40的列中。在values中列出的數(shù)據(jù)位置必須與被加入的列的排列位置相對應(yīng)。字符和日期型數(shù)據(jù)應(yīng)包含在單引號中。插入空值,不指定或insertintotablevalue(null)IT資訊交流網(wǎng)WWW.IT315.ORGInsert語句INSERTINTO table[(co53Insert語句練習(xí)練習(xí):使用insert語句向表中插入三個員工的信息。注意:字符和日期要包含在單引號中。showvariableslike'character%';setcharacter_set_results=gbk;IT資訊交流網(wǎng)WWW.IT315.ORGInsert語句練習(xí)練習(xí):使用insert語句向表中插入三個54Update語句UPDATE tbl_name
SETcol_name1=expr1[,col_name2=expr2...]
[WHEREwhere_definition]
使用update語句修改表中數(shù)據(jù)。UPDATE語法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要給予哪些值。WHERE子句指定應(yīng)更新哪些行。如沒有WHERE子句,則更新所有的行。IT資訊交流網(wǎng)WWW.IT315.ORGUpdate語句UPDATE tbl_name
使用55Update語句練習(xí)練習(xí):在上面創(chuàng)建的employee表中修改表中的紀(jì)錄。要求將所有員工薪水修改為5000元。將姓名為’zs’的員工薪水修改為3000元。將姓名為’aaa’的員工薪水修改為4000元,job改為ccc。將wu的薪水在原有基礎(chǔ)上增加1000元。 IT資訊交流網(wǎng)WWW.IT315.ORGUpdate語句練習(xí)練習(xí):在上面創(chuàng)建的employee表中修56Delete語句deletefromtbl_name
[WHEREwhere_definition]
使用delete語句刪除表中數(shù)據(jù)。如果不使用where子句,將刪除表中所有數(shù)據(jù)。Delete語句不能刪除某一列的值(可使用update)使用delete語句僅刪除記錄,不刪除表本身。如要刪除表,使用droptable語句。同insert和update一樣,從一個表中刪除記錄將引起其它表的參照完整性問題,在修改數(shù)據(jù)庫數(shù)據(jù)時,頭腦中應(yīng)該始終不要忘記這個潛在的問題。刪除表中數(shù)據(jù)也可使用TRUNCATETABLE語句,它和delete有所不同,參看mysql文檔。IT資訊交流網(wǎng)WWW.IT315.ORGDelete語句deletefromtbl_name
57Delete語句練習(xí)刪除表中名稱為’zs’的記錄。刪除表中所有記錄。使用truncate刪除表中記錄。IT資訊交流網(wǎng)WWW.IT315.ORGDelete語句練習(xí)刪除表中名稱為’zs’的記錄。IT資訊交58Select語句(1)SELECT[DISTINCT]*|{column1,column2.column3..} FROM table;Select指定查詢哪些列的數(shù)據(jù)。column指定列名。*號代表查詢所有列。From指定查詢哪張表。DISTINCT可選,指顯示結(jié)果時,是否剔除重復(fù)數(shù)據(jù)基本select語句IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(1)SELECT[DISTINCT]*59Select語句(1)練習(xí):查詢表中所有學(xué)生的信息。查詢表中所有學(xué)生的姓名和對應(yīng)的英語成績。過濾表中重復(fù)數(shù)據(jù)。IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(1)練習(xí):IT資訊交流網(wǎng)WWW.IT3160Select語句(2)SELECT*|{column1|expression,column2|expression,..} FROM table;在select語句中可使用表達式對查詢的列進行運算在select語句中可使用as語句SELECTcolumnas別名from表名;IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(2)SELECT*|{column1|e61Select語句(2)練習(xí)在所有學(xué)生分?jǐn)?shù)上加10分特長分。統(tǒng)計每個學(xué)生的總分。使用別名表示學(xué)生分?jǐn)?shù)。IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(2)練習(xí)IT資訊交流網(wǎng)WWW.IT31562Select語句(3)使用where子句,進行過濾查詢。練習(xí):查詢姓名為wu的學(xué)生成績查詢英語成績大于90分的同學(xué)查詢總分大于200分的所有同學(xué)IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(3)使用where子句,進行過濾查詢。練習(xí)63Select語句(4)在where子句中經(jīng)常使用的運算符比較運算符><<=>==<>大于、小于、大于(小于)等于、不等于BETWEEN...AND...顯示在某一區(qū)間的值IN(set)顯示在in列表中的值,例:in(100,200)LIKE‘張pattern’模糊查詢ISNULL判斷是否為空邏輯運算符and多個條件同時成立or多個條件任一成立not不成立,例:wherenot(salary>100);Like語句中,%代表零個或多個任意字符,_代表一個字符,例first_namelike‘_a%’;IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(4)在where子句中經(jīng)常使用的運算符>64Select語句(4)查詢英語分?jǐn)?shù)在80-90之間的同學(xué)。查詢數(shù)學(xué)分?jǐn)?shù)為89,90,91的同學(xué)。查詢所有姓李的學(xué)生成績。查詢數(shù)學(xué)分>80,語文分>80的同學(xué)。IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(4)查詢英語分?jǐn)?shù)在80-90之間的同學(xué)。65Select語句(5)SELECTcolumn1,column2.column3.. FROM table; orderbycolumnasc|descOrderby指定排序的列,排序的列即可是表中的列名,也可以是select語句后指定的列名。Asc升序、Desc降序ORDERBY子句應(yīng)位于SELECT語句的結(jié)尾。練習(xí):對數(shù)學(xué)成績排序后輸出。對總分排序后輸出,然后再按從高到低的順序輸出對姓李的學(xué)生成績排序輸出使用orderby子句排序查詢結(jié)果。IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(5)SELECTcolumn1,col66合計函數(shù)-countSelectcount(*)|count(列名)fromtablename [WHEREwhere_definition]
練習(xí):統(tǒng)計一個班級共有多少學(xué)生?統(tǒng)計數(shù)學(xué)成績大于90的學(xué)生有多少個?統(tǒng)計總分大于250的人數(shù)有多少?Count(列名)返回某一列,行的總數(shù)IT資訊交流網(wǎng)WWW.IT315.ORG合計函數(shù)-countSelectcount(*)|coun67合計函數(shù)-SUMSelectsum(列名){,sum(列名)…}fromtablename [WHEREwhere_definition]
練習(xí):統(tǒng)計一個班級數(shù)學(xué)總成績?統(tǒng)計一個班級語文、英語、數(shù)學(xué)各科的總成績統(tǒng)計一個班級語文、英語、數(shù)學(xué)的成績總和統(tǒng)計一個班級語文成績平均分注意:sum僅對數(shù)值起作用,否則會報錯。注意:對多列求和,“,”號不能少。Sum函數(shù)返回滿足where條件的行的和IT資訊交流網(wǎng)WWW.IT315.ORG合計函數(shù)-SUMSelectsum(列名){,sum(列名68合計函數(shù)-AVGSelectsum(列名){,sum(列名)…}fromtablename [WHEREwhere_definition]
練習(xí):求一個班級數(shù)學(xué)平均分?求一個班級總分平均分AVG函數(shù)返回滿足where條件的一列的平均值IT資訊交流網(wǎng)WWW.IT315.ORG合計函數(shù)-AVGSelectsum(列名){,sum(列名69合計函數(shù)-MAX/MINSelectmax(列名)fromtablename [WHEREwhere_definition]
練習(xí):求班級最高分和最低分(數(shù)值范圍在統(tǒng)計中特別有用)Max/min函數(shù)返回滿足where條件的一列的最大/最小值IT資訊交流網(wǎng)WWW.IT315.ORG合計函數(shù)-MAX/MINSelectmax(列名)fro70Select語句(6)SELECTcolumn1,column2.column3..FROM table; groupbycolumn練習(xí):對訂單表中商品歸類后,顯示每一類商品的總價使用groupby子句對列進行分組SELECTcolumn1,column2.column3.. FROM table; groupbycolumnhaving...使用having子句過濾練習(xí):查詢購買了幾類商品,并且每類總價大于100的商品Having和where均可實現(xiàn)過濾,但在having可以使用合計函數(shù),having通常跟在groupby后,它作用于組。IT資訊交流網(wǎng)WWW.IT315.ORGSelect語句(6)SELECTcolumn1,col71時間日期相關(guān)函數(shù)ADDTIME(date2,time_interval)將time_interval加到date2CURRENT_DATE(
)當(dāng)前日期CURRENT_TIME(
)當(dāng)前時間CURRENT_TIMESTAMP()
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB31/ 848-2014有色金屬壓力鑄造單位產(chǎn)品能源消耗限額
- 2024年電壓測量儀器項目投資申請報告代可行性研究報告
- JAVA網(wǎng)絡(luò)編程試題及答案解析
- 直播平臺主播傭金結(jié)算標(biāo)準(zhǔn)補充合同
- 2025年中國半導(dǎo)體機器人自動化行業(yè)市場前景預(yù)測及投資價值評估分析報告
- 影視后期制作與海外發(fā)行服務(wù)合同
- 智能交通系統(tǒng)主體結(jié)構(gòu)施工與智能交通管理合同
- 澳大利亞移民臨時倉儲租賃及倉儲服務(wù)優(yōu)化合同
- 電視劇組群眾演員意外保障合同補充條款
- 智能電網(wǎng)故障診斷、預(yù)測與綜合維護合同
- 機載直流用電設(shè)備電源特性要求及試驗方法
- 自發(fā)冠脈夾層診療指南解讀
- 養(yǎng)老院老人入(出)院流程圖
- 健康照護教材課件匯總完整版ppt全套課件最全教學(xué)教程整本書電子教案全書教案課件合集
- 最新-臨時救助申請審核審批表模板
- 《有效溝通》PPT課件-(2)
- 三級醫(yī)院服務(wù)能力指南2022
- 家庭室內(nèi)裝飾裝修工程驗收單
- 青春紅綠燈教學(xué)設(shè)計中小學(xué)心理健康心理游戲腳本
- 《城鎮(zhèn)土地使用稅納稅申報表》
- 三年級數(shù)學(xué)下冊口算脫式豎式練習(xí)題
評論
0/150
提交評論