数据表的基本操作
- 创建数据库,SQL语句如下:
mysql> CREATE DATABASE test_db;
- 选择创建表的数据库,SQL语句如下:
mysql> USE text_db;
- 创建tb_empl 表,SQL语句如下:
mysql> CREATE TABLE tb_empl
mysql> (
mysql> id INT(11),
mysql> name VARCHAR(25),
mysql> deptId INT(11),
mysql> salary FLOAT
);
4.查看数据表是否创建成功,SQL语句如下:
mysql> SHOW TABLES;
主键约束
1.单字段主键
主键由一个字段组成,SQL语句格式分为以下两种情况:
(1).在定义列的同时指定主键,语法规则如下:
字段名 数据类型 PRIMARY KEY[默认值];
mysql> CREATE TABLE tb_empl2
mysql> (
mysql> id INT(11)PRIMARY KEY,
mysql> name VARCHAR(25),
mysql> deptId INT(11),
mysql> salary FLOAT
);
(2).在定义完所有列之后指定主键,语法规则如下:
[CONSTRAINT<约束名>] PRIMARY KEY [字段名]
mysql> CREATE TABLE tb_empl3
mysql> (
mysql> id INT(11),
mysql> name VARCHAR(25),
mysql> deptId INT(11),
mysql> salary FLOAT,
mysql> PRIMARY KEY (id)
);
2.主键由多个字段联合组成,语法规则如下:
PRIMARY KEY[字段1,字段2,...字段n]
mysql> CREATE TABLE tb_empl4
mysql> (
mysql> name VARCHAR(25),
mysql> deptId INT(11),
mysql> salary FLOAT,
mysql> PRIMARY KEY(name,deptId)
);
外键约束
创建外键的语法规则如下:
[CONSTRAINT <主键名>] FOREIGN KEY 字段名1[,字段名2,...]
REFERENCES<主表名>主键列1 [,主键列2,...]
创建一个部门表tb_dept1,SQL语句如下:
mysql> CREATE TABLE tb_dept1
mysql> (
mysql> id INT(11) PRIMARY KEY,
mysql> name VARCHAR(22) NOT NULL,
mysql> location VARCHAR(50)
mysql> );
定义一个tb_emp5,让他的键deptId作为外键关联到tb_dept1的主键id,SQL语句如下:
mysql> CREATE TABLE tb_empl5
mysql> (
mysql> id INT(11)PRIMARY KEY,
mysql> name VARCHAR(25),
mysql> deptId INT(11),
mysql> salary FLOAT,
mysql> CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_deptId(id)
);
使用非空约束
非空约束的语法规则如下:
字段名 数据类型 not null
定义数据表tb_emp6,指定员工的名称不能为空,SQL语句如下:
mysql> CREATE TABLE tb_emp6
mysql> (
mysql> id INT(11) PRIMARY KEY,
mysql> name VARCHAR(22) NOT NULL,
mysql> deptId INT(11),
mysql> salary FLOAT
mysql> );
唯一性约束
在定义完列之后直接指定唯一约束,语法规则如下:
字段名 数据类型 UNIQUE
定义数据表tb_dept2,指定部门的名称唯一约束,语法规则如下:
mysql> CREATE TABLE tb_dept2
mysql> (
mysql> id INT(11) PRIMARY KEY,
mysql> name VARCHAR(22) UNIQUE,
mysql> location VARCHAR(50)
mysql> );
默认约束
默认约束的语句规则如下:
字段名 数据类型 DEFAULT 默认值
定义数据表tb_emp7,指定员工的部门编号默认为1111,SQL语句如下:
mysql> CREATE TABLE tb_emp7
mysql> (
mysql> id INT(11) PRIMARY KEY,
mysql> name VARCHAR(25) NOT NULL,
mysql> deptId INT(11)DEFAULT 1111,
mysql> salary FLOAT
mysql> );
设置表的属性值自动增加
设置表的属性值自动增加的语法规则如下:
字段名 数据类型 AUTO_INCREMENT
定义数据表tb_emp8,指定员工的编号自动递增,SQL语句如下:
mysql> CREATE TABLE tb_emp8
mysql> (
mysql> id INT(11) PRIMARY KEY AUTO_INCREMENT,
mysql> name VARCHAR(25) NOT NULL,
mysql> deptId INT(11),
mysql> salary FLOAT
mysql> );