MySQL之進(jìn)化篇
MySQL之實(shí)用篇
拿去用,不謝!
MySQL 基礎(chǔ)知識
- MySQL默認(rèn)的端口號是3306
- MySQL中的超級用戶是root
- 創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE
- 修改數(shù)據(jù)庫 ALTER DATABASE
- 刪除數(shù)據(jù)庫 DROP DATABASE
MySQL的數(shù)據(jù)類型
整形
數(shù)據(jù)類型 | 存儲范圍 | 所占字節(jié) |
---|---|---|
TINYINT | 有符號值:-128到127 無符號值:0到255 | 1 |
SMALLINT | 有符號值:-32768到32767 無符號值:0到65535 | 2 |
MEDIUMINT | 有符號值:-2147483648到2147483647 無符號值:0到16777215 | 3 |
INT | 有符號值:-8388608到8388607 無符號值:0到4294967295 | 4 |
BIGINT | 有符號值:-9223372036854775808到9223372036854775807 無符號值:0到18446744073709551615 | 8 |
簡單的sql
約束
約束的類型包括:
- NOT NULL (非空約束)
- PRIMARY KEY (主鍵約束)
- UNIQUE KEY (唯一約束)
- DEFAULT (默認(rèn)約束)
- FOREIGN KEY (外鍵約束)
創(chuàng)建表
CREATE TABLE IF NOT EXISTS table_name (cloum_name data_type,...)
for example:
CREATE TABLE IF NOT EXISTS zwbTable (userId INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,userName TEXT NOT NULL, age TINYINT UNSIGNED UNIQUE KEY,salary Float(8,2) UNSIGNED DEFAULT 100)
- PRIMARY KEY 主鍵
注意:每張表只能有一個(gè)主鍵,主鍵保證唯一性,主鍵自動(dòng)為NOT NULL
- AUTO_INCREMENT 自動(dòng)編號 保證數(shù)據(jù)的唯一性,不會出現(xiàn)重復(fù)的記錄,默認(rèn)起始值為1,每次的增量為1
注意: AUTO_INCREMENT 必須和 PRIMARY KEY 主鍵 一起使用
- UNIQUE KEY 唯一約束 唯一約束可以保證記錄的唯一性,可以為空 NULL , 每張表可以存在多個(gè)唯一約束
- FLOAT(M,D) M是數(shù)字的總位數(shù),D為小數(shù)點(diǎn)后面的位數(shù)
- UNSIGNED 無符號值
- DEFAULT 設(shè)置默認(rèn)值
插入數(shù)據(jù)
INSERT INTO table_name (colum_name,...) VALUES(val,...)
for example:
INSERT INTO zwbTable(userName,age)VALUES('zwb',20)
數(shù)據(jù)庫查詢
SELECT expr,... FROM tableName
for example:
SELECT * FROM zwbTabel
外鍵連接
CREATE TABLE provinces(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20) NOT NULL)
CREATE TABLE users(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL,pid SMALLINT UNSIGNED,FOREIGN KEY(pid) REFERENCES provinces (id))
注意:
- CASCADE(英文串聯(lián)的意思) :從父表刪除或更新且自動(dòng)刪除或更新子表中的匹配的行
- SET NULL: 從父表刪除或更新行,并設(shè)置子表中的外鍵列為NULL. 如果使用該選項(xiàng),必須保證子表列沒有指定NOT NULL.
- RESTRICT :拒絕對父表的刪除或更新操作
- NO ACTION : 標(biāo)準(zhǔn)SQL的關(guān)鍵字,在MySQL中與RESTRICT相同
修改數(shù)據(jù)表
-
添加單列
ALTER TABLE table_name ADD [COLUMN] column_name [FIRST | AFTER column_name]
for example:
ALTER TABLE zwbTabel ADD sex TEXT NOT NULL AFTER username
-
添加多列
ALTER TABLE zwbTabel ADD (lala TEXT NOT NULL , haha TEXT NOT NULL)
-
刪除列
ALTER TABLE table_name DROP column_name
for example:
ALTER TABLE zwbTabel DROP age
-
刪除多列
ALTER TABLE zwbTabel DROP lala, DROP haha
-
添加主鍵約束
ALTER TABLE ADD table_name ADD [CONSTRAINT[symbol]] PARMARY KEY (cloumn_name)
for example:
ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id)
-
添加唯一約束
ALTER TABLE table_name ADD CONSTRAINT[symbol]] UNIQUE KEY
for example:
ALTER TABLE users2 ADD UNIQUE KEY (pid)
-
添加外鍵約束
ALTER TABLE ADD table_name ADD CONSTRAINT[symbol]] FOREIGN KEY (column_name) REFERENCE_DEFINITION
for example:
ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id)
刪除約束
-
刪除主鍵約束
ALTER TABLE DROP PRIMARY KEY
-
刪除唯一約束
ALTER TABLE table_name DROP {INDEX|KEY} id
for example:
ALTER TABLE users DROP KEY id
-
刪除外鍵約束
ALTER TABLE table_name DROP FOREIGN KEY fk_symbol
注意: fk_symbol 是外鍵約束的名字
for example:
ALTER TABLE users2 DROP FOREIGN KEY PK_users2_id