免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
數(shù)據(jù)庫總結(jié)

總結(jié)數(shù)據(jù)庫

1.1 為什么要使用數(shù)據(jù)庫?

1.持久化:將內(nèi)存中的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中

   方便管理數(shù)據(jù)

1.2 什么是數(shù)據(jù)庫

DB:數(shù)據(jù)庫保存了一系列有組織的數(shù)據(jù)

DBMS:數(shù)據(jù)管理系統(tǒng)

mysql 是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)

Mysql的邏輯架構(gòu)與存儲(chǔ)引擎

1.連接層

2.服務(wù)層

3.引擎層(最與眾不同)

4.存儲(chǔ)層

MySQL的數(shù)據(jù)類型

  • 整型(xxxint)

  • 位類型(bit)

  • 浮點(diǎn)型(float和double、real)

  • 定點(diǎn)數(shù)(decimal,numeric)

  • 日期時(shí)間類型(date,time,datetime,year)

  • 字符串(char,varchar,xxxtext)

  • 二進(jìn)制數(shù)據(jù)(xxxBlob、xxbinary)

  • 枚舉(enum)

     

特殊的NULL值

Null特征:

(1)所有的類型的值都可以是null,包括int、float等數(shù)據(jù)類型

(2)空字符串"",不等于null,0也不等于null,false也不等于null

(3)任何運(yùn)算符,判斷符碰到NULL,都得NULL

(4)NULL的判斷只能用is null,is not null

(5)NULL 影響查詢速度,一般避免使值為NULL

面試:

為什么建表時(shí),加not null default '' 或 default 0

答:不想讓表中出現(xiàn)null值.

為什么不想要的null的值

答:(1)不好比較,null是一種特殊值,比較時(shí),只能用專門的is null 和 is not null來比較.

碰到運(yùn)算符,一律返回null

(2)效率不高,影響提高索引效果.

因此,我們往往,在建表時(shí) not null default '' 或 default 0

SQL

sql :structure  query  language  結(jié)構(gòu)化查詢語言

sql分類:

DDL:數(shù)據(jù)定義語言, 關(guān)鍵字 create,drop alter

DML: 數(shù)據(jù)操作語言,用于添加,刪除,更新,查詢  insert,delete,update,select

DCL:數(shù)據(jù)控制語句  關(guān)鍵字 grant,revoke

 

約束:constraints

數(shù)據(jù)完整性是指數(shù)據(jù)的精確性 和可靠性

 

    從4個(gè)方面考慮:實(shí)體完整性,域完整性,引用完整性,用戶自定義完整性

 

約束分為 主鍵約束,primary key

外鍵約束,foreign key

唯一鍵約束  unique key

                not nulL 約束 非空約束 d7802f253cc0412391d73964577db44e.doc

check    檢查約束   age int check(age>0)  sex char(2) (sex in('男',“女”))

default  缺省約束     is_actived int default 1

索引index

索引:索引是一個(gè)單獨(dú)的,物理的數(shù)據(jù)庫結(jié)構(gòu),索引是要消耗數(shù)據(jù)庫空間的,而約束是一種邏輯概念

索引好處:加快了查詢的速度

索引壞處:降低了增刪改的速度,增大了表的文件大?。ㄋ饕募踔量赡鼙葦?shù)據(jù)文件大)

mysql提供了多種 索引類型選擇:

1》普通索引

2》唯一性索引

3》主鍵索引

4》全文索引

自增列  auto_increment

   關(guān)于自增長auto_increment:

(1)整數(shù)類型的字段才可以設(shè)置自增長。

(2)當(dāng)需要產(chǎn)生唯一標(biāo)識(shí)符或順序值時(shí),可設(shè)置自增長。

(3)一個(gè)表最多只能有一個(gè)自增長列

(4)自增長列必須非空

(5)自增長列必須是主鍵列或唯一鍵列。

(6)InnoDB表的自動(dòng)增長列可以手動(dòng)插入,但是插入的值如果是空或者0,則實(shí)際插入的將是自動(dòng)增長后的值。

 

DML操作

數(shù)據(jù)操縱語言(DML)DML用于插入、修改、刪除數(shù)據(jù)記錄,包括如下SQL語句:

INSERT:添加數(shù)據(jù)到數(shù)據(jù)庫中

UPDATE:修改數(shù)據(jù)庫中的數(shù)據(jù)

DELETE:刪除數(shù)據(jù)庫中的數(shù)據(jù)

 

去重DISTINCT(distinct)

select distinct dept_id from t_employe;

笛卡爾積

定義:將兩個(gè)(或多個(gè))表的所有行進(jìn)行組合,連接后的行數(shù)為兩個(gè)表的乘積數(shù)

在MySQL中如下情況會(huì)出現(xiàn)笛卡爾積,主要是因?yàn)槿鄙訇P(guān)聯(lián)條件或者關(guān)聯(lián)條件不準(zhǔn)確

關(guān)聯(lián)條件

表鏈接的約束條件有三種方式:where,on,using

where: 適用于所有關(guān)聯(lián)查詢

  • ON:只能和JOIN一起使用,只能寫關(guān)聯(lián)條件。雖然關(guān)聯(lián)條件可以并到WHERE中和其他條件一起寫,但分開寫可讀性更好。

  • USING:只能和JOIN一起使用,而且要求兩個(gè)關(guān)聯(lián)字段在關(guān)聯(lián)表中名稱一致,而且只能表示關(guān)聯(lián)字段值相等

自連接

當(dāng)table1和table2本質(zhì)上是同一張表,只是用取別名的方式虛擬成兩張表以代表不同的意義。然后兩個(gè)表再進(jìn)行內(nèi)連接,外連接等查詢

select的5個(gè)句子

where條件查詢

group by 分組查詢

聚合函數(shù)  avg,count,min,max,sum

having篩選

having與where不同點(diǎn)

where針對(duì)表中的列發(fā)揮作用,查詢數(shù)據(jù),having針對(duì)查詢結(jié)果中的列的發(fā)揮作用

where后面不能寫分組函數(shù),而 having后面可以使用分組函數(shù)

having只用于group by 分組統(tǒng)計(jì)語句

order by 排序

按一個(gè)或多個(gè)字段對(duì)查詢結(jié)果進(jìn)行查詢

#查詢員工基本工資,按照基本工資升序排列,如果工資相同,按照eid升序排列
SELECT t_employee.eid,basic_salary FROM t_employee INNER JOIN t_salary
ON t_employee.eid = t_salary.eid
ORDER BY basic_salary,eid;

#查詢員工基本工資,按照基本工資降序排列,如果工資相同,按照eid排列
SELECT t_employee.eid,basic_salary FROM t_employee INNER JOIN t_salary
ON t_employee.eid = t_salary.eid
ORDER BY basic_salary DESC,eid;

 

 

limit 分頁

limit m,n

m表示從下標(biāo)為m的記錄開始查詢,第一條記錄下標(biāo)為0,n表示取出n條出來,如果從m開始不夠n條了,就有幾條取幾條。m=(page-1)*n,(page頁碼,n表示每頁顯示的條數(shù))

 

如果第一頁limit 0,n

如果第二頁limit n,n

依次類推,得出公式limit  (page-1)*n , n

#分頁
#查詢員工信息,每頁顯示5條,第二頁
SELECT * FROM t_employee LIMIT 5,5;

#統(tǒng)計(jì)每個(gè)部門的平均基本工資,并顯示前三名
SELECT emp.dept_id,AVG(s.basic_salary)
FROM t_employee AS emp,t_salary AS s
WHERE emp.eid = s.eid
GROUP BY emp.dept_id
ORDER BY AVG(s.basic_salary) DESC
LIMIT 0,3;

 

where型子查詢

where型子查詢即把內(nèi)層sql語句查詢的結(jié)果作為外層sql查詢的條件.

in 等于任何一個(gè)

all 和子查詢的所有值比較sal>ALL(1,2,3)等價(jià)于sal>1 && sal>2 && sal>3

any 和子查詢返回的任意一個(gè)值比較。例如:sal>ANY(1,2,3)等價(jià)于sal>1 or sal>2 or sal>3

from型子查詢

from型子查詢即把內(nèi)層sql語句查詢的結(jié)果作為臨時(shí)表供外層sql語句再次查詢.

`exit型子查詢`

#查詢部門信息,該部門必須有員工

select * from t_department where exists (select * from t_employee where t_employee.dept_id=t.department.did)

六、事務(wù)

grant:授予訪問權(quán)限

revoke:撤銷訪問權(quán)限

commit:提交事務(wù)處理

rollback:事務(wù)處理回退

savepoint:設(shè)置保存點(diǎn)

lock:對(duì)數(shù)據(jù)庫的特定部分進(jìn)行鎖定

事務(wù)的ACID特性:

  • 原子性(Atomicity):原子意為最小的粒子,或者說不能再分的事物。數(shù)據(jù)庫事務(wù)的不可再分的原則即為原子性。 組成事務(wù)的所有SQL必須:要么全部執(zhí)行,要么全部取消(就像上面的銀行例子)。

  • 一致性(Consistency):指數(shù)據(jù)的規(guī)則,在事務(wù)前/后應(yīng)保持一致

  • 隔離性(Isolation):簡(jiǎn)單點(diǎn)說,某個(gè)事務(wù)的操作對(duì)其他事務(wù)不可見的.

  • 持久性(Durability):當(dāng)事務(wù)提交完成后,其影響應(yīng)該保留下來,不能撤消

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
項(xiàng)目?jī)?yōu)化方案
Oracle 常用SQL技巧收藏
ORALCE常識(shí)及SQL基本語法
做 SQL 性能優(yōu)化真是讓人干瞪眼
Oracle索引(Index)創(chuàng)建使用
MySQL從入門到入魔(03)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服