要使用数据表,首先要指定某个数据库。
USE
USE database1;
创建数据表
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
);
查看数据表
SHOW TABLES
SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]
eg 查看MySQL中自带的表
SHOW TABLES FROM mysql;
查看数据表结构
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
- 主键约束
- 每张数据表只能存在一个主键
- 主键保证记录的唯一性
- 主键自动为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)
- 每张数据表可以存在多个唯一约束
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 '保密'
);