要使用數(shù)據(jù)表,首先要指定某個數(shù)據(jù)庫。
USE
USE database1;
創(chuàng)建數(shù)據(jù)表
CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
...
);
eg
CREATE TABLE IF NOT EXISTS table_1(
username VARCHAR(20),
age TINYINT UNSIGNED,
salary FLOAT(8,2) UNSIGNED
);
查看數(shù)據(jù)表
SHOW TABLES
SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]
eg 查看MySQL中自帶的表
SHOW TABLES FROM mysql;
查看數(shù)據(jù)表結構
SHOW COLUMNS FROM tbl_name;
插入記錄
INSERT [INTO] tbl_name[(col_name, ...)] VALUES(val,...);
eg
INSERT table_1 VALUES('Tom', 25, 6000.00);
INSERT table_1(username, salary) VALUES('zhangsan', 4500.00);
查找
SELECT expr, ... FROM tbl_name;
eg
SELECT * FROM tb1;
空值與非空
- NULL
- NOT NULL
CREATE TABLE tb2(
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NULL
);
主鍵
- PRIMARY KEY
- 主鍵約束
- 每張數(shù)據(jù)表只能存在一個主鍵
- 主鍵保證記錄的唯一性
- 主鍵自動為NOT NULL
- 主鍵不一定和AUTO_INCREMENT一起使用
CREATE TABLE tb3(
id INT PRIMARY KEY,
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NULL
);
自動編號
- AUTO_INCREMENT
- 自動編號,且必須與主鍵組合使用
- 默認情況下,起始值為1,增量為1
CREATE TABLE tb3(
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NULL
);
唯一
- UNIQUE KEY
- 唯一約束
- 唯一約束可以保證記錄的唯一性
- 唯一約束的字段可以為空值(NULL)
- 每張數(shù)據(jù)表可以存在多個唯一約束
CREATE TABLE tb3(
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL,
email VARCHAR(50) NOT NULL UNIQUE KEY,
age TINYINT UNSIGNED NULL
);
默認值
- DEFAULT
- 當插入記錄時,如果沒有明確為字段賦值,則自動賦予默認值
CREATE TABLE table_3(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL UNIQUE KEY,
age TINYINT,
gendar ENUM('男','女','保密') DEFAULT '保密'
);