版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、a,1,MySQL基礎(chǔ)知識(shí),a,2,目錄,a,3,層次模型,面向?qū)ο竽P?網(wǎng)狀模型,關(guān)系模型,數(shù)據(jù)庫管理 系統(tǒng)常用的 數(shù)學(xué)模型,a,4,設(shè)計(jì)數(shù)據(jù)庫,數(shù)據(jù)庫(Database或DB)是存儲(chǔ)、管理數(shù)據(jù)的容器。數(shù)據(jù)永遠(yuǎn)是數(shù)據(jù)庫的核心。,目前關(guān)系數(shù)據(jù)庫管理系統(tǒng)已占據(jù)主導(dǎo)地位 。MySQL和Microsoft SQL Server2000也是基于關(guān)系模型的。它的主要特征是使用關(guān)系來表示實(shí)體以及實(shí)體之間的聯(lián)系。,E-R圖設(shè)計(jì)的質(zhì)量直接決定了關(guān)系數(shù)據(jù)庫設(shè)計(jì)的質(zhì)量。,a,5,實(shí)體不是某一個(gè)具體事物,而是某一種類別所有事物的統(tǒng)稱。 屬性通常用于表示實(shí)體的某種特征,也可以使用屬性表示實(shí)體間關(guān)系的特征,實(shí)體,屬性,
2、屬性,實(shí)體和屬性,a,6,E-R圖中的關(guān)系用于表示實(shí)體間存在的聯(lián)系,在E-R圖中,實(shí)體間的關(guān)系通常使用一條線段表示。 E-R圖中實(shí)體間的關(guān)系是雙向的。,關(guān)系,關(guān)系,關(guān)系,a,7,1為E-R圖中的每個(gè)實(shí)體建立一張表,實(shí)體命名應(yīng)唯一,實(shí)體型和聯(lián)系的屬性命名都應(yīng)唯一。 2為每張表定義一個(gè)主鍵(如果需要,可以向表添加一個(gè)沒有實(shí)際意義的字 段作為該表的主鍵) 3增加外鍵表示一對(duì)多關(guān)系。 4建立新表表示多對(duì)多關(guān)系。 5為字段選擇合適的數(shù)據(jù)類型。 6定義約束條件(如果需要)。 7評(píng)價(jià)關(guān)系的質(zhì)量,并進(jìn)行必要的改進(jìn)。,關(guān)系數(shù)據(jù)庫設(shè)計(jì),a,8,開源,MySQL源代碼免費(fèi)下載,簡單,MySQL體積小,便于安裝,My
3、SQL性能足夠與商業(yè)數(shù)據(jù)庫媲美,功能強(qiáng)大,MySQL提供的功能足夠與商業(yè)數(shù)據(jù)庫媲美,性能優(yōu)越,MySQL數(shù)據(jù)庫的優(yōu)勢(shì),a,9,MySQL數(shù)據(jù)庫的優(yōu)勢(shì),性能高效,MySQL是一個(gè)單進(jìn)程多線程、支持多用戶、基于客戶機(jī)/服務(wù)器(Client/Server簡稱C/S)的關(guān)系數(shù)據(jù)庫管理系統(tǒng),跨平臺(tái)支持,支持多用戶,開源,簡單易用,a,10,MySQL 為關(guān)系型數(shù)據(jù)庫(Relational Database Management System), 這種所謂的關(guān)系型可以理解為表格的概念, 一個(gè)關(guān)系型數(shù)據(jù)庫由一個(gè)或數(shù)個(gè)表格組成, 如圖所示的一個(gè)表格:,MySQL的相關(guān)概念介紹,a,11,表頭(header):
4、 每一列的名稱; 列(row): 具有相同數(shù)據(jù)類型的數(shù)據(jù)的集合; 行(col): 每一行用來描述某個(gè)人/物的具體信息; 值(value): 行的具體信息, 每個(gè)值必須與該列的數(shù)據(jù)類型相同; 鍵(key): 表中用來識(shí)別某個(gè)特定的人物的方法, 鍵的值在當(dāng)前列中具有唯一性。,MySQL的相關(guān)概念介紹,a,12,MySQL數(shù)據(jù)庫的安裝,ThemeGallery is a Design Digital Content 2. 在安裝文件夾下找到 my-small.ini 配置文件, 將其重命名為 my.ini , 打開進(jìn)行編輯, 在 client 與 mysqld 下均添加一行: default-cha
5、racter-set = gbk 3. 打開 Windows 環(huán)境變量設(shè)置, 新建變量名 MYSQL_HOME , 變量值為 MySQL 安裝目錄路徑, 這里為 C:Program Filesmysql-5.1.69-win32 4. 在 環(huán)境變量 的 Path 變量中添加 ;%MYSQL_HOME%bin; 5. 安裝 MySQL 服務(wù), 打開Windows命令提示符, 執(zhí)行命令: mysqld -install MySQL -defaults-file=my.ini 提示Service successfully installed.表示成功;,Windows下MySQL的配置,a,14,與
6、常規(guī)的腳本語言類似, MySQL 也具有一套對(duì)字符、單詞以及特殊符號(hào)的使用規(guī)定, MySQL 通過執(zhí)行 SQL 腳本來完成對(duì)數(shù)據(jù)庫的操作, 該腳本由一條或多條MySQL語句(SQL語句 + 擴(kuò)展語句)組成, 保存時(shí)腳本文件后綴名一般為 .sql。在控制臺(tái)下, MySQL 客戶端也可以對(duì)語句進(jìn)行單句的執(zhí)行而不用保存為.sql文件。 1、標(biāo)識(shí)符 標(biāo)識(shí)符用來命名一些對(duì)象, 如數(shù)據(jù)庫、表、列、變量等, 以便在腳本中的其他地方引用。MySQL標(biāo)識(shí)符命名規(guī)則稍微有點(diǎn)繁瑣, 這里我們使用萬能命名規(guī)則: 標(biāo)識(shí)符由字母、數(shù)字或下劃線(_)組成, 且第一個(gè)字符必須是字母或下劃線。 對(duì)于標(biāo)識(shí)符是否區(qū)分大小寫取決于當(dāng)
7、前的操作系統(tǒng), Windows下是不敏感的, 但對(duì)于大多數(shù) linuxunix 系統(tǒng)來說, 這些標(biāo)識(shí)符大小寫是敏感的。,MySQL腳本的基本組成,a,15,2、關(guān)鍵字: MySQL的關(guān)鍵字眾多, 這里不一一列出, 這些關(guān)鍵字有自己特定的含義, 盡量避免作為標(biāo)識(shí)符。 3、語句: MySQL語句是組成MySQL腳本的基本單位, 每條語句能完成特定的操作, 他是由 SQL 標(biāo)準(zhǔn)語句 + MySQL 擴(kuò)展語句組成。 4、函數(shù): MySQL函數(shù)用來實(shí)現(xiàn)數(shù)據(jù)庫操作的一些高級(jí)功能, 這些函數(shù)大致分為以下幾類: 字符串函數(shù)、數(shù)學(xué)函數(shù)、日期時(shí)間函數(shù)、搜索函數(shù)、加密函數(shù)、信息函數(shù)。,MySQL腳本的基本組成,a,
8、16,MySQL有三大類數(shù)據(jù)類型, 分別為數(shù)字、日期時(shí)間、字符串, 這三大類中又更細(xì)致的劃分了許多子類型: 數(shù)字類型 整數(shù): tinyint、smallint、mediumint、int、bigint 浮點(diǎn)數(shù): float、double、real、decimal 日期和時(shí)間: date、time、datetime、timestamp、year 字符串類型 字符串: char、varchar 文本: tinytext、text、mediumtext、longtext 二進(jìn)制(可用來存儲(chǔ)圖片、音樂等): tinyblob、blob、 mediumblob、longblob,MySQL中的數(shù)據(jù)類型,
9、a,17,MySQL服務(wù)的啟動(dòng)、停止與卸載 在 Windows 命令提示符下運(yùn)行: 啟動(dòng): net start MySQL 停止: net stop MySQL 卸載: sc delete MySQL,使用MySQL數(shù)據(jù)庫,登錄到MySQL 當(dāng) MySQL 服務(wù)已經(jīng)運(yùn)行時(shí), 我們可以通過MySQL自帶的客戶端工具登錄到MySQL數(shù)據(jù)庫中, 首先打開命令提示符, 輸入以下格式的命名: mysql -h 主機(jī)名 -u 用戶名 -p -h : 該命令用于指定客戶端所要登錄的MySQL主機(jī)名, 登錄當(dāng)前機(jī)器該參數(shù)可以省略; -u : 所要登錄的用戶名; -p : 告訴服務(wù)器將會(huì)使用一個(gè)密碼來登錄, 如
10、果所要登錄的用戶名密碼為空, 可以忽略此選項(xiàng)。,a,18,使用MySQL數(shù)據(jù)庫,以登錄剛剛安裝在本機(jī)的MySQL數(shù)據(jù)庫為例, 在命令行下輸入 mysql -u root -p 按回車確認(rèn), 如果安裝正確且MySQL正在運(yùn)行, 會(huì)得到以下響應(yīng): Enter password: 若密碼存在, 輸入密碼登錄, 不存在則直接按回車登錄, 按照本文中的安裝方法, 默認(rèn) root 賬號(hào)是無密碼的。登錄成功后你將會(huì)看到 Welecome to the MySQL monitor. 的提示語。 然后命令提示符會(huì)一直以 mysql 加一個(gè)閃爍的光標(biāo)等待命令的輸入, 輸入 exit 或 quit 退出登錄。 注意
11、: MySQL語句以分號(hào)(;)作為語句的結(jié)束, 若在語句結(jié)尾不添加分號(hào)時(shí), 命令提示符會(huì)以 - 提示你繼續(xù)輸入(有個(gè)別特例, 但加分號(hào)是一定不會(huì)錯(cuò)的);,a,19,結(jié)構(gòu)化查詢語言SQL,4,結(jié)構(gòu)化查詢語言(Structured Query Language或簡稱為SQL)是一種應(yīng)用最為廣泛的關(guān)系數(shù)據(jù)庫語言。,使用MySQL命令show databases;即可查看MySQL服務(wù)實(shí)例上所有的數(shù)據(jù)庫 。,刪除student數(shù)據(jù)庫,使用SQL語句 drop database student;,a,20,結(jié)構(gòu)化查詢語言SQL,4,表是數(shù)據(jù)庫中最為重要的數(shù)據(jù)庫對(duì)象。,使用SQL語句“create tab
12、le表名”即可創(chuàng)建一個(gè)數(shù)據(jù)庫表。例如: use HB_HNEMP2014; set default_storage_engine=InnoDB; create table my_table( today datetime, name char(20) );/其中HB_HNEMP2014為數(shù)據(jù)庫名,使用SQL語句:drop table table_name;即可刪除名為table_name的表。刪除表后,MySQL服務(wù)實(shí)例會(huì)自動(dòng)刪除該表結(jié)構(gòu)定義文件(例如second_table.frm文件),以及數(shù)據(jù)、索引信息。該命令慎用!,a,21,SQL語句現(xiàn)實(shí)增、刪、改、查,使用insert語句插入新記錄
13、。語法格式如下: insert into 表名 (字段列表) values (值列表) 例如:在數(shù)據(jù)庫中增加一行:,Insert into HB_HNEMP2015.SysUser( Personnel_ID ,Code ,Cname ,Password ,PasswordFormat ,PasswordSalt ,IsActive ,Description) values(SM201523380090,hello,李明明,000000,0,null,1,武漢理工大學(xué)學(xué)生),a,22,SQL語句現(xiàn)實(shí)增、刪、改、查,在insert語句中使用select子句可以將源表的查詢結(jié)果添加到目標(biāo)表中,語法
14、格式如下: insert into 目標(biāo)表名(字段列表1) select (字段列表2) from 源表 where 條件表達(dá)式 注意:字段列表1與字段列表2的字段個(gè)數(shù)必須相同,且對(duì)應(yīng)字段的數(shù)據(jù)類型盡量保持一致。 如果源表與目標(biāo)表的表結(jié)構(gòu)完全相同,“(字段列表1)”可以省略。,a,23,SQL語句現(xiàn)實(shí)增、刪、改、查,使用delete刪除表記錄。語法格式如下: delete from 表名 where 條件表達(dá)式 說明:如果沒有指定where子句,那么該表的所有記錄都將被刪除,但表結(jié)構(gòu)依然存在。 例如:在數(shù)據(jù)庫中刪除一行信息:,delete from SysUser where Personne
15、l_ID=SM201523380090,a,24,SQL語句現(xiàn)實(shí)增、刪、改、查,使用update更改表記錄。語法格式如下: update 表名 set 字段名1=值1,字段名2=值2,. ,字段名n=值n where 條件表達(dá)式 where子句指定了表中的哪些記錄需要修改。若省略了where子句,則表示修改表中的所有記錄。 set子句指定了要修改的字段以及該字段修改后的值。 例如:在數(shù)據(jù)庫中修改信息:,Update SysUser set Cname=王明明 WHERE Personnel_ID=SM201523380090,a,25,使用select語句查詢表記錄,語法格式如下: selec
16、t 字段列表 from 數(shù)據(jù)源 where條件表達(dá)式 group by 分組字段 having條件表達(dá)式 order by 排序字段 asc | desc WHERE語句在GROUP BY語句之前;SQL會(huì)在分組之前計(jì)算WHERE語句, HAVING語句在GROUP BY語句之后;SQL會(huì)在分組之后計(jì)算HAVING語句,1,2,3,使用謂詞限制記錄的行數(shù),使用select子句指定字段列表,使用from子句指定數(shù)據(jù)源,4,多表連接,SQL語句現(xiàn)實(shí)增、刪、改、查,a,26,select語句的查詢結(jié)果集的排序由數(shù)據(jù)庫系統(tǒng)動(dòng)態(tài)確定,往往是無序的,order by子句用于對(duì)結(jié)果集排序。在select語句
17、中添加order by子句,就可以使結(jié)果集中的記錄按照一個(gè)或多個(gè)字段的值進(jìn)行排序,排序的方向可以是升序(asc)或降序(desc)。order by子句的語法格式如下。 order by 字段名1 asc|desc ,字段名n asc|desc ,SQL語句現(xiàn)實(shí)增、刪、改、查,a,27,SQL語句現(xiàn)實(shí)增、刪、改、查實(shí)例,例1:在數(shù)據(jù)庫中查詢表中一行所有信息: 例2:在數(shù)據(jù)庫中查詢某些信息: 例3:查詢一共有多少數(shù)據(jù):,SELECT * FROM HB_HNEMP2015.SysUser WHERE Cname=王明明,SELECT Personnel_ID ,Code ,Cname ,Pass
18、word FROM HB_HNEMP2015.SysUser limit 3,select COUNT(*)from SysUser,a,28,SQL語句現(xiàn)實(shí)增、刪、改、查實(shí)例,例4:鏈接并查詢兩個(gè)表的列: 例5:按日期查詢:,SELECT SysUser.Personnel_ID ,Code ,Cname ,Password FROM HB_HNEMP2015.SysUser,HB_HNEMP2015.SysUserRole where LENGTH(Code)=5 and SysUser.Personnel_ID=SysUserRole.Personnel_ID,select * from
19、 Incident where FindTime2015-04-22 00:00:00.000 and FindTime2015-05-18 00:00:00.000,a,29,SQL語句現(xiàn)實(shí)增、刪、改、查實(shí)例,例6:在數(shù)據(jù)庫中查找表中密碼為jt開頭的用戶信息: 例7:將表中信息降序排列:,select Personnel_ID ,Code ,Cname ,Password from SysUser where Password=123456 and Code like jt%,select*from SysUser order by Personnel_ID desc,a,30,group
20、by子句將查詢結(jié)果按照某個(gè)字段(或多個(gè)字段)進(jìn)行分組(字段值相同的記錄作為一個(gè)分組。 group by子句通常與聚合函數(shù)一起使用,語法格式如下: group by 字段列表 having條件表達(dá)式 with rollup group_concat()函數(shù)的功能是將集合中的字符串連接起來,此時(shí)group_concat()函數(shù)的功能與字符串連接函數(shù)concat()的功能相似。,1,2,3,group by子句與having子句,group by子句與聚合函數(shù),group by子句與group_concat()函數(shù),4,group by子句與with roll up選項(xiàng),使用group by子句對(duì)記
21、錄分組統(tǒng)計(jì),a,31,SQL語句現(xiàn)實(shí)增、刪、改、查實(shí)例,例8:學(xué)會(huì)用GROUP BY 和having: char_length()可以計(jì)算中文長度,而length()計(jì)算的是普通字符的長度,select SysUser.Personnel_ID ,Code ,Cname from SysUser ,SysUserRole where Code like x% and Password=123456 and SysUser.Personnel_ID=SysUserRole.Personnel_ID Group by SysUser.Personnel_ID ,Code ,Cname Having CHAR_LENGTH(Cname)3 order by SysUser.Personnel_ID desc,a,32,SQL語句現(xiàn)實(shí)增、刪、改、查實(shí)例,例9:查詢表中密碼最長的用戶:,select SysUser.Personnel_ID ,Code ,Cname ,MAX(length(Code) as length from SysUser ,SysUserRole where Code like x% and Password=123456 and SysUser.Personnel_ID=SysUserRole.Personnel_ID Group by SysUser.Pe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022活著讀書心得范文
- 第七冊(cè)第三組《去年的樹》說課稿
- 講文明禮貌演講稿
- 2024年標(biāo)準(zhǔn)民房租賃協(xié)議范本版B版
- 國家級(jí)產(chǎn)業(yè)園基礎(chǔ)設(shè)施項(xiàng)目概述
- 2024年建筑項(xiàng)目招投標(biāo)合同范本
- 2024年城市更新項(xiàng)目投資方合作協(xié)議3篇
- 供氣市場(chǎng)需求分析
- 2024年職業(yè)院校批量印刷與文印服務(wù)專項(xiàng)合同12篇
- 植物奶油裱花課程設(shè)計(jì)
- 我和我的祖國-電影賞析
- 基本事實(shí)要素表
- 市場(chǎng)監(jiān)督管理局企業(yè)注冊(cè)、經(jīng)營范圍登記規(guī)范表述:行業(yè)分類及條目代碼
- 2023-2024學(xué)年青海省西寧市小學(xué)數(shù)學(xué)二年級(jí)上冊(cè)期末自測(cè)試題
- 2023年中國工商銀行度校園招聘筆試題庫及答案解析
- 機(jī)械系統(tǒng)運(yùn)動(dòng)方案設(shè)計(jì)示例
- FQW礦用風(fēng)動(dòng)潛水泵說明書
- QC成果降低鉆孔灌注樁混凝土損耗率
- GB/T 16275-2008城市軌道交通照明
- GB 7102.1-1994食用植物油煎炸過程中的衛(wèi)生標(biāo)準(zhǔn)
- 2023年1月浙江高考思想政治卷試題真題(含參考答案)
評(píng)論
0/150
提交評(píng)論