




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、黑 馬 程 序 員 : 數(shù) 據(jù) 庫 MYSQL今日內(nèi)容介紹MySQL 數(shù)據(jù)庫SQL 語句第 1 章 數(shù)據(jù)庫1.1 數(shù)據(jù)庫概述什么是數(shù)據(jù)庫數(shù)據(jù)庫就是存儲數(shù)據(jù)的倉庫,其本質(zhì)是一個文件系統(tǒng),數(shù)據(jù)按照特定的格式將數(shù)據(jù)存儲起來,用戶可以對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增加,修改,刪除及查詢操作。什么是數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System , DBMS ) :指一種操作和管理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫,對數(shù)據(jù)庫進(jìn)行統(tǒng)一管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。用戶通過數(shù)據(jù)庫管理系統(tǒng)訪問 數(shù)據(jù)庫中表內(nèi)的數(shù)據(jù)。常見的數(shù)據(jù)庫管理系統(tǒng)MYSQL :開源免費(fèi)的數(shù)據(jù)
2、庫,小型的數(shù)據(jù)庫.已經(jīng)被Oracle 收購了 .MySQL6.x 版本也開始收費(fèi)。Oracle :收費(fèi)的大型數(shù)據(jù)庫,Oracle 公司的產(chǎn)品。Oracle 收購 SUN公司,收購MYSQL。DB2 : IBM 公司的數(shù)據(jù)庫產(chǎn)品,收費(fèi)的。常應(yīng)用在銀行系統(tǒng)中.SQLServer : MicroSoft 公司收費(fèi)的中型的數(shù)據(jù)庫。C#、 .net 等語言常使用。SyBase :已經(jīng)淡出歷史舞臺。提供了一個非常專業(yè)數(shù)據(jù)建模的工具PowerDesigner 。SQLite : 嵌入式的小型數(shù)據(jù)庫,應(yīng)用在手機(jī)端。Java 相關(guān)的數(shù)據(jù)庫:MYSQL, Oracle 這里使用MySQL 數(shù)據(jù)庫。 MySQL 中
3、可以有多個數(shù)據(jù)庫,數(shù)據(jù)庫是真正存儲數(shù)據(jù)的地方。數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)的關(guān)系1.2 數(shù)據(jù)庫表數(shù)據(jù)庫中以表為組織單位存儲數(shù)據(jù)。表類似我們的Java 類,每個字段都有對應(yīng)的數(shù)據(jù)類型。那么用我們熟悉的java 程序來與關(guān)系型數(shù)據(jù)對比,就會發(fā)現(xiàn)以下對應(yīng)關(guān)系。 類 表類中屬性 表中字段對象 記錄1.3 表數(shù)據(jù)根據(jù)表字段所規(guī)定的數(shù)據(jù)類型,我們可以向其中填入一條條的數(shù)據(jù),而表中的每條數(shù)據(jù)類似類的實(shí)例對象。表中的一行一行的信息我們稱之為記錄。表記錄與java類對象的對應(yīng)關(guān)系第2章MySql數(shù)據(jù)庫2.1 MySql 安裝安裝參考MySQL安裝圖解.doc安裝后,MySQL會以windows服務(wù)的方式為我們提供數(shù)據(jù)
4、存儲功能。開啟和關(guān)閉服務(wù)的操作:右鍵點(diǎn)擊我的電腦-管理-服務(wù)-可以找到MySQL服務(wù)開啟或停止。也可以在DOS窗口,通過命令完成MySQL服務(wù)的啟動和停止(必須以 管理運(yùn)行cmd命令窗口)2.2 登錄MySQL數(shù)據(jù)庫MySQL是一個需要賬戶名密碼登錄的數(shù)據(jù)庫,登陸后使用,它提供了一個默認(rèn)的root賬號,使用安裝時設(shè)置的密碼即可登錄。格式1 : cmd> mysql p 用戶名 p密碼例如: mysql -uroot proot格式 2: cmd> mysql-host=ip 地址-user=用戶名-password= 密碼2.3 SQLyog (MySQL圖形化開發(fā)工具)安裝:提供
5、的SQLyog軟件為免安裝版,可直接使用使用:輸入用戶名、密碼,點(diǎn)擊連接按鈕,進(jìn)行訪問MySQL 數(shù)據(jù)庫進(jìn)行操作在 Query 窗口中,輸入SQL 代碼,選中要執(zhí)行的SQL 代碼,按F8 鍵運(yùn)行,或按執(zhí)行按鈕運(yùn)行。第 3 章 SQL 語句數(shù)據(jù)庫是不認(rèn)識JAVA 語言的,但是我們同樣要與數(shù)據(jù)庫交互,這時需要使用到數(shù)據(jù)庫認(rèn)識的語言SQL 語句,它是數(shù)據(jù)庫的代碼。結(jié)構(gòu)化查詢語言(Structured Query Language)簡稱SQL,是一種數(shù)據(jù) 庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。創(chuàng)建數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)表、向數(shù)據(jù)表中添加一條條數(shù)據(jù)信息均需要使用SQL 語句。3
6、.1 SQL 語句SQL 分類:數(shù)據(jù)定義語言:簡稱 DDL(Data Definition Language) , 用來定義數(shù)據(jù)庫對象:數(shù)據(jù)庫,表,列等。關(guān)鍵字:create , alter , drop 等數(shù)據(jù)操作語言:簡稱DML(Data Manipulation Language),用來對數(shù)據(jù)庫中表的記錄進(jìn)行更新。關(guān)鍵字:insert , delete , update 等數(shù)據(jù)控制語言:簡稱DCL(Data Control Language) ,用來定義數(shù)據(jù)庫的訪問權(quán)限和安全級別,及創(chuàng)建用戶。數(shù)據(jù)查詢語言:簡稱 DQL(Data Query Language),用來查詢數(shù)據(jù)庫中表的記錄。
7、關(guān)鍵字: select , from , where 等3.2 SQL通用語法SQL語句可以單行或多行書寫,以分號結(jié)尾可使用空格和縮進(jìn)來增強(qiáng)語句的可讀性MySQL數(shù)據(jù)庫的SQL語句不區(qū)分大小寫,建議使用大寫,例如:SELECT * FROM user。同樣可以使用/*/的方式完成注釋MySQL中的我們常使用的數(shù)據(jù)類型如下詳細(xì)的數(shù)據(jù)類型如下(不建議詳細(xì)閱讀!)分類類型名稱說明整數(shù)類型tinyInt很小的整數(shù)smallint小的整數(shù)mediumint中等大小的整數(shù)int(integer)普通大小的整數(shù)小數(shù)類型float單精度浮點(diǎn)數(shù)double雙精度浮點(diǎn)數(shù)decimal壓縮嚴(yán)格的定點(diǎn)數(shù)(m,d )日
8、期類型yearYYYY 19012155timeHH:MM:SS -838:59:59838:59:59dateYYYY-MM-DD 1000-01-019999-12-3datetimeYYYY-MM-DDHH:MM:SS1000-01-0100:00:00 9999-12-31 23:59:59timestamPYYYY-MM-DD HH:MM:SS1970010100:00:01 UTC2038-01-19 03:14:07UTC文本、二進(jìn)制類型CHAR(M)M為0255之間的整數(shù)VARCHAR(M)M為065535之間的整數(shù)TINYBLOB允許長度0255字節(jié)BLOB允許長度06553
9、5字節(jié)MEDIUMBLOBLONGBLOBTINYTEXT允許長度0255字節(jié)TEXT允許長度065535字節(jié)MEDIUMTEXTLONGTEXTVARBINARY(M)允許長度0M 個字節(jié)的變長字節(jié)字符串BINARY(M)允許長度0M 個字節(jié)的定長字節(jié)字符串3.3 數(shù)據(jù)庫操作:database創(chuàng)建數(shù)據(jù)庫格式:* create database 數(shù)據(jù)庫名;* create database數(shù)據(jù)庫名 character set 字符集;例如:#創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫中數(shù)據(jù)的編碼采用的是安裝數(shù)據(jù)庫時指定的默認(rèn)編碼utf8CREATE DATABASE day21_1;#創(chuàng)建數(shù)據(jù)庫并指定數(shù)據(jù)庫中數(shù)據(jù)的編碼
10、CREATE DATABASE day21_2 CHARACTER SET utf8;查看數(shù)據(jù)庫查看數(shù)據(jù)庫MySQL服務(wù)器中的所有的數(shù)據(jù)庫:show databases;查看某個數(shù)據(jù)庫的定義的信息:show create database數(shù)據(jù)庫名;例如:show create database day21_1;刪除數(shù)據(jù)庫drop database數(shù)據(jù)庫名稱;例如:drop database day21_2;其他的數(shù)據(jù)庫操作命令切換數(shù)據(jù)庫:use數(shù)據(jù)庫名;例如:use day21_1;查看正在使用的數(shù)據(jù)庫:select database。;3.4表結(jié)構(gòu)相關(guān)語句3.4.1 創(chuàng)建表格式:create
11、 table 表名(字段名類型(長度)約束,字段名類型(長度)約束);例如:#創(chuàng)建分類表CREATE TABLE sort (sid INT, # 分類 IDsname VARCHAR(100) # 分類名稱);3.4.2 主鍵約束主鍵是用于標(biāo)識當(dāng)前記錄的字段。它的特點(diǎn)是非空,唯一。在開發(fā)中一 般情況下主鍵是不具備任何含義,只是用于標(biāo)識當(dāng)前記錄。格式:1 .在創(chuàng)建表時創(chuàng)建主鍵,在字段后面加上primary key.create table tablename(id int primary key,)2 .在創(chuàng)建表時創(chuàng)建主鍵,在表創(chuàng)建的最后來指定主鍵create table tablename(
12、 id int , primary key(id)3 .刪除主鍵:alter table 表名 drop primary key;alter table sort drop primary key;4 .主鍵自動增長:一般主鍵是自增長的字段,不需要指定。實(shí)現(xiàn)添加自增長語句,主鍵字段后加auto_increment (只適用MySQL)例如:#創(chuàng)建分類表CREATE TABLE sort (sid INT PRIMARY KEY auto_increment , #分類 ID sname VARCHAR(100) # 分類名稱);其他約束:其他約束還有如外鍵、唯一、非空等,會在就業(yè)班詳細(xì)介紹3.
13、4.3 查看表查看數(shù)據(jù)庫中的所有表:格式:show tables;查看表結(jié)構(gòu):格式:desc表名;例如:desc sort;3.4.4 刪除表格式:drop table 表名;例如:drop table sort;3.4.5 修改表結(jié)構(gòu)格式:alter table 表名add列名 類型(長度)約束;作用:修改表添加列.例如:# 1 ,為分類表添加一個新的字段為分類描述varchar(20)ALTER TABLE sort ADD sdesc VARCHAR(20);alter table 表名 modify 列名 類型(長度)約束;作用:修改表修改列的類型長度及約束.例如:# 2,為分類表的分
14、類名稱字段進(jìn)行修改,類型 varchar(50) 添加名束not nullALTER TABLE sort MODIFY sname VARCHAR(50) NOT NULL;alter table 表名change舊列名新列名類型(長度)約束;作用:修改表修改列名.例如:# 3,為分類表的分類名稱字段進(jìn)行更換更換為snamesname varchar(30)ALTER TABLE sort CHANGE sname snamename VARCHAR(30);alter table 表名 drop 列名;作用:修改表刪除列.例如:# 4,刪除分類表中snamename 這列ALTER TAB
15、LE sort DROP snamename;rename table 表名 to 新表名;作用:修改表名例如:# 5,為分類表sort改名成categoryRENAME TABLE sort TO category;alter table 表名 character set 字符集;作用:修改表的字符集例如:# 6,為分類表category 的編碼表進(jìn)行修改,修改成 gbkALTER TABLE category CHARACTER SET gbk;3.4.6 插入表記錄:語法:insert into 表(列名1,列名2,列名3.) values(值1,值2,值3.);-向表中插入某些列ins
16、ert into 表values (值1,值2,值3.);-向表中插入所有列注意:插入的數(shù)據(jù)應(yīng)與字段的數(shù)據(jù)類型相同數(shù)據(jù)的大小應(yīng)該在列的長度范圍內(nèi)在values中列出的數(shù)據(jù)位置必須與被加入列的排列位置相對應(yīng)。除了數(shù)值類型外,其它的字段類型的值必須使用引號引起。如果要插入空值,可以不寫字段,或者插入null。對于自動增長的列在操作時,直接插入null值即可。例如:INSERT INTO sort(sid,sname) VALUES('s001',' 電器');INSERT INTO sort(sid,sname) VALUES('s002','
17、; 服飾');INSERT INTO sort VALUES('s003',' 化妝品');INSERT INTO sort VALUES('s004',' 書籍');3.4.7 更新表記錄:用來修改指定條件的數(shù)據(jù),將滿足條件的記錄指定列修改為指定值語法:update 表名 set字段名=值,字段名=值;update 表名 set字段名=值,字段名=值 where 條件;注意:列名的類型與修改的值要一致.修改值得時候不能超過最大長度.值如果是字符串或者日期需要加.例如:#1 ,將指定的sname字段中的值 修改成 日用品U
18、PDATE sort SET sname=' 日用品;#2,將sid為s002的記錄中的sname改成 日用品UPDATE sort SET sname=' 日用品'WHERE sid='s002'UPDATE sort SET sname=' 日用品'WHERE sid='s003'3.4.8 刪除記錄:delete語法:delete from 表名 where 條件;或者truncate table表名;面試題:刪除表中所有記錄使用 delete from 表名;還是用truncate table 表名;刪除方式:de
19、lete 一條一條刪除,不清空 auto_increment 記錄數(shù)。truncate 直接將表刪除,重新建表,auto_increment 將置為零,從新開始。例如:DELETE FROM sort WHERE sname=' 日用品;#表數(shù)據(jù)清空DELETE FROM sort;3.5 DOS操作數(shù)據(jù)亂碼解決我們在dos命令行操作中文時,會報錯insert into user(username,password) values('張三' : 123');ERROR 1366 (HY000): Incorrect string value: 'xD5x
20、C5xC8xFD' for column 'username' at row 1原因:因?yàn)閙ysql的客戶端編碼的問題我們的是utf8,而系統(tǒng)的cmd窗口編碼是gbk解決方案(臨時解決方案):修改mysql客戶端編碼。show variables like 'character%'查看所有mysql的編碼在圖中與客戶端有關(guān)的編碼設(shè)置:client connetion result和客戶端相關(guān)database server system 和月艮務(wù)器端相關(guān)將客戶端編碼修改為gbk.set character_set_results=gbk; / set na
21、mes gbk;以上操作,只針對當(dāng)前窗口有效果,如果關(guān)閉了服務(wù)器便失效。如果想要永久修改,通過以下方式:在 mysql安裝目錄下有 my.ini 文件default-character-set=gbk客戶端編碼設(shè)置character-set-server=utf8服務(wù)器端編碼設(shè)置注意:修改完成配置文件,重啟服務(wù)第4章SQL查詢語句查詢語句,在開發(fā)中使用的次數(shù)最多,此處使用“ zhangwu ”賬務(wù)表創(chuàng)建賬務(wù)表:CREATE TABLE zhangwu (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR (200),- 賬務(wù)名稱 money DOUB
22、LE,一 金額);插入表記錄:INSERT INTO zhangwu(id,name,money) INSERT INTO zhangwu(id,name,money) INSERT INTO zhangwu(id,name,money) INSERT INTO zhangwu(id,name,money) INSERT INTO zhangwu(id,name,money) INSERT INTO zhangwu(id,name,money) INSERT INTO zhangwu(id,name,money)- 賬務(wù)IDVALUES (1,'吃飯支出,247);VALUES (2,
23、'工資收入',12345);VALUES (3,'服裝支出',1000);VALUES (4,'吃飯支出,325);VALUES (5,'股票"入',8000);VALUES (6,打麻將支出,8000);VALUES (7, null ,5000);4.1查詢的語法:查詢指定字段信息select字段1,字段2,from 表名;例如:select id,name from zhangwu;查詢表中所有字段select * from 表名;例如:select * from zhangwu;注意:使用“*"在練習(xí)、學(xué)習(xí)過程
24、中可以使用,在實(shí)際開發(fā)中,不推薦使用原因,要查詢的字段信息不明確,若字段數(shù)量很多,會導(dǎo)致查詢速度很慢。distinct用于去除重復(fù)記錄select distinct 字段 from 表名;例如:select distinct money from zhangwu;別名查詢,使用的as關(guān)鍵字,as可以省略的.別名可以給表中的字段,表設(shè)置別名。當(dāng)查詢語句復(fù)雜時,使用別名可以極大的簡便操作。表別名格式:select * from 表名 as 別名;或select * from 表名 別名;列別名格式:select 字段名 as別名from 表名;或select 字段名別名from 表名;例如表別名:
25、select * from zhangwu as zw;列別名:select money as m from zhangwu;或select money m from zhangwu;我們在sql語句的操作中,可以直接對列進(jìn)行運(yùn)算。例如:將所有賬務(wù)的金額 +10000元進(jìn)行顯示.select pname,price+10000 from product;4.2條件查詢where語句表?xiàng)l件過濾。滿足條件操作,不滿足不操作,多用于數(shù)據(jù)的查詢與修改。格式:select字段 from表名 where條件;while條件的種類如下:比較運(yùn)算符><<=>=<>大于、小于、大于(小于)等于、不等于BETWEEN .AND.顯示在某一區(qū)間的值(含頭含尾)IN(set)顯示在in列表中的值,例:in(100,200)LIKE通配符模糊查詢,Like語句中用兩個通配
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美術(shù)關(guān)于英雄類的課件
- 安全事故案例講評
- 完整版消防安全檢查記錄表
- 車間安全教育感想300字
- 皮帶司機(jī)安全培訓(xùn)課件
- 安全管理制度與標(biāo)準(zhǔn)
- 運(yùn)輸企業(yè)安全生產(chǎn)責(zé)任狀
- 內(nèi)蒙古煤礦事故調(diào)查
- 2025年面醬項(xiàng)目申請報告
- 《恒大學(xué)習(xí)報》專題培訓(xùn)45
- EPS模塑聚苯板施工方案
- 2024至2030年中國娛樂玩具行業(yè)投資前景及策略咨詢研究報告
- T-TSSP 036-2023 鮮核桃仁團(tuán)體標(biāo)準(zhǔn)
- 馬拉松志愿者培訓(xùn)方案
- 建筑工程崗前實(shí)踐報告1500字
- 掛靠、被掛靠核算表格
- 天津市部分區(qū)2023-2024學(xué)年高一學(xué)期期末生物試卷
- 人教版五年級英語下冊期末試卷及答案
- 二年級下冊期末無紙筆測評方案
- CJJ89-2012 城市道路照明工程施工及驗(yàn)收規(guī)程
- 花店上班勞動合同范本共
評論
0/150
提交評論