什么是sql數(shù)據(jù)庫
數(shù)據(jù)庫簡單來說就是一種為了方便存儲(chǔ)數(shù)據(jù)的一種工具。既然是工具,肯定是為了方便我們的行為而產(chǎn)生的。現(xiàn)在的我們首要任務(wù)就是 掌握這種工具。
SQL的全稱是Structured Query Language(結(jié)構(gòu)化查詢語言),簡要來說就是結(jié)構(gòu)很嚴(yán)謹(jǐn)?shù)囊环N數(shù)據(jù)存儲(chǔ)的格式,怎么嚴(yán)謹(jǐn)呢,接下來就來說明。
sql學(xué)習(xí)數(shù)據(jù)庫的準(zhǔn)備
學(xué)習(xí)數(shù)據(jù)庫,我們需要兩樣?xùn)|西,一個(gè)是Mysql,另一個(gè)就是數(shù)據(jù)庫管理工具(Navicat)。
- 因?yàn)槲覀兿碌臄?shù)據(jù)庫,它本身是沒有太多能用鼠標(biāo)點(diǎn)擊的操作,所以我們?cè)谀承r(shí)候,就用Navicat來管理它。
- 數(shù)據(jù)庫我們?cè)谶@里選擇mysql,因?yàn)樗容^簡單,我們?nèi)?a target="_blank" rel="nofollow">這里來下載,這里只有32位安裝版的,但官方說它也適用64位的,所以大家放心下。
- 在數(shù)據(jù)庫管理這里我們能清晰的看清楚數(shù)據(jù)庫的層次和結(jié)構(gòu),以及它下面表和表中行和列的結(jié)構(gòu),也方便我們來構(gòu)建表和手動(dòng)執(zhí)行一些基本的操作。總而言之就是,數(shù)據(jù)庫不方便看,然后用Navicat來可視化它。
- 64位的Navicat在這里下載。
sql數(shù)據(jù)庫的結(jié)構(gòu)
一個(gè)數(shù)據(jù)庫是由多個(gè)表來組成,這個(gè)表和我們?nèi)粘K姷腅xcel中的表大致格式差不多。
-
一個(gè)表,是由多個(gè)行和多個(gè)列來組成的。一行代表一個(gè)記錄,一列代表來描述這條記錄中的一個(gè)屬性。可以這樣說:一個(gè)表是一個(gè)’行‘的集合組成的,每一行都由一個(gè)或者多個(gè)列來描述。
QQ截圖20161027145707.png 列的分析;一個(gè)列代表了一種屬性,至于這種屬性是什么樣的數(shù)據(jù)類型,還是要我們自己來設(shè)置的。
數(shù)據(jù)類型
文本
char(size): 保存固定長度的字符串(可包含字母、數(shù)字以及特殊字符)。在括號(hào)中指定字符串的長度。最多 255 個(gè)字符。
varchar(size):保存可變長度的字符串(可包含字母、數(shù)字以及特殊字符)。在括號(hào)中指定字符串的最大長度。最多 255 個(gè)字符。
text 存放最大長度為 65,535 個(gè)字符的字符串。注釋:如果值的長度大于 255,則被轉(zhuǎn)換為 text 類型。
mudiumtext存放最大長度為 16,777,215 個(gè)字符的字符串。
longtext 存放最大長度為** 4,294,967,295** 個(gè)字符的字符串。
數(shù)字
int(size): 大小從-2147483648 到 2147483647 。在括號(hào)中規(guī)定最大位數(shù)。
smallint(size):大小從-32768 到 32767 。在括號(hào)中規(guī)定最大位數(shù)。
tinyint(size): 大小從-128 到 127 。在括號(hào)中規(guī)定最大位數(shù)。
float(size,d): 帶有浮動(dòng)小數(shù)點(diǎn)的小數(shù)字(-131072, +131072)。在括號(hào)中規(guī)定最大位數(shù)。在 d 參數(shù)中規(guī)定小數(shù)點(diǎn)右側(cè)的最大位數(shù)。
double(size,d): 帶有浮動(dòng)小數(shù)點(diǎn)的大數(shù)字。在括號(hào)中規(guī)定最大位數(shù)。在 d 參數(shù)中規(guī)定小數(shù)點(diǎn)右側(cè)的最大位數(shù)。
decimal(size,d) 作為字符串存儲(chǔ)的 double 類型,允許固定的小數(shù)點(diǎn)。
日期
date() 格式:YYYY-MM-DD,支持的范圍是從 '1000-01-01' 到 '9999-12-31'。
datetime() 格式:YYYY-MM-DD HH:MM:SS,支持的范圍是從 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
注意:sql對(duì)大小寫不敏感。
只列出部分,詳見這里
字節(jié)和字符
- 字節(jié)是計(jì)算機(jī)存儲(chǔ)信息的基本單位。
- 字符是指計(jì)算機(jī)中使用的數(shù)字和符號(hào)。包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。1個(gè)漢字字符存儲(chǔ)需要2個(gè)字節(jié),1個(gè)英文字符存儲(chǔ)需要1個(gè)字節(jié)。
主鍵
主關(guān)鍵字(主鍵,primary key)是被挑選出來,主關(guān)鍵字
作表的行的唯一標(biāo)識(shí)的候選關(guān)鍵字。一個(gè)表只有一個(gè)主關(guān)鍵字。主關(guān)鍵字又可以稱為主鍵。 主鍵可以由一個(gè)字段,也可以由多個(gè)字段組成,分別稱為單字段主鍵或多字段主鍵。又稱主碼。并且它可以唯一確定表中的一行數(shù)據(jù),或者可以唯一確定一個(gè)實(shí)體。
外鍵
如果公共關(guān)鍵字在一個(gè)關(guān)系中是主關(guān)鍵字,那么這個(gè)公共關(guān)鍵字被稱為另一個(gè)關(guān)系的外鍵。由此可見,外鍵表示了兩個(gè)關(guān)系之間的相關(guān)聯(lián)系。以另一個(gè)關(guān)系的外鍵作主關(guān)鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關(guān)鍵字。
查詢
查詢的基本結(jié)構(gòu)就是:
select ....( 列名 )
from ....(表名)
where ....(條件)
添加
insert into 表名稱
values (值1, 值2,....)
或者
insert into 表名
(列1, 列2,...) values (值1, 值2,....)
修改
update 表名
set 某一列的值 = 新值
where 列名稱 = 某值(條件)
刪除
delete from 表名稱
where 列名稱 = 值