国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

快速學(xué)完數(shù)據(jù)庫管理(期末復(fù)習(xí))

不知名網(wǎng)友 / 2067人閱讀

摘要:一文帶你快速學(xué)完數(shù)據(jù)庫期末復(fù)習(xí)一數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫的特點(diǎn)數(shù)據(jù)庫的模式結(jié)構(gòu)數(shù)據(jù)庫建立的流程圖關(guān)系數(shù)據(jù)庫的一些術(shù)語關(guān)系數(shù)據(jù)庫的數(shù)據(jù)完整性二數(shù)據(jù)庫設(shè)計思路以及規(guī)范圖數(shù)據(jù)庫設(shè)計三范式三數(shù)據(jù)庫語句的基礎(chǔ)關(guān)系代數(shù)基

本來想寫文章來復(fù)習(xí)的,后面發(fā)現(xiàn)越寫越多,而且感覺本末倒置了,查詢語句寫的最少,其他倒是寫的很詳細(xì),數(shù)據(jù)庫知識真的太細(xì)太碎了,整理起來難度真的挺大的,如果是數(shù)據(jù)庫小白,這篇文章肯定很有用,它沒有過多的實(shí)戰(zhàn),帶你了解數(shù)據(jù)庫的基本框架和能夠完成的任務(wù),如果是數(shù)據(jù)庫學(xué)過的話,那這篇文章可能對你而言只有前面數(shù)據(jù)庫概述和設(shè)計數(shù)據(jù)庫有用,數(shù)據(jù)庫sql語句這部分非常的精簡,幾乎只是了解個框架,歡迎評論區(qū)大佬們的指正,第一次寫長文

一、數(shù)據(jù)庫系統(tǒng)概述

1.數(shù)據(jù)庫系統(tǒng)的組成

DB -> DBMS -> DBS -> user

  • 即由數(shù)據(jù)庫(database)出發(fā)

  • 利用數(shù)據(jù)庫管理系統(tǒng)(database manage system)創(chuàng)建數(shù)據(jù)庫中的表(database schema)

  • 最后由user進(jìn)行查詢等等相關(guān)操作

2.數(shù)據(jù)庫的特點(diǎn)

  • 有結(jié)構(gòu)的

    數(shù)據(jù)庫按照關(guān)系模型來儲存數(shù)據(jù)和聯(lián)系數(shù)據(jù)

    一般采用二維表的形式進(jìn)行實(shí)現(xiàn)

  • 集成的

    集成一系列數(shù)據(jù)

    并按照一定的原則進(jìn)行分類

    盡量減少數(shù)據(jù)之間的冗余性

  • 可共享的

    可以同時被多個用戶操作

    并可以指定權(quán)限等等

  • 統(tǒng)一管理的

    一般是由DBMS完成數(shù)據(jù)庫的全部操作

學(xué)習(xí)數(shù)據(jù)庫主要研究然后高效的儲存、使用和管理數(shù)據(jù),不僅僅局限與只是查詢數(shù)據(jù)以及存儲數(shù)據(jù)的載體

這是一門頗具藝術(shù)的課程

3.數(shù)據(jù)庫的模式結(jié)構(gòu)

  • 外模式

    一般指將數(shù)據(jù)以一定的形式呈現(xiàn)給用戶

    形式不是唯一的

    例如在各個瀏覽器查詢的界面與各個軟件等等查詢的界面,都是外模式的一種體現(xiàn)

  • 概念模式

    即表中信息的描述,例如user(name,age)

  • 內(nèi)模式

    存儲結(jié)構(gòu)、存儲方法、存取策略等的描述,即設(shè)計表時的一些可選項(xiàng)

二級映射:

  • 外模式到概念模式:邏輯獨(dú)立性

    指概念模式改變時DBMS通過改變映射使得外模式不變

    例子:比如user表多了一個身高的字段即變成user(name,age,height),展示數(shù)據(jù)的應(yīng)用程序界面不需要進(jìn)行修改

  • 內(nèi)模式到概念模式:物理獨(dú)立性

    指內(nèi)模式改變時DBMS通過改變映射使得概念模式不變

    例子:比如user表的一個height字段中數(shù)據(jù)類型想要從int到double,通過DBMS,概念模式無需改變

  • 數(shù)據(jù)獨(dú)立性由邏輯獨(dú)立性和物理獨(dú)立性組成

    即最終呈現(xiàn)給用戶的數(shù)據(jù)庫界面不受內(nèi)模式以及概念模式的改變而改變

4.數(shù)據(jù)庫建立的流程圖

  • 現(xiàn)實(shí)世界
  • 概念世界
  • E-R圖
  • 數(shù)據(jù)世界

5.關(guān)系數(shù)據(jù)庫的一些術(shù)語

  • 關(guān)系(relation)

    就是一張表,用R表示關(guān)系的名稱

  • 元組

    也稱記錄,行,對應(yīng)于數(shù)據(jù)庫數(shù)據(jù)中的條記錄即數(shù)據(jù)

  • 屬性

    關(guān)系表中一列即代表一個屬性,屬性只能有一個屬性名,而關(guān)系可以有多個屬性

    一般在表中稱為字段

  • 域(domain)

    即數(shù)據(jù)類型的取值范圍,這里是指一般的取值,也可以是集合形式的取值范圍

  • 候選鍵、主鍵和外鍵

    候選鍵即可以唯一確定一條記錄的字段,可能有多個

    主鍵就是在候選鍵中選取的一個

    外鍵即在其他表中為主鍵的字段

    極端情況下,候選鍵只有一個屬性或者全部屬性才能構(gòu)成一個候選鍵

6.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)完整性

  • 實(shí)體完整性

    即主鍵值唯一且不能為空值

  • 參照完整性

    一個表的外鍵值要么為空要么就是其他表中的某一個主鍵值

    主要是為了確保數(shù)據(jù)的一致性

  • 用戶自定義完整性

    即用戶自定義的規(guī)則,數(shù)據(jù)符合規(guī)則才是合法的,才可以插入表中

二、數(shù)據(jù)庫設(shè)計思路以及規(guī)范

1.E-R圖

  1. 基本概念

    • 矩形代表實(shí)體
    • 菱形代表聯(lián)系
    • 橢圓形代表屬性
    • 無向邊,用于連接實(shí)體和屬性
  2. 聯(lián)系(兩個實(shí)體間)

    聯(lián)系也可以有屬性

    • 一對一的聯(lián)系

      在兩個實(shí)體之間任意一個加入另外一個實(shí)體的主鍵即可產(chǎn)生聯(lián)系

    • 一對多的聯(lián)系

      在多端實(shí)體加入一端實(shí)體的主鍵即可產(chǎn)生聯(lián)系

    • 多對多的聯(lián)系

      需要另外創(chuàng)建一張表進(jìn)行產(chǎn)生聯(lián)系

      按照需要建立一個兩個字段的表即可

  3. 一個表的表示方式

    主鍵一遍采用下劃線表示,表名一般就是實(shí)體的名字

    • 主鍵由單個字段構(gòu)成

      表名(字段1,字段2,字段3,字段4,字段5)

    • 主鍵由多個字段構(gòu)成

      表名(字段1,字段2,字段3,字段4,字段5)

2.數(shù)據(jù)庫設(shè)計三范式

  1. 背景

    不合理的數(shù)據(jù)庫設(shè)計中存在以下問題

    • 數(shù)據(jù)冗余

      盡量少出現(xiàn)重復(fù)的數(shù)據(jù),例如一個表中有好幾個相同學(xué)生的學(xué)號姓名,只是選的課程不一樣,這樣很多記錄中的學(xué)號和姓名明顯是冗余的。

    • 更新異常

      由于同一字段存在在同一個表中的不同的記錄中,導(dǎo)致修改該字段,需要修改好多條記錄,容易造成數(shù)據(jù)的不一致性

    • 插入異常

      插入一條新數(shù)據(jù)時依賴其他現(xiàn)有的數(shù)據(jù),導(dǎo)致插入不能很好的進(jìn)行

    • 刪除異常

      刪除數(shù)據(jù)時,不可避免地刪除掉某些我們需要地信息

    所以一個好的數(shù)據(jù)庫應(yīng)該盡量避免以上問題

  2. 范式理論

    • 預(yù)備知識,函數(shù)依賴

      1. 概念

        即對于某一個關(guān)系模型R,其屬性集合為U,X,Y為U的子集,即每個X對應(yīng)一個唯一的Y,即對于兩條記錄,若X對應(yīng)的屬性值相同,Y對應(yīng)的屬性值也相同,稱X函數(shù)確定Y,Y函數(shù)依賴于X(其實(shí)這部分就是我們中學(xué)所學(xué)的函數(shù),只是應(yīng)用到數(shù)據(jù)庫中講的比較抽象而已,理解上就是按照函數(shù)來理解)

      2. 特例

        • 平凡函數(shù)依賴

          即Y包含在X集合中,這個形成函數(shù)依賴是顯然的(在數(shù)學(xué)術(shù)語中經(jīng)常出現(xiàn)平凡這個字眼,其實(shí)就是某些特例,比較簡單,沒什么好研究的意思,比如線性方程組中的平凡解(即零向量)等等)

        • 非平凡函數(shù)依賴

          即Y不包含在X集合中

      3. 完全函數(shù)依賴、部分函數(shù)依賴和傳遞函數(shù)依賴

        • 完全函數(shù)依賴

          Y必需由X中的全部屬性才能決定

        • 部分函數(shù)依賴

          Y可以只由X中部分屬性確定

        • 傳遞函數(shù)依賴

          即指X與Y之間存在其他的中間聯(lián)系屬性集合,例如,Z函數(shù)依賴于X,Y函數(shù)依賴于Z

          ## 即存在某些中間關(guān)系X-->ZZ-->Y
      4. 候選碼

        即表中可以唯一確定一條數(shù)據(jù)的屬性或者屬性集合,候選碼可能有多個,可以選擇其中一個作為主鍵

    • 范式

      滿足一定約束條件的關(guān)系模式,即數(shù)據(jù)庫表的設(shè)計滿足一定的規(guī)范,關(guān)系模式的規(guī)范化即將低一級的關(guān)系模式分解成高一級的關(guān)系模式,表現(xiàn)為將表進(jìn)行分解。

      1. 第一范式(1NF)

        所有屬性都是不可再分的數(shù)據(jù)項(xiàng),即屬性不能再分,一般來講數(shù)據(jù)庫表中的默認(rèn)滿足1NF,不過也有一些反例,比如對于身份這個屬性,出現(xiàn)男老師這個屬性值,就說明表不滿足1NF,男老師可以進(jìn)行再分,即分為性別加身份

      2. 第二范式(2NF)

        在滿足1NF的前提下,非主屬性完全函數(shù)依賴于候選碼,主屬性即為候選碼中的屬性,故2NF即所有非主屬性只能被候選碼完全確定,不會出現(xiàn)候選碼中的部分屬性確定其他非主屬性的情況

      3. 第三范式(3NF)

        在滿足2NF的前提下,任一非主屬性都不傳遞依賴于任何候選碼

三、數(shù)據(jù)庫SQL語句的基礎(chǔ)——關(guān)系代數(shù)

這部分內(nèi)容比較的抽象,不過作為sql語句的先導(dǎo)學(xué)習(xí)還是有幫助的

1.基本概念

  • 同種數(shù)據(jù)類型值的集合,就像高中學(xué)過的函數(shù)中的定義域一樣

  • 笛卡兒積

    所有域的所有取值集合,不重復(fù),其中集合中的每個元素稱為元組,例:D1中有3個元素,D2中有4個元素,則構(gòu)成的笛卡兒積中的元素就有3*4=12種

  • 關(guān)系

    笛卡兒積的有限子集稱為在域上的一個關(guān)系,即將元素綁定在一起,關(guān)系中的元素滿足一定的條件

    行一般就指記錄或者元組,列指屬性

    列中的元素是同一種類型的,不同列可能具有相同的域,但不同列要具有不同的屬性名,行和列的順序是隨意的,不會影響我們的操作

2.關(guān)系代數(shù)基本組成

運(yùn)算符

分成集合運(yùn)算符和比較運(yùn)算符

集合運(yùn)算符:交、差、并、廣義笛卡兒積

比較運(yùn)算符:大于、大于等于、小于、小于等于、等于、不等于

這邊的等于只要一個等號即可

專門運(yùn)算符: σ /sigma σ, π /pi π, ÷ /div ÷, ∞ /infty , × /times ×

即選擇,投影,除法,連接

邏輯運(yùn)算符: ? /neg ?, ∨ /vee , ∧ /wedge

選擇

  • 符號

    σ /sigma σ

  • 基本形式

    σ [ o p t i o n s ] ( 表 ) /sigma_{[options]}(表) σ[options]?()

    例子:

    σ a g e = 15 ( s t u d e n t ) /sigma_{age=15}(student) σage=15?(student)

    從學(xué)生表中查詢年齡等于15的學(xué)生

其實(shí)等價于后面要學(xué)的where語句

投影

本質(zhì)上就是取出我們需要的字段,重新生成一張表

  • 符號

    π /pi π

  • 基本形式

    π [ 屬 性 1 ] , [ 屬 性 2 ] ( 表 ) /pi_{[屬性1],[屬性2]}(表) π[1],[2]?()

    例子:

    π a g e , n a m e ( s t u d e n t ) /pi_{age,name}(student) πage,name?(student)

    表示選擇student中的age和name字段構(gòu)成一個關(guān)系,即一個表

連接

將兩個表按照一定的規(guī)則連接,一般默認(rèn)就是自然連接,比較常用的是等值連接,也可以自己創(chuàng)建連接的規(guī)則

  • 符號

    ∞ /infty

  • 一般形式

    R ∞ A θ B S R/underset{A/theta B}{/infty}S RAθB?S

    其中 θ /theta θ為比較運(yùn)算符,A與B為比較對象,一般是表中的某個字段的比較

  • 等值連接

    1. 自然連接

      特殊的等值連接,一般情況下連接符下面的條件可以省略,將兩張表中相同屬性組進(jìn)行等值連接,最后會將重復(fù)的屬性取掉

    2. 等值連接

      條件運(yùn)算符是等號的連接,

  • 非等值連接

    即一般的條件判斷連接,會存在

還有一些概念,例如左外連接,右外連接,全外連接,即連接時如果沒有匹配到值做的一些處理,將沒有值的部分置為空值,左即保留左邊的全部元組,右即右邊,全即全部

除法

  • 象集

    考慮一個關(guān)系模式R(X,Y),其中X,Y均為屬性組

    現(xiàn)對任意的元組a,a在X屬性組上的取值等于某一給定的集合x,則此時滿足條件的元組的屬性組Y部分的取值即為象集

    記為: Y x Y_{x} Yx?

    例子:

    有一個表如下圖所示

    X 1 X_1 X1? X 2 X_2 X2?Y
    x1x2y1
    x1x2y2
    x1x3y1
    x2x1y2

    其中X1和X2為屬性組X,

    則x = (x1,x2)在R中的象集 Y x Y_x Yx? = {y1,y2}

    b = (x1,x3)在R中的象集 Y x Y_x Yx? = {y1}以此類推

  • 除法運(yùn)算本質(zhì)上就是象集的運(yùn)算

    Y x Y_x Yx? 相當(dāng)于 R ÷ /div ÷ x

    此時x為一個元素表

    除法運(yùn)算考慮更一般的情況是一個一般的表

    考慮更一般的情況

    R(X,Y)和S(Y,Z)

    R ÷ S R/div S R÷S即返回X的屬性列,即與S中Y都相同的元組的X屬性組的取值

總結(jié)一下,除法的運(yùn)算,主要是考慮到一種需求,如果我們想要某個屬性組中的值與給定表中的相同的元組,同時屬性又不全要,就可以考慮使用除法

并、差

符合: ∪ /cup 、-

并:R ∪ /cup S當(dāng)且僅當(dāng)R與S具有相同的屬性,作用結(jié)果是元組數(shù)目不減少,可能不增

差:R-S也需要滿足R和S具有相同的屬性,作用結(jié)果是元組數(shù)目不增加,可能不減

笛卡爾積

  • 符號: × /times ×

  • 例子

    R :n目關(guān)系,k1個元組

    S:m目關(guān)系,k2個元組

    則R × /times ×S的結(jié)果是產(chǎn)生(m+n)列和(k1 × /times ×k2)行的一個二維表

四、數(shù)據(jù)庫SQL語句

1.DDL

即Database Define Language ,負(fù)責(zé)創(chuàng)建和解釋關(guān)系型數(shù)據(jù)庫的語言

這里包含兩部分,表和視圖

1.1建表、刪表

1.1.1最簡單的建表語句
create table student(	name varchar(10) primary key,    age int)

創(chuàng)建了一個以name為主鍵的student表

1.1.2添加約束的建表

一般約束可以分單列的約束創(chuàng)建和多列的約束創(chuàng)建

單列的直接放在字段后面即可,多列的在建表語句的最后出現(xiàn)

下面由于展示方便,沒有指定約束名,這里以主鍵約束展示一下,最好還是指定一下約束名,不然到時候刪除就有點(diǎn)麻煩,系統(tǒng)默認(rèn)會隨機(jī)生成一個約束名

ALTER TABLE student add  constraint key PRIMARY key(sno)
非空約束

作用:使得插入的數(shù)據(jù)不能為空值

--這里就是創(chuàng)建了一個非空約束create table student(	name varchar(10) primary key,    age int not null)

添加約束

-- 添加約束之前會檢查表中的數(shù)據(jù),如果有空值則不成功執(zhí)行alter table studentalter column age int not null
主鍵約束

作用:使得字段非空且唯一

--這里就是創(chuàng)建了一個主鍵約束create table student(	name varchar(10) primary key,    age int)

如果想從現(xiàn)有表進(jìn)行添加主鍵約束

--首先要確保當(dāng)前的要添加主鍵約束的字段非空--不然就不滿足實(shí)體完整性create table student1(	name varchar(10) not null,    age int)ALTER TABLE student add  PRIMARY key(sno)
唯一約束

作用:

與主鍵有點(diǎn)像,允許出現(xiàn)空值,但只能出現(xiàn)一次,保證鍵值的唯一性,一個表可以允許有多個唯一約束

--這里就是創(chuàng)建了一個唯一約束create table student(	name varchar(10) primary key,    age int unique)

添加的操作

alter table studentadd unique (age)--注意括號不能少
檢查約束

作用:

在每次系統(tǒng)插入或者更新數(shù)據(jù)時檢查數(shù)據(jù)

--這里就是創(chuàng)建了一個檢查約束create table student(	name varchar(10) primary key,    age int check(age between 15 and 30))

添加的操作

alter table studentadd check(age between 15 and 30)
  • check 約束中可以使用系統(tǒng)自帶的函數(shù)
  • 但不能使用子查詢
  • 不能使用其他表的字段
  • 一般采用and 或者 or關(guān)鍵字表示復(fù)雜的邏輯
外鍵約束

作用:

給表中的列添加外鍵約束,使得插入的該列的值必須是合法的,即保證數(shù)據(jù)的一致性

--這里就是創(chuàng)建了一個外鍵約束create table student(	name varchar(10) primary key,    age int foreign key(age) references course(age)    --age int foreign key references course(age))--這邊由于是列級約束,所以可以省略foreign key 后面的列名

添加約束

alter table studentadd foreign key(age) references course(age)

注意事項(xiàng)

foreign key 中引用的外鍵數(shù)必須和references 里面數(shù)目和類型一致這里回顧一下外鍵的定義:一個表中的屬性或者屬性組是另一個表中的主鍵則稱此屬性或者屬性組為外鍵
默認(rèn)約束

作用:

當(dāng)插入數(shù)據(jù)不指定字段的屬性值時,自動賦一個默認(rèn)的值

--這里就是創(chuàng)建了一個默認(rèn)約束create table student(	name varchar(10) primary key,    age int default 18)

添加約束的操作

--只能一條一條添加約束alter table studentadd default "18" for age
1.1.3刪除表,約束
--這部分就比較簡單了--為了比較順利的刪除約束,這里補(bǔ)充一下如何查看約束名稱exec sp_help--由于一開始沒有指定約束名,所以需要通過這個命令查看

刪除表

drop table student

刪除約束

alter table studentdrop constraint 名字--多個的話采用括號括起來
  1. 更新表,約束

    這部分其實(shí)有點(diǎn)重合,在上一部分以及講了,這里展示一下基本結(jié)構(gòu)

    --更新表alter table 表名alter column 修改的列--更新約束--這里其實(shí)是添加,約束不能直接更新的,要先刪除然后再更新alter table 表名add 約束

1.2視圖

1.2.1視圖的應(yīng)用背景

在寫sql語句時有時需要會寫很多重復(fù)的sql語句,但它們的功能基本相同,所以這時候重用sql語句就變得非常重要,于是就產(chǎn)生了視圖這個工具。

1.2.2視圖的創(chuàng)建
create view 名字  assql語句--舉個簡單的例子create view test_view asselect age,name from student
1.2.3視圖的使用
--視圖的使用其實(shí)和普通的表沒有多大區(qū)別--可視為一個表進(jìn)行操作select * from test_view--此時就檢索出age和name構(gòu)成的記錄--一般來講視圖是用于檢索數(shù)據(jù)的,當(dāng)然也可以插入,更新,刪除,但是會有限制,這部分在下面的誤區(qū)會講
1.2.4視圖的一些誤區(qū)
--首先視圖并不是一個真實(shí)的表,它只是一個虛表,本質(zhì)上并不儲存數(shù)據(jù),數(shù)據(jù)都在視圖sql語句中的基表當(dāng)中--故視圖在下列情況下不能被更新1.使用分組2.使用連接3.使用子查詢4.使用并操作5.使用聚集函數(shù)6.使用distinct7.使用計算列--這些數(shù)據(jù)本質(zhì)上都是由基表計算出來的,當(dāng)基表中無這些數(shù)據(jù),由于對視圖的更新相當(dāng)于對基表的更新,故不能更新

2.DML

2.1查詢語句

基本查詢語句
select 列名 from 表名select *from 表名--代表查詢?nèi)苛械囊馑?-舉個例子--查找student中name列select namefrom student
where語句

對查詢的記錄增加條件

select 列名from 表名where 條件--舉個例子--查找name為zhang的學(xué)生select * from studentwhere name = "zhang"
group by和having語句
--group by 顧名思義是分組查詢,將數(shù)據(jù)按照一定的原則進(jìn)行排序--涉及到幾個比較常見的聚集函數(shù)--count,min,max,avg,sum--count(*)代表統(tǒng)計全部的數(shù)據(jù)包括空值,count(具體列名)則代表非空的數(shù)據(jù)--當(dāng)條件中有出現(xiàn)聚集函數(shù)必須使用having子句進(jìn)行限制,不能使用where--聚集函數(shù)相當(dāng)于在分組里面進(jìn)行計算,故select 中選擇的屬性必須包含在group by子句中--選擇的列要么出現(xiàn)在group by 子句中要么出現(xiàn)在聚集函數(shù)中--先分組再有having條件select 列名from 表名where 條件group by 列名--舉個例子--查找name相同的個數(shù)select name ,count(*)from studentgroup name
join語句
--包括自然連接,等值連接,有條件的連接--left join,right join ,full join--這些join語句區(qū)別在于處理空值的原則不同--left join即代表保留左表的全部數(shù)據(jù),沒有的值按照null表示,right 和full類似select 列名from 表1 join 表2 on 條件--多個的話 from 表1 join 表2 on 條件 join 表3 on 條件where 條件
order by語句
--排序,比較簡單,默認(rèn)升序排列--desc 降序排列--order by score desc--asc 升序排列--order by score asc--一般位于sql語句最后--舉個例子--將分?jǐn)?shù)按照降序排列select scorefrom studentorder by score desc--這里補(bǔ)充一個top 關(guān)鍵字--top 2代表前兩名--top 2 with ties 代表考慮并列select top 2 with ties score from student --percent 關(guān)鍵字--選出前30%select top 30 percent from student
子查詢

由于很多時候我們的表不能滿足我們需求,由于通過sql語句查詢出來的表具有很好的靈活性,故引入子查詢

使得我們可以用子查詢的記錄當(dāng)成一個表進(jìn)行操作

  • 不相關(guān)子查詢

    --顧名思義就是子查詢與目前執(zhí)行的查詢語句相互獨(dú)立--子查詢本質(zhì)就是一個sql語句
  • 相關(guān)子查詢

    --顧名思義就是子查詢與主要的查詢直接有關(guān)系--例如

between and 包括范圍點(diǎn)

like匹配符匹配中文時也將中文看成一個字符

聚集函數(shù)相當(dāng)于在分組里面進(jìn)行計算,故select 中選擇的屬性必須包含在group by子句中

選擇的列要么出現(xiàn)在group by 子句中要么出現(xiàn)在聚集函數(shù)中

先分組再有having條件,最后時排序,這里有個順序

對于group by分組的理解

當(dāng)按照group by后面的屬性進(jìn)行分組好之后

select選擇的屬性只能時group by 中的屬性或者聚集函數(shù)構(gòu)成的屬性,否則

就會出現(xiàn)另外一個字段對其進(jìn)行分組,不符合常理

有時候兩個連接時為什么同一個字段不需要指定列名,因?yàn)檫B接時產(chǎn)生重復(fù)

這里有個疑問,自然連接再實(shí)際實(shí)現(xiàn)中好像沒有特殊操作

交叉查詢就是笛卡兒積

自連接需要再看一下,這邊就是出現(xiàn)列名不明確會影響結(jié)果

2.2插入語句

有兩種方式

  • 沒有指定列名的插入語句

    insert into 表名 values(值1,值2)--這里必須輸入表的全部屬性上的值才可以執(zhí)行,默認(rèn)按照表的定義結(jié)構(gòu)進(jìn)行賦值--比較容易出錯,不建議采取這種插入數(shù)據(jù)的方式--舉個例子insert into student values("zhang",19)
  • 指定列名的插入語句

    insert into 表名(字段1,字段2) values(值1,值2)--這里指定列名,值一一與前面的列名相對應(yīng)--語句比較清晰,但存在需要寫很多字段的繁瑣操作--舉個例子insert into student(name,age) values("yu",10)

2.3更新語句

update 表名set 執(zhí)行更新的操作where 條件--舉個例子--更新name為zhang的學(xué)生的名字變成hhhupdate studentset name = "hhh"where name = "zhang"

2.4刪除語句

delete from 表名where 條件--舉個例子--刪除name為zhang的學(xué)生delete from studentwhere name = "zhang"

3.DCL

  • 授權(quán)

    --授予某種權(quán)限給用戶grant 權(quán)限  to 用戶
  • 回收權(quán)限

    --回收權(quán)限r(nóng)evoke 權(quán)限 from 用戶
  • 拒絕權(quán)限

    --拒絕權(quán)限deny 權(quán)限 to 用戶

五、數(shù)據(jù)庫高級操作

這部分初學(xué)者很難使用到,如果這篇文章能有50收藏,我考完就寫,太累了,先列個大綱

1.事務(wù)

四個特性(ACID)

  • 原子性
  • 一致性
  • 獨(dú)立性
  • 持久性

2.封鎖

  • 一級封鎖協(xié)議

  • 二級封鎖協(xié)議

  • 三級封鎖協(xié)議

3.并發(fā)

3.1并發(fā)的副作用

3.2解決方案兩段鎖協(xié)議

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/125346.html

相關(guān)文章

  • C語言 指針+二維數(shù)組詳解 (應(yīng)付期末、考研的最強(qiáng)筆記,建議收藏)

    摘要:需要注意的是用矩陣形式如行列表示二維數(shù)組,是邏輯上的概念,能形象地表示出行列關(guān)系。再次強(qiáng)調(diào)二維數(shù)組名如是指向行的。一維數(shù)組名如是指向列元素的。 哈嘍!這里是一只派大鑫,不是派大星。本著基礎(chǔ)不牢,地動山搖的學(xué)習(xí)態(tài)度,從基礎(chǔ)的C語言語法講到算法再到更高級的語法及框架的學(xué)習(xí)。更好地讓同樣熱愛編...

    FrozenMap 評論0 收藏0
  • 期末考試季】JAVA進(jìn)階復(fù)習(xí)提綱

    摘要:泛型類型對象之間沒有關(guān)系,就算之間互為父子關(guān)系,也沒有任何關(guān)系。泛型類的靜態(tài)上下文中類型變量無效。不能捕獲或拋出泛型類的實(shí)例。 前言 作為一塊后端沒有太多經(jīng)驗(yàn)的年糕,下周要考試了,所以我必須得來好好復(fù)習(xí)一下我的JAVA進(jìn)階課/(ㄒoㄒ)/~~。這個學(xué)期主要是學(xué)了: 泛型 反射 線程 JDBC JAVA WEB基礎(chǔ) Servlet session&cookie 過濾器&監(jiān)聽器 泛型 ...

    Jokcy 評論0 收藏0
  • 大學(xué)一年之后竟如此。。。開學(xué)前的掙扎

    摘要:后來知道有了院賽,學(xué)長說刷院和杭電就可,我就一直刷院,到最后比賽前院的前五十道基本做完,杭電也弄了十來道,就這樣草草參加比賽了。 博客主頁: https://b...

    MartinDai 評論0 收藏0
  • Python0基礎(chǔ)(中)——期末不掛科

    摘要:結(jié)束索引,默認(rèn)為字符串的長度。列表這塊注意索引中的列表更像中數(shù)組的超集從頭開始從尾開始常用操作插入刪除還是一樣的知道函數(shù)容易做不知道函數(shù)也能做索引循環(huán)判斷自己造一個出來就行了列表允許修改增加方法用于在列表末尾添加新的對象。 ...

    seal_de 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<