1.1 創(chuàng)建表方法
趙縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
創(chuàng)建表是指在已存在的數(shù)據(jù)庫(kù)中建立新表。這是建立數(shù)據(jù)庫(kù)最重要的一步,是進(jìn)行其他操作的基礎(chǔ)。
1.1.1 創(chuàng)建表的語(yǔ)法形式
CREATE TABLE 表名 (
屬性名 數(shù)據(jù)類型 [ 完整性約束條件 ],
屬性名 數(shù)據(jù)類型 [ 完整性約束條件 ],
......
屬性名 數(shù)據(jù)類型 [ 完整性約束條件 ],
)[ 表類型 ] [ 表字符集 ];
SQL 是不區(qū)分大小寫。下面將會(huì)具體介紹SQL,這種創(chuàng)建表是通過(guò)什么方式起來(lái)的效果怎么樣?
命名規(guī)范:
1. 命名富有意義 ( 英文或英文組合 )
2. 自定義名稱使用小寫
3. MySQL 語(yǔ)句使用大寫
CREATE TABLE IF NOT EXISTS data_house(
id INT,
name VARCHAR(20);
gender BOOLEAN,
) Engine = MyISAM;
上面 SQL 語(yǔ)句的含義是:如果不存在 text1 表,就創(chuàng)建它,包含 3 個(gè)字段 id 、 name 和 gender ,它們的類型分別是整形、字符型和布爾型,創(chuàng)建的表的類型是 MyISAM 。
完整性約束條件表
PRIMARY KEY 標(biāo)識(shí)該屬性為該表的主鍵,可以唯一的標(biāo)識(shí)對(duì)應(yīng)的元組
FOREIGN KEY 標(biāo)識(shí)該屬性為該表的外鍵,是與之聯(lián)系的某表的主鍵
NOT NULL 標(biāo)識(shí)該屬性不能為空
UNIQUE 標(biāo)識(shí)該屬性的值是唯一的
AUTO_INCREMENT 標(biāo)識(shí)該屬性的值自動(dòng)增加,這是 MySQL 的 SQL 語(yǔ)句的特色 (null,0)
DEFAULT 標(biāo)識(shí)該屬性設(shè)置默認(rèn)值 (not null defualt 0,not null default 0.0,not null default '')
1.1.2 設(shè)置表的主鍵
主鍵是表的一個(gè)特殊字段。該字段能惟一地標(biāo)識(shí)該表中的每條信息。主鍵和記錄的關(guān)系,如同身份證和人的關(guān)系。主鍵用來(lái)標(biāo)識(shí)每個(gè)記錄,每個(gè)記錄的主鍵值都不同。身份證是用來(lái)標(biāo)明人的身份,每個(gè)人都具有惟一的身份證號(hào)。設(shè)置表的主鍵指在創(chuàng)建表時(shí)設(shè)置表的某個(gè)字段為該表的主鍵。
主鍵的主要目的是幫組 MySQL 以最快的速度查找到表中的某一條信息。
主鍵必須滿足的條件:
1. 主鍵必須是唯一的,表中任意兩條記錄的主鍵字段的值不能相同;
2. 主鍵的值是非空值;
3. 主鍵可以是單一的字段,也可以是多個(gè)字段組合。
1. 單字段的主鍵:
CREATE TABLE student1 (
stu_id INT PRIMARY KEY ,
stu_name VARCHAR(20) NOT NULL,
stu_gender BOOLEAN
) Engine = InnoDB;
2. 多字段主鍵 :
CREATE TABLE student2 (
stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY( stu_id, course_id )
)Engine = InnoDB;
1.1.3 設(shè)置表的外鍵
外鍵是表的一個(gè)特殊字段。如果字段 sno 是一個(gè)表 A 的屬性,且依賴于表 B 的主鍵。那么,稱表 B 為父表,表 A 為子表, sno 為表 A 的外鍵。通過(guò) sno 字段將父表 B 和子表 A 建立關(guān)聯(lián)關(guān)系。設(shè)置表的外鍵指在創(chuàng)建表設(shè)置某個(gè)字段為外鍵。
設(shè)置外鍵的原則:必須依賴于數(shù)據(jù)庫(kù)中已存在的父表的主鍵;外鍵可以為空值。
外鍵的作用 : 是建立該表與其父表的關(guān)聯(lián)關(guān)系。父表中刪除某條信息時(shí),子表中與之對(duì)應(yīng)的信息也必須有相應(yīng)的改變。例如, stu_id 就 student 表的主鍵, stu_id 是 grade 表的外鍵。當(dāng) stu_id 為 '123' 同學(xué)退學(xué)了,需要從 student 表中刪除該學(xué)生的信息。那么, grade 表中 stu_id 為 '123' 的所有信息也應(yīng)該同時(shí)刪除。
CONSTRAINT 外鍵別名 FOREIGN KEY ( 屬性 1.1, 屬性 1.2... 屬性 1.n);
REFERENCES 表名 ( 屬性 2.1, 屬性 2.2,..., 屬性 2.n)
CREATE TABLE student3 (
id INT PRIMARY KEY,
stu_id INT,
course_id INT,
# 設(shè)置外鍵
CONSTRAINT C_fk FOREIGN KEY (stu_id, course_id) REFERENCES student2(stu_id, course_id)
) Engine = InnoDB;
1.1.4 設(shè)置表的非空約束
非空性是指字段的值不能為空值 (NULL) 。非空約束將保證所有記錄中該字段都有值。如果用戶新插入的記錄中,該字段為空值,則數(shù)據(jù)庫(kù)系統(tǒng)會(huì)報(bào)錯(cuò)。例如,在 id 字段加上非空約束, id 字段的值就不能為空。如果插入記錄的 id 字段的值為空,該記錄將不能插入。設(shè)置表的非空約束是指在創(chuàng)建表時(shí)為表的某些特殊字段加上 NOT NULL 約束條件。設(shè)置非空約束的基本語(yǔ)法規(guī)則如下:
屬性名 數(shù)據(jù)類型 NOT NULL
1、首先打開(kāi)mysql命令行編輯器。
2、打開(kāi)之后輸入密碼,連接數(shù)據(jù)庫(kù)。
3、在命令行里先查看一下所有數(shù)據(jù)庫(kù),是否有想要操作數(shù)據(jù)庫(kù)。
4、接著輸入指令“use?sss”使用想要?jiǎng)?chuàng)建表的數(shù)據(jù)庫(kù)。
5、接下來(lái)在表里面輸入數(shù)據(jù)列,使用create命令創(chuàng)建表,括號(hào)內(nèi)是表的類目名。
6、最后,輸入指令“show tables?”,就可以剛剛查看在數(shù)據(jù)庫(kù)中創(chuàng)建的表了。
可執(zhí)行一個(gè)SQL語(yǔ)句或使用SQL事務(wù)管理器(SQL Enterprise Manager)來(lái)創(chuàng)建一個(gè)新表。
用SQL語(yǔ)句創(chuàng)建表:
用CREATE語(yǔ)句創(chuàng)建表,CREATE TABLE 表名稱(列名稱1 數(shù)據(jù)類型,列名稱2 數(shù)據(jù)類型,列名稱3 數(shù)據(jù)類型,......)
用SQL事務(wù)管理器(SQL Enterprise Manager)來(lái)創(chuàng)建表:
打開(kāi)軟件SQL事務(wù)管理器(SQL Enterprise Manager),點(diǎn)擊“連接”。
點(diǎn)擊左上方的“新建查詢”,則出現(xiàn)編寫代碼的窗口,在窗口中寫下代碼。
點(diǎn)擊左上方的紅色感嘆號(hào),執(zhí)行語(yǔ)句。
執(zhí)行語(yǔ)句。
選擇上方的“視圖”按鈕,右鍵點(diǎn)擊,選擇刷新,數(shù)據(jù)庫(kù)和表格建立完成。
1、打開(kāi)Navicat for MySQL,找到要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)中數(shù)據(jù)表
2、接著我們?cè)凇氨怼鄙厦鎲螕羰髽?biāo)右鍵,然后點(diǎn)擊“新建表”
3、然后,右邊就會(huì)出現(xiàn)設(shè)計(jì)表的界面,這里可以設(shè)置表的字段名,類型,長(zhǎng)度以及是否為null等
4、設(shè)計(jì)完數(shù)據(jù)表之后,點(diǎn)擊“保存”按鈕就OK了。
5、我們?cè)谄渲休斎氡砻忘c(diǎn)擊確定就可以了,表名可以根據(jù)自己的需求來(lái)設(shè)置
DROP?TABLE?IF?EXISTS?`user_info`;??
CREATE?TABLE?`user_info`?(??
`id`?int(11)?NOT?NULL?AUTO_INCREMENT,??
`name`?varchar(20)?NOT?NULL,??
`sex`?enum(F,M,S),??
`salary`?int(11)?DEFAULT?'0',??
`department`??varchar(30),??
PRIMARY?KEY?(`id`)??
)?ENGINE=MyISAM??DEFAULT?CHARSET=utf8;
注意:
(1)MyISAM類型不支持事務(wù)處理等高級(jí)處理,而InnoDB類型支持。?
(2)MyISAM?類型的表強(qiáng)調(diào)的是性能,其執(zhí)行數(shù)度比InnoDB類型更快,但是不提供事務(wù)支持。
(3)InnoDB?提供事務(wù)支持以及外鍵等高級(jí)數(shù)據(jù)庫(kù)功能。
因此在創(chuàng)建表的時(shí)候你可以根據(jù)不同的需求進(jìn)行engine的選擇