數(shù)據(jù)庫知識點總結(jié)歸納_第1頁
數(shù)據(jù)庫知識點總結(jié)歸納_第2頁
數(shù)據(jù)庫知識點總結(jié)歸納_第3頁
數(shù)據(jù)庫知識點總結(jié)歸納_第4頁
數(shù)據(jù)庫知識點總結(jié)歸納_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

數(shù)據(jù)庫知識點總結(jié)歸納

—、基本概念

1、 數(shù)據(jù)

(1) 數(shù)據(jù)的定義:對客觀事物的符號表示,如圖形符號、數(shù)字、字母等,數(shù)據(jù)是數(shù)據(jù)庫中存儲的基本對象。

(2) 數(shù)據(jù)的種類:文字、圖形、圖像、聲音

(3) 數(shù)據(jù)的特點:數(shù)據(jù)與其語義是不可分的

2、 數(shù)據(jù)庫

數(shù)據(jù)庫(DataBase簡稱DB)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫。

3、 數(shù)據(jù)庫管理系統(tǒng)(比如:MySql)

(1) 數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem簡稱DBMS)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是用于建立、使用和維護數(shù)據(jù)庫。

(2) 關(guān)系型數(shù)據(jù)庫管理系統(tǒng)稱為RDBMS,R指Relation。

(3) DBMS的作用:它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。

4、 數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,簡稱DBS),是由數(shù)據(jù)庫及其管理軟件組成的系統(tǒng)。

5、 數(shù)據(jù)庫管理員

數(shù)據(jù)庫管理員(DatabaseAdministrator,簡稱DBA),負責(zé)全面管理和控制數(shù)據(jù)庫系統(tǒng)。

6、 DBA、DBMS、DB和DBS之間的關(guān)系

DBA利用DBMS控制由DB構(gòu)成的DBS

7、數(shù)據(jù)庫的優(yōu)點

(1) 數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存

(2) 可為各種用戶共享

(3) 冗余度較小,節(jié)省存儲空間

(4) 易擴展,編寫有關(guān)數(shù)據(jù)庫應(yīng)用程序

二、數(shù)據(jù)庫管理系統(tǒng)(DBMS)

1、DBMS的主要功能

(1)數(shù)據(jù)定義功能:提供數(shù)據(jù)定義語言(DDL)

用于定義數(shù)據(jù)庫的所有特性和屬性,尤其是行布局、列定義、鍵列(有時是選鍵方法)、文件位置和存儲策略,包括命令:

DROP(刪除數(shù)據(jù)庫)

刪除數(shù)據(jù)庫:dropdatabaseifexists數(shù)據(jù)庫名

CREATE(創(chuàng)建數(shù)據(jù)庫)

創(chuàng)建表:createtableifnotexists表名(列名列名約束)

ALTER(修改數(shù)據(jù)庫)

添加列名:altertable表名add列名約束條件

修改列名:altertable表名change老列名新列名數(shù)據(jù)類型

修改列字段數(shù)據(jù)類型:altertable表名modity列名數(shù)據(jù)類型

刪除列名:altertable表名drop列名

修改表名:altertable表名rename新表名

GRANT(賦予權(quán)限)

REVOKE(從當(dāng)前用戶或組中取消權(quán)限)、TRUNCATE(只刪除表中的所有數(shù)據(jù),不刪除表的結(jié)構(gòu))

注意:truncatetable命令將快速刪除數(shù)據(jù)表中的所有記錄但保留數(shù)據(jù)表結(jié)構(gòu)。這種快速刪除與deletefrom數(shù)據(jù)表的輸出全部數(shù)據(jù)表記錄不一樣,delete命令刪除的數(shù)據(jù)將存儲在系統(tǒng)回滾段中,需要的時候,數(shù)據(jù)可以回滾恢復(fù),而truncate命令刪除的數(shù)據(jù)是不可恢復(fù)的。

(2) 數(shù)據(jù)操縱功能:提供數(shù)據(jù)操縱語言(DML)

操縱數(shù)據(jù)實現(xiàn)對數(shù)據(jù)庫的基本操作:

SELECT(查詢)

selectfrom表名where條件(條件1and條件2)

INSERT(插入)

insertinto表名(列1,列2)values('',''),('',''),('','')

DELETE(刪除)

deletefrom表名where條件

UPDATE(修改)

update表名set列名二'’,列名二''where條件

(3) 數(shù)據(jù)庫的運行管理

a、 保證數(shù)據(jù)的安全性、完整性

b、 多用戶對數(shù)據(jù)的并發(fā)使用

c、 發(fā)生故障后的系統(tǒng)恢復(fù)

(4) 數(shù)據(jù)庫的建立和維護功能(實用程序)

a、 數(shù)據(jù)庫數(shù)據(jù)批量裝載

b、 數(shù)據(jù)庫轉(zhuǎn)儲

c、 介質(zhì)故障的修復(fù)

d、 數(shù)據(jù)庫的重組織

e、 性能監(jiān)視

數(shù)據(jù)庫中的貴族)

2、DBMS的分類(大公司首選oracle

小型數(shù)據(jù)庫:Access、foxbase、sqlite中型數(shù)據(jù)庫:mysql、sqlserver、infomix大型數(shù)據(jù)庫:Sybase、Oracle、db2

注意:Mysql、SQLserver、Oracle、DB2三者的特點

Oracle:

(1)最穩(wěn)定、功能最強大、性能最好、容量無限、最昂貴、重量級,分布式數(shù)據(jù)庫系統(tǒng),適用于大型的項目

(2)〃關(guān)系----對象〃型數(shù)據(jù)庫

MySQL:

(1) 輕量級、易安裝、易管理、速度比較快,使用起來方便,適用于中小型企業(yè)

(2) 開源、免費、與PHP組成經(jīng)典的LAMP組合

SQLServer:

(1) 針對不同用戶群體的五個特殊的版本

(2) 易用性好

DB2:

(1)應(yīng)用于大型應(yīng)用系統(tǒng),具有較好的可伸縮性

特點

MySQL比較小,易于安裝維護和儉理,操作簡單,最重要的是它是n個中唯一一個開源數(shù)據(jù)庫,11[.目前也屬于

Oracle公司的產(chǎn)品了。

對于中小型應(yīng)用都可以支持,最大并發(fā)是6000,性能不錯「-般PHP程序比較喜歡用MySQL,

SQLServer是微軟的產(chǎn)品,對_net程序支持比較好,對于-般的應(yīng)用來說都夠用了,基本上.net陣營中很少使用SQLSe「ve「以外的數(shù)據(jù)庫產(chǎn)品°

Oracle是Oracle的數(shù)據(jù)庫產(chǎn)品,它體積比較龐大,可以在同一機器上運行多個實例「一般用來開發(fā)大型應(yīng)用(例如分布式)

B/S瀏覽器服務(wù)器BrowserServer

客戶不需要安裝程序,只需要有瀏覽器引擎即可:淘寶

C/S客戶端服務(wù)器ClientServer

客戶需要安裝程序,比如:QQ

三、MySQL的概念、特性以及不足

1、 概念

(1) 什么是MySQL

MySQL原本是一個開放源代碼的關(guān)系數(shù)據(jù)庫管理系統(tǒng),原開發(fā)者為瑞典的MySQLAB公司,該公司于2008年被Sun公司收購。2009年,甲骨文公司Oracle收購Sun公司,MySQL成為Oracle旗下產(chǎn)品。

MySQL在過去由于性能高、成本低、可靠性好,已經(jīng)成為最流行的開源數(shù)據(jù)庫,因此被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。隨著MySQL的不斷成熟,它也逐漸用于更多規(guī)模網(wǎng)站和應(yīng)用,比如Google和Facebook等網(wǎng)站。

(2) 什么是SQL

SQL是StructuredQueryLanguage(結(jié)構(gòu)化查詢語言)的縮寫。SQL是專為數(shù)據(jù)庫而建立的操作命令集,是一種功能齊全的數(shù)據(jù)庫語言。在使用它時,只需要發(fā)出“做什么”的命令,“怎么做”是不用使用者考慮的。

2、 MySQL的特征:

(1) 性能快捷、優(yōu)化SQL語言

(2) 容易使用

(3) 多線程和可靠性

(4) 多用戶支持

(5) 可移植性和開發(fā)源代碼

(6) 遵循國際標(biāo)準(zhǔn)和國際化支持

(7) 為多種編程語言提供API

3、 MySQL5新特性

(1)子查詢

視圖

存儲過程

觸發(fā)器

事務(wù)處理

熱備份

二進制Bit類型

4、MySQL的不足

不能直接處理XML數(shù)據(jù)

一些功能上支持得不夠完善和成熟

不能提供任何OLAP(實時分析系統(tǒng))功能

四、MySQL的使用

1、用命令行來執(zhí)行數(shù)據(jù)庫(DDL數(shù)據(jù)庫定義語言)

輸入登錄密碼(連接的密碼)

顯示MySQL中所有的數(shù)據(jù)庫

退出MySQL

使用quit、exit、\q退出MySQL

創(chuàng)建數(shù)據(jù)庫(createdatabase數(shù)據(jù)庫名)

創(chuàng)建數(shù)據(jù)庫時,判斷是否具有同名數(shù)據(jù)庫再創(chuàng)建

創(chuàng)建數(shù)據(jù)庫后,為數(shù)據(jù)庫設(shè)置字符編碼

刪除數(shù)據(jù)庫(dropdatabase數(shù)據(jù)庫名)

使用某個數(shù)據(jù)庫(user數(shù)據(jù)庫名)

注意:進入到該數(shù)據(jù)庫,例如你新建表的時候要先寫這句話,這樣保證了我的表創(chuàng)建在該數(shù)據(jù)庫下,反之會默認放置在默認的數(shù)據(jù)庫中

(7) 創(chuàng)建表(createtable表名(列名1數(shù)據(jù)類型, ))

創(chuàng)建表時,是id自動遞增用auto_increment

注意:關(guān)于數(shù)據(jù)類型:char和varchar

char(20):分配20個空間,當(dāng)只使用5個空間時,沒用的空間會被空格填補

varchar(20):分配20個空間,當(dāng)只使用5個空間時,那么空間會占用6個,其中一個保存數(shù)據(jù)長度。

因此,建議使用varchar

(8) 顯示選擇的數(shù)據(jù)庫中所有的表

(9) 查看表里面的詳細信息(desc表名)

(10) 刪除表(droptable表名)

(11) 刪除一個表的主鍵(altertable表名dropprimarykey)

(12) 往表中添加一列(altertable表名add要添加的列名數(shù)據(jù)類型)

(13) 往id列后面添加一列

(14) 增加一列,使其位于第一列

(15) 刪除某一列(altertable表名drop列名)

(16) 修改表字段

a、 使用change可以修改字段名稱和該字段的數(shù)據(jù)類型(altertable表名change字段名新字段名新數(shù)據(jù)類型)

b、 使用Modify只能修改數(shù)據(jù)類型(altertable表名modify字段名新數(shù)據(jù)類型)

2、Navicat進行增刪改查(DML數(shù)據(jù)操縱語言)

Navicat代碼注釋的三種:

—注釋的代碼(注意空格)

#注釋的代碼

(1)創(chuàng)建一張表

盜點

挪空直,:

?stuld

yarchar

20

0

□如

stuName

varchar

40

0

stuSex

yarebar

5

0

stuPassword

varebar

so

0

(2)往表中添加記錄

TOC\o"1-5"\h\z

insertinto表名(字段1,字段2, )values(值1,值2, )

革;student@test[localhost_3306J-表

.■,test@testflocalho5t_33...x

C5

student docalhost...X

文件霍W

商口

5篇選向?qū)?/p>

既網(wǎng)格辭g

E

stuld

stiiName

stuSex

stuPassword

>1

123456

2

98-5O&2

3

櫥燧志

435291

4

祝橫崗

&48310

TOC\o"1-5"\h\z

(3)查找表中名字為祝橫崗,密碼為648310的記錄,并列條件使用and

信息

結(jié)果]

stuld

stuName

s-tuSex

stuPassword

4

睥崗

643310

TOC\o"1-5"\h\z

(4)修改表中的記錄(update表名set列名=‘xxx’where )

結(jié)莉

將id為4的字段stuName的值改成“關(guān)雎宮”

stuld

stuName

s^tuS&x

stuPassword

E4

關(guān)障亙

64日210

信息

TOC\o"1-5"\h\z

(5)刪除表中的記錄(deletefrom表名where )刪除編號為3的數(shù)據(jù)

信息

給果L

stuld s-tuName stuSexstuPassvxord

k1 概惠畫 女 123456

2 朱元梅 女 鏘50跆

4 關(guān)庫巨 舅 64&310

五、MySQL數(shù)據(jù)類型

1、數(shù)據(jù)類型種類

數(shù)值型

a、 整型

可以由十進制和十六進制表示,整數(shù)由數(shù)字序列組成,如:100,0xA

b、 浮點型

浮點數(shù)由一個數(shù)字加一個小數(shù)點再加上一個數(shù)字組成,如:10.5

字符串

由單引號或者雙引號括起來的字符或者數(shù)字,如:’abc10',〃abc〃

字符串中要用轉(zhuǎn)義字符才能表示的特殊符號

串轉(zhuǎn)義序列

序列

說明

序列

說明

\0

NUL(ASCII0)

\n

新行

\'

單引號

\r

回車

""

雙引號

\t

制表符

\b

退格

\\

反斜杠

日期和時間值

存儲如〃2005-1-1〃或〃12:00:00〃這樣數(shù)值的值,MySQL中日期是按〃年-月-日〃的順序

NULL值

是一種無類型的值,表示“空,什么也沒有”

2、數(shù)值列類型

所有數(shù)值列類型的類型名以及其說明和所占的字節(jié)數(shù)見下表:

數(shù)值列類型

類型名

說明

類型名

說明

TINYINT

非常小的整數(shù)

BIGINT

大整數(shù)

SMALLINT

較小整數(shù)

FLOAT

單精度浮點數(shù)

MEDIUMINT

中等大小的整數(shù)

DOUBLE

雙精度浮點數(shù)

INT

標(biāo)準(zhǔn)整數(shù)

DECIMAL

一個串的浮點數(shù)(多用于銀行的數(shù)值)

數(shù)值列類型的存儲需求

類型說明

存儲需求

TINYINT[(M)]

1字節(jié)

SMALLINT[(M)]

2字節(jié)

MEDIUMINT[(M)]

3字節(jié)

INT[(M)]

4字節(jié)

BIGINT[(M)]

8字節(jié)

FLOAT[(M,D)],FLOAT(4)

4字節(jié)

DOUBLE[(M,D)],FLOAT(8)

8字節(jié)

DECIMAL(M,D)

M字節(jié)

M是從1到255的值,它表示列中值的字符數(shù)

M與D對DECIMAL(M,D)取值范圍的影響

類型說明 取值范圍(MySQL<3.23)取值范圍(MySQL>=3.23)

DECIMAL(4,1)-9.9到99.9

-999.9到9999.9

-9999.9到99999.9

-99999.9到999999.9

-9999.99到99999.99

-999.999到9999.999

DECIMAL(5,1)-99.9到999.9

DECIMAL(6,1)-999.9到99999.9

DECIMAL(6,2)-99.99到999.99

DECIMAL(6,3)-9.999到99.999

對于每種浮點型,可指定一個最大的顯示尺寸M和小數(shù)位D,M和D

對于DECIMAL是必須的

數(shù)值列的完整性約束

a、 auto_increment

自動標(biāo)識列,一個表中最多能有一個此屬性的列。對于想使用此屬性的列應(yīng)

該定義為notnull,并定義為primarykey或定義為unique鍵。

b、 unsigned

無符號,此屬性禁用負值,將數(shù)值的范圍從0開始。

c、 null和notnull

默認為null,即插入值時沒有在此字段插入值時自動填null,如果指定了notnull,則必須在插入值時在此字段添入值,不允許插入null值。

d、 default

可以通過此屬性來指定一個缺省值,即如果沒有在此列添加值,那么默認添加default后指定值。

e、 zerofill

前導(dǎo)零填充數(shù)值類型值以達到列的顯示寬度。

n>ysql>createtabletest2<numilinidefauIt1n<an2ini;aerofQuter^iOM,.0rowsafFettedC0.01we)

mywiql〉insertintotest2y^luEssCdefaultr3>?

OLierjiOK,1rowaffected<0.00sec>

nysql>select?fromtest2;

TOC\o"1-5"\h\z

Iminiinun2 i

#——―尊 a—, *

! 1!跚跚跚跚蹌I

jfl.11垂_1 l_^J_1— J—1*

1rowinset<0.B0sec>

3、字符串列類型

所有字符串列類型及其說明和所占字節(jié)數(shù)見下表:

串列類型

類型名

說明

CHAR

定長字符串

VARCHAR

可變長字符串

TINYBLOB

非常小的BLOB(二進制大對象)

BLOB

小BLOB

MEDIUMBLOB

中等的BLOB

LONGBLOB

大BLOB

TINYTEXT

非常小的文本串

TEXT

小文本串

MEDIUMTEXT

中等文本串

LONGTEXT

大文本串

ENUM

枚舉:列可賦予某個枚舉成員

SET

集合:列可賦予多個集合成員

(1) CHAR和VARCHAR類型

CHAR類型和VARCHAR類型長度范圍都是0~255之間的大小。他們之間的差異在于Mysql處理存儲的方式:

CHAR把這個大小視為值的準(zhǔn)確大小(如果值的長度不夠長,則用空格填補比較短的值)。

VARCHAR類型把它視為最大值并且只使用了存儲字符串實際上需要的字節(jié)數(shù)(增加一個額外的字節(jié)記錄長度)。因而較短的值當(dāng)被插入一個語句為VARCHAR類型的字段時,將不會用空格填補(然而,較長的值仍然被截短)。

(2) BLOB和TEXT類型

BLOB是二進制大對象,如果想存儲二進制數(shù),BLOB將是最佳選擇,而TEXT與之相同,只是BLOB按照二進制編碼排序(區(qū)分大小寫),TEXT按照字符文本模式排序(不區(qū)分大小寫)。

(3) ENUM和SET類型

它們是特殊的串類型,其列值必須從固定的串集中選擇,二者差別為前者必須是只能選擇其中的一個值,而后者可以多選。(不推薦使用)

枚舉的例子:

4、日期和時間列類型

所有時間和日期列類型的類型名及其說明和所占的字節(jié)數(shù)見下表:

日期與時間列類型

類型名 說明

DATE ‘YYYY-MM-DD’格式表示的日期值

TIME 'hh:mm:ss'格式表示的時間值

DATETIME 'YYYY-MM-DDhh:mm:ss'格式

TIMESTAMP'YYYYMMDDhhmmss'格式表示的時間戳值

YEAR 'YYYY'格式的年份值

注意:(1)每個時間和日期列類型都有一個零值,當(dāng)插入非法數(shù)值時就用零值來添加

表示日期時必須先按:年,月,日的順序給出

DATE,TIME,DATETIME分別是存儲日期,時間與日期和時間的組合,其格式為〃YYYY-MM-DD”,〃hh:mm:ss〃和〃YYYY-MM-DDhh:mm:ss〃,對于DATETIME類型,日期和時間部分都需要。

TIMESTAMP

時間戳列類型以YYYYMMDDhhmmss的格式來表示值,主要用于記錄更改或創(chuàng)建某個記錄。

5、常見數(shù)據(jù)類型

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

分類

備注和說明

數(shù)據(jù)類型說明

二進制數(shù)

存儲非字符和文本的數(shù)據(jù)

BLOB

可用來存儲圖像

據(jù)類型

char

固定長度的非Unicode

字符數(shù)據(jù)

文本數(shù)據(jù)

字符數(shù)據(jù)包括任意字母、符號或

可變長度非Unicode數(shù)

類型

者數(shù)字字符的組合

varchar

據(jù)

text

存儲長義本信息

日期和時間在單弓1號內(nèi)輸入

time

時間

日期和時

date

日期

常見的完整性約束

說明

主碼約束主鍵)

唯一性約束

非空值約束

用于整數(shù)列默認自增1

無符號整數(shù)

默認值約束

間 datetime日期和時間

貨幣數(shù)據(jù)

用于財務(wù)數(shù)據(jù) decimal定點數(shù)

類型

Bit數(shù)據(jù)類

表示是/否的數(shù)據(jù) bit 存儲布爾數(shù)據(jù)類型

int

整數(shù)

數(shù)值型數(shù)該數(shù)據(jù)僅

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論