最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

MYSQL數(shù)據(jù)庫基礎復習大綱

2022-07-12 22:55 作者:啥也不會QAQ-帶冰  | 我要投稿

數(shù)據(jù)庫技術(shù)的發(fā)展歷史:

一)人工管理階段,特點:

1、數(shù)據(jù)不保存;

2、使用應用程序來管理數(shù)據(jù)--沒有專用的軟件對數(shù)據(jù)進行管理;

3、數(shù)據(jù)不共享;

4、數(shù)據(jù)不具有獨立性

二)文件系統(tǒng)階段,特點:

1、數(shù)據(jù)可以長期保存;

2、由文件系統(tǒng)管理數(shù)據(jù);

3、共享性差,數(shù)據(jù)冗余大;

4、數(shù)據(jù)獨立性差

三)數(shù)據(jù)庫系統(tǒng)階段,特點:

1、數(shù)據(jù)持久化保存;

2、數(shù)據(jù)結(jié)構(gòu)化;

3、數(shù)據(jù)之間具有聯(lián)系;

4、數(shù)據(jù)獨立性高;

5、數(shù)據(jù)共享性高,冗余度低,易擴展

數(shù)據(jù)庫分類:關系型數(shù)據(jù)庫,非關系型數(shù)據(jù)庫。

數(shù)據(jù)庫系統(tǒng)的組成:數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應用程序等組成。

DQL:數(shù)據(jù)查詢語言,用于對數(shù)據(jù)進行查詢 如:select

DML:數(shù)據(jù)操作語言,對數(shù)據(jù)進行增、刪、改,如insert、update、delete

DDL:數(shù)據(jù)定義語言,進行數(shù)據(jù)庫、表的管理等,如create、drop

DCL:數(shù)據(jù)控制語言,進行授權(quán)與權(quán)限回收,如grant(授權(quán))、revoke(撤銷)

TPL:事務處理語言,對事務進行處理,包括begin transaction(開始事務)、commit(提交)、rollback(回滾)

ER圖關系:一對一,一對多,多對多

MySQL服務的啟動與停止:

啟動與停止MySQL服務方式一:服務管理器

啟動與停止MySQL服務方式二:DOS命令:

1)啟動MySQL服務的具體命令為:net start mysql

2)停止MySQL服務的具體命令為:net stop mysql

登錄MySQL數(shù)據(jù)庫

方式一:使用相關命令登陸

登錄MySQL數(shù)據(jù)庫可以通過DOS命令完成:

mysql –h hostname –u username –p

在上述命令中,mysql為登錄命令,-h后面的參數(shù)是服務器的主機地址,-u后面的參數(shù)是登錄數(shù)據(jù)庫的用戶名,-p后面是登錄密碼

方式二:Command Line Client登錄

在開始菜單中依次選擇【程序】【MySQL】【MySQL Server 5.5】【MySQL 5.5 Command Line Client】打開MySQL命令行客戶端窗口,此時就會提示輸入密碼,密碼輸入正確后便可以登錄到MySQL數(shù)據(jù)庫

MySQL常用命令

查看所有的數(shù)據(jù)庫:SHOW DATABASES;

創(chuàng)建數(shù)據(jù)庫:CREATE DATABASE 數(shù)據(jù)庫名 CHARSET=utf8;

選擇操作數(shù)據(jù)庫:USE 數(shù)據(jù)庫名;

查看當前操作的數(shù)據(jù)庫:SELECT DATABASE();

刪除數(shù)據(jù)庫:DROP DATABASE 數(shù)據(jù)庫名稱;

常用數(shù)據(jù)類型:

整數(shù):INT,BIT,BIGINT

小數(shù):decimal,double,float

字符串:varchar,char,TEXT,LONGTEXT

日期時間: date, time, datetime

創(chuàng)建數(shù)據(jù)表:

CREATE TABLE 數(shù)據(jù)表名(

字段名1 數(shù)據(jù)類型 [列級約束條件] [默認值],

字段名2 數(shù)據(jù)類型 [列級約束條件] [默認值],

……

);

建表注意事項:

(1)必須指定數(shù)據(jù)表名(不區(qū)分大小寫),且不能使用SQL中的關鍵字,如: CREATE、INSERT、DROP。

(2)如果數(shù)據(jù)表中有多個字段,每個字段的定義語句必須要用逗號隔開。

查看所選數(shù)據(jù)庫中的數(shù)據(jù)表:SHOW TABLES;

查看數(shù)據(jù)表結(jié)構(gòu):

方式一:DESCRIBE/DESC 表名;

方式二:SHOW CREATE TABLE 表名;

方式三:show [full] columns from 數(shù)據(jù)表;

修改數(shù)據(jù)表結(jié)構(gòu):

修改數(shù)據(jù)表名

ALTER ?TABLE ?原表名 ?RENAME ?[TO] ?新表名;

修改字段名

ALTER ?TABLE ?表名 ?CHANGE ?舊字段名 ?新字段名 新數(shù)據(jù)類型;

添加字段

表末尾字段

ALTER TABLE 表名 ADD 新字段名 數(shù)據(jù)類型 [約束條件];

設為表的第一字段

#FIRST:用于將新添加的字段設置為表中的第一個字段

語法:ALTER TABLE 表名 ADD 新字段名 數(shù)據(jù)類型 [約束條件] FIRST;

指定位置添加字段

#AFTER:用于將新添加的字段添加到“已存在的字段名”的后面。

語法:ALTER TABLE 表名 ADD 新字段名 數(shù)據(jù)類型 [約束條件] AFTER 已存在的字段名;

修改字段的數(shù)據(jù)類型

單純修改數(shù)據(jù)類型

ALTER TABLE 表名 MODIFY 字段名 新數(shù)據(jù)類型;

修改數(shù)據(jù)類型并排列在第一個

ALTER TABLE 表名 MODIFY 要修改位置字段名 數(shù)據(jù)類型 FIRST;

將要修改位置的字段插入到指定字段的后面

ALTER TABLE 表名 MODIFY 要修改位置字段名 數(shù)據(jù)類型 AFTER 指定字段名;

刪除字段:

ALTER TABLE 表名 DROP 要刪除的字段名;

刪除數(shù)據(jù)表: DROP TABLE 表名;

主鍵約束-單字段主鍵

單字段主鍵僅由一列字段組成,創(chuàng)建單字段主鍵的SQL語句格式分為以下兩種情況。

方式一:定義字段的同時指定主鍵

字段名 ?數(shù)據(jù)類型 ?PRIMARY KEY,

方式二:定義完所有字段列之后指定主鍵

PRIMARY KEY (設置主鍵的字段名);

主鍵約束-多字段聯(lián)合主鍵

多字段聯(lián)合主鍵由表中的多個字段組成,指定聯(lián)合主鍵語法格式如下:

PRIMARY KEY(字段名1, 字段名n, ……),

唯一約束 - UNIQUE

唯一約束可以確保表中一列或多列不出現(xiàn)重復值,唯一約束的值允許為空,但是只能出現(xiàn)一個空值。唯一約束的語法和主鍵的語法規(guī)則一樣有兩種。

方式一:定義字段的同時指定唯一約束

字段名 ?數(shù)據(jù)類型 ?UNIQUE;

方式二:定義完所有字段列之后指定唯一約束

UNIQUE(設置唯一約束的字段名);

非空約束 – NOT NULL

非空約束指的是字段的值不能為空,對于使用了非空約束的字段,如果用戶添加數(shù)據(jù)時沒有指定值,數(shù)據(jù)庫系統(tǒng)會報錯。

語法:字段名 ?數(shù)據(jù)類型 ?NOT NULL;

默認約束 - DEFAULT

默認約束用于指定某一字段的默認值

語法:字段名 ?數(shù)據(jù)類型 ?DEFAULT 默認值;

自增約束 - AUTO_INCREMENT

在數(shù)據(jù)表中,若想為表中插入的新記錄自動生成唯一的ID,可以使用AUTO_INCREMENT約束來實現(xiàn)。默認AUTO_INCREMENT的初始值是1,每新增一條記錄,字段值自動加1。

注意:一個表只能有一個字段使用AUTO_INREMENT約束,且該字段必須為主鍵。

語法:字段名 ?數(shù)據(jù)類型 ?主鍵約束 ?自增約束;

外鍵約束 – FOREIGN KEY

外鍵用來在兩個表的數(shù)據(jù)之間建立鏈接,外鍵可以引用另一個表中的一列或多列,被引用的列應該具有主鍵約束或唯一性約束。

注意事項:

1、添加外鍵要保證兩個表必須為innoDB存儲引擎。

2、對于兩個具有關聯(lián)關系的表,關聯(lián)字段的數(shù)據(jù)類型必須匹配。

3、一個表的外鍵的值可以為空值,若不為空值,使用外鍵約束字段的值就必須等于另一個表中主鍵的值。

方式一:新建數(shù)據(jù)表的同時添加外鍵約束

[CONSTRAINT 外鍵名 ]? FOREIGN? KEY(外鍵字段名)? REFERENCES? 主表名(主鍵字段名);

方式二:為已創(chuàng)建好的數(shù)據(jù)表添加外鍵約束

ALTER TABLE? 表名? ADD CONSTRAINT ?外鍵名? FOREIGN? KEY(外鍵字段名) REFERENCES? 主表名(主鍵字段名);

刪除外鍵約束:

ALTER TABLE? 表名? DROP? FOREIGN? KEY? 外鍵名;

添加數(shù)據(jù):

為所有字段添加數(shù)據(jù)方式一

INSERT INTO 數(shù)據(jù)表名 (字段1, 字段2, .....) VALUES(值1, 值2, ......);

為所有字段添加數(shù)據(jù)方式二

語法格式:INSERT INTO 數(shù)據(jù)表名 VALUES(值1,值2,....);

給數(shù)據(jù)表指定字段添加數(shù)據(jù):

INSERT INTO 數(shù)據(jù)表名(指定要添加數(shù)據(jù)的字段名) VALUES (為指定字段添加的值)

同時添加多條數(shù)據(jù):

INSERT INTO 表名 VALUES( 值1, 值2, …… ),(值1,值2, ……);

INSERT INTO 表名(指定的字段) VALUES( 值1, 值2, …… ),(值1,值2, ……);

添加數(shù)據(jù)注意事項:

1、插入的數(shù)據(jù)類型與字段的數(shù)據(jù)類型相同。

2、數(shù)據(jù)的大小應該列的規(guī)定范圍內(nèi)。

3、在values中列出的數(shù)據(jù)位置必須與被加入的列的排列位置相對應。

4、字符類型和日期類型數(shù)據(jù)應該包含在單引號中。

5、插入空值:不指定或insert into table value(null)

6、如果要插入所有字段可以省寫列名,直接按表中字段的順序?qū)憣闹怠?/p>

修改數(shù)據(jù)表數(shù)據(jù):

更新數(shù)據(jù)是指對表中存在的記錄進行修改

UPDATE ?表名 ?SET 字段名1 ?= 值1, ?字段名2 ?= 值2, ….. ?[WHERE 條件表達式];

參數(shù)說明如下:

SET子句:必選項,用于指定表中要修改的字段名及其字段值。其中的值可以是表達式,也可以是該字段所對應的默認值。如果指定默認值則使用關鍵字DEFAULT指定。

WHERE子句:可選項,指定更新數(shù)據(jù)需要滿足的條件,如果不指定該子句,那么UPDATE語句會更新表中的所有行。

刪除數(shù)據(jù)表數(shù)據(jù)

刪除數(shù)據(jù)是指對表中存在的記錄進行刪除

DELETE FROM ?表名 [WHERE 條件表達式] ;

在DELETE語句中如果沒有使用WHERE子句來指定刪除的條件,則會將表中的所有記錄都刪除。

TRUNCATE TABLE ?表名 ;

DELETE與TRUNCATE的區(qū)別

(1)DELETE語句是DML語句,TRUNCATE語句通常被認為是DDL語句

(2)使用DELETE語句時,每刪除一條記錄都會在日志中記錄,而使用TRUNCATE語句時,不會在日志中記錄刪除的內(nèi)容,因此TRUNCATE語句的執(zhí)行效率比DELETE語句高。

(3)DELETE語句后面可以跟WHERE子句,通過指定WHERE子句中的條件表達式只刪除滿足條件的部分記錄,而TRUNCATE語句只能用于刪除表中的所有記錄

(4)使用TRUNCATE語句刪除表中的數(shù)據(jù),再向表中添加記錄時,自動增加字段的默認初始值重新由1開始,使用DELETE語句刪除表中所有記錄,再向表中添加記錄時,自動增加字段的值為刪除時該字段的最大值加1。

完整語法格式

SELECT [DISTINCT] * | <字段名1, 字段名2, 字段名3,……>

FROM 表名

[WHERE 條件表達式1]

[GROUP BY 字段名 [HAVING 條件表達式2]]

[ORDER BY 字段名 [ASC|DESC]]

[LIMIT [OFFSET] 記錄數(shù)]

“字段1,字段2…”表示從表中查詢的指定字段,星號(“*”)通配符表示表中所有字段,兩者為互斥關系,任選其一?!癉ISTINCT”是可選參數(shù),用于剔除查詢結(jié)果中重復的數(shù)據(jù)

表示從指定的表中查詢數(shù)據(jù)

“WHERE”是可選參數(shù),用于指定查詢條件

“GROUP BY”是可選參數(shù),用于將查詢結(jié)果按照指定字段進行分組,“HAVING”也是可選參數(shù),用于對分組后的結(jié)果進行過濾。

“ORDER BY”是可選參數(shù),用于將查詢結(jié)果按照指定字段進行排序。排序方式由參數(shù)ASC或DESC控制,其中ASC表示按升序進行排列,DESC表示按降序進行排列。如果不指定參數(shù),默認為升序排列。

“LIMIT”是可選參數(shù),用于限制查詢結(jié)果的數(shù)量。LIMIT后面可以跟2個參數(shù),第一個參數(shù)“OFFSET”表示偏移量,如果偏移量為0則從查詢結(jié)果的第一條記錄開始…以此類推。如果不指定OFFSET,其默認值為0。第二個參數(shù)“記錄數(shù)”表示返回查詢記錄的條數(shù)。

簡單數(shù)據(jù)記錄查詢

語法結(jié)構(gòu):SELECT * | 字段列表 FROM 數(shù)據(jù)表名;

數(shù)據(jù)查詢?nèi)ブ?/strong>

語法:SELECT DISTINCT 字段列表 FROM 數(shù)據(jù)表名;

關系運算條件查詢

語法:SELECT * | 字段列表 FROM 數(shù)據(jù)表名 WHERE 字段名 [> | < | = | !=] 指定參數(shù);

大于:<

小于: >

不等于: != <>

大于等于: >=

小于等于: <=

邏輯運算條件查詢

語法:SELECT * | 字段列表 FROM 數(shù)據(jù)表名 WHERE 條件1 [AND | OR | NOT] 條件2;

AND( && ):邏輯與(所有條件同時為真,結(jié)果才為真)

OR( || ):邏輯或(所有條件同時為假,結(jié)果才為假)

NOT( ! ):邏輯非(對結(jié)果取反,真即為假,假即為真)

范圍條件查詢

SELECT * | 字段列表 FROM 數(shù)據(jù)表名 WHERE 字段名 [NOT] IN (值1,值2,…..);

SELECT * | 字段列表 FROM 數(shù)據(jù)表名 WHERE 字段名 [NOT] BETWEEN 值1 AND 值2;

空值條件查詢

語法:SELECT * | 字段列表 FROM 數(shù)據(jù)表名 WHERE 字段名 IS [NOT] NULL;

模糊條件查詢

語法:SELECT * | 字段列表 FROM 數(shù)據(jù)表名 WHERE 字段名 [NOT] LIKE ‘匹配字符串’;

百分號(%)通配符:可以匹配任意長度的字符串,包括空字符串

下劃線(_)通配符:下劃線通配符只匹配單個字符, 如果要匹配多個字符,需要使用多個_符。

高級查詢

聚合函數(shù)-常用聚合函數(shù)

查詢統(tǒng)計數(shù)量

語法:select count(*) from 數(shù)據(jù)表 [where 條件表達式];

查詢統(tǒng)計求和

語法:select sum(需要求和的字段) from 數(shù)據(jù)表 [where 條件表達式];

查詢統(tǒng)計平均

語法:select avg(需要求平均值的字段) from 數(shù)據(jù)表 [where 條件表達式];

查詢求最大值

語法:select MAX(求最大值的字段) from 數(shù)據(jù)表 [where 條件表達式];

查詢求最小

語法:select MIN(求最小值的字段) from 數(shù)據(jù)表 [where 條件表達式];

排序

語法:SELECT * FROM 數(shù)據(jù)表名 [WHERE 條件表達式]

ORDER BY 字段1 [ASC | DESC] [, 字段2 [ASC | DESC] , …] ;

注意事項:

排序字段之間必須用逗號隔開。

排序規(guī)則按照從左至右依次排序,當?shù)谝粋€字段值相同是,再按照第二個字段的值排序,以此類推。

每個字段都可以指定按照升序或降序排序。

分頁查詢LIMIT

語法:SELECT * FROM 表名 LIMIT [位置偏移量,] 記錄數(shù) -- 偏移量從0開始,代表的是從第一條數(shù)據(jù)開始

分組查詢

語法:SELECT 字段名 FROM 表名 [where 條件表達式] GROUP BY 字段名 [HAVING 條件表達式];

連接查詢是指同時對多個表進行查詢,當查詢的字段數(shù)據(jù)來自不同的表就可以使用連接查詢來完成。

分類:

1.內(nèi)連接查詢

2.外連接查詢(左外連接查詢,右外連接查詢)

3.復合條件連接查詢

內(nèi)連接(INNER JOIN)又稱簡單連接或自然連接,使用比較運算符對兩個表中的數(shù)據(jù)進行比較,查詢兩個表中符合條件的共有記錄。

SELECT 查詢字段 FROM 表1 INNER JOIN 表2 ON 表1. 字段1 = 表2. 字段2;

外連接查詢

在內(nèi)連接查詢中返回的查詢結(jié)果只有符合查詢條件和連接條件的數(shù)據(jù),然而,有些時候我們可能需要返回某個表中的所有記錄,此時就需要用到外連接查詢。

左連接-LEFT JOIN

左連接的結(jié)果包括左表的所有記錄,和所有滿足連接條件的記錄。如果左表的某條記錄在右表中不存在,則在右表中顯示為空。

以左表為主根據(jù)條件查詢右表數(shù)據(jù),如果根據(jù)條件查詢右表數(shù)據(jù)不存在使用null值填充。

語法:SELECT 查詢字段 FROM 表1 LEFT ?JOIN 表2 ON 表1. 字段1 = 表2. 字段2;

說明:left join 就是左連接查詢關鍵字;on 就是連接查詢條件;表1 是左表;表 2 是右表。

右鏈接-RIGHT JOIN

右連接與左連接正好相反,返回右表中所有指定的記錄和所有滿足連接條件的記錄。如果右表的某條記錄在左表中沒有匹配,則左表將返回空值。

以右表為主根據(jù)條件查詢左表數(shù)據(jù),如果根據(jù)條件查詢左表數(shù)據(jù)不存在使用null值填充。

語法:SELECT 查詢字段 FROM 表1 RIGHT ?JOIN 表2 ON 表1. 字段1 = 表2. 字段2;

說明:right join 就是左連接查詢關鍵字;on 就是連接查詢條件;表1 是左表;表2 是右表。

子查詢

子查詢是指一個select查詢語句中,嵌套了另一個select語句,那么內(nèi)部的select語句稱之為子查詢語句,外部的select語句則稱為主查詢。通常情況下子查詢是輔助主查詢的,要么充當條件,要么充當數(shù)據(jù)源;

注意事項:

1.子查詢需要嵌入到主查詢中;

2.子查詢是可以獨立存在的語句,是一條完整的 select 語句;

3.在執(zhí)行查詢語句時,首先會執(zhí)行子查詢中的語句,然后將返回的結(jié)果作為外層查詢的過濾條件;

聯(lián)合查詢 union

select 查詢字段 from ……

union

select 查詢字段 from ……

union all -- 查詢保留所有的結(jié)果

union DISTINCT -- 查詢結(jié)果去重

union -- 查詢結(jié)果去重

事務:事務就是用戶定義針對數(shù)據(jù)庫一系列操作的SQL語句,它可以由一條或多條SQL語句組成,同一個事務的操作具備同步的特點,即事務中的語句要么都執(zhí)行,要么都不執(zhí)行,它是一個不可分割的工作執(zhí)行單元。

事務的四大特性:

1、持久性

2、原子性

3、一致性

4、隔離性

開啟事務: START TRANSACTION; 或 BEGIN;

執(zhí)行SQL語句:SQL語句

結(jié)束: 提交事務 COMMIT; 或 取消事務(回滾) ROLLBACK;

存儲過程

語法:

CREATE PROCEDURE 存儲過程名稱([參數(shù)列表])

BEGIN

存儲過程體(一組合法的SQL語句);

END;

參數(shù)列表:包含三部分

參數(shù)模式 、參數(shù)名、 參數(shù)類型

舉例:IN stuname VARCHAR(20)

參數(shù)模式:IN:該參數(shù)可以作為輸入,也就是該參數(shù)需要調(diào)用方傳入值。

視圖是從基本表中導出來的表,可以像操作基本表一樣操作視圖。

視圖的優(yōu)點:簡化查詢語句;安全性;邏輯數(shù)據(jù)獨立性

創(chuàng)建視圖簡單語法:

CREATE VIEW 視圖名稱:

AS

SELECT 字段名…… FROM 數(shù)據(jù)表 [WHERE 條件表達式];

查看表/視圖結(jié)構(gòu)

1、查看數(shù)據(jù)表字段信息

語法:DESC 表名/視圖名;

2、查看表/視圖的基本信息

語法:SHOW TABLE STATUS LIKE '視圖名'

3、查看創(chuàng)建語句

語法:SHOW CREATE VIEW 表名/視圖名;

4、查看結(jié)構(gòu)

語法:show full columns from 表名/視圖名

修改視圖簡單語法:

1、使用CREATE OR REPLACE VIEW語句修改視圖

CREATE OR REPLACE VIEW 視圖名稱

AS

SELECT 字段名…… FROM 數(shù)據(jù)表 [WHERE 條件表達式];

2、使用ALTER語句修改視圖

ALTER VIEW 視圖名稱

AS

SELECT 字段名…… FROM 數(shù)據(jù)表 [WHERE 條件表達式];

刪除視圖

語法:DROP VIEW 視圖名;

視圖插入數(shù)據(jù),跟插入單表數(shù)據(jù)一樣

語法:insert into 視圖名(字段名) values(字段值);

視圖修改數(shù)據(jù)

語法:update 視圖名 set 字段名1 = 值1,字段名2 = 值2 [where 條件表達式];

視圖刪除數(shù)據(jù)

delete from 視圖名 [where 條件表達式];


MYSQL數(shù)據(jù)庫基礎復習大綱的評論 (共 條)

分享到微博請遵守國家法律
泾阳县| 青州市| 从化市| 隆德县| 榕江县| 平凉市| 贡觉县| 崇明县| 麻阳| 土默特左旗| 斗六市| 儋州市| 永昌县| 汕头市| 深水埗区| 永善县| 吕梁市| 武陟县| 闽清县| 江都市| 伊川县| 北海市| 电白县| 彭山县| 镇原县| 固原市| 磐安县| 芮城县| 沈丘县| 修武县| 保山市| 余干县| 湖南省| 五大连池市| 南华县| 荔波县| 勐海县| 白城市| 金乡县| 上蔡县| 图们市|