1.库的管理
创建库
create database [if not exists] 库名;
更改库的字符集
alter database 库名 character set [gbk/utf-8];
删除库
drop database [if exists] 库名;
2.表的管理
① 创建
create table 表名(
列名 列的类型[(长度) 约束],
列名 列的类型[(长度) 约束],
…
列名 列的类型[(长度) 约束]
)
②修改
alter table 表名 add|drop|modify|change column 列名 [列类型 约束];
- 修改列名
alter table 表名 change column 原列名 新列名 列类型;
- 修改列的类型或约束
alter table 表名 modify colum 列名 类型;
- 添加新列
alter table 表名 add column 列名 类型;
- 删除列
alter table 表名 drop column 列名;
- 修改表名
alter table 表名 rename to 新表名;
③删除
drop table 表名;
④ 复制
- 仅复制表结构
create table 表名 like 要复制表结构的表名
- 表结构+内容都复制
create table 表名 select * from 要复制的表的表名
- 只复制部分数据
create table 表名
select 列名1,列名2…
from 要复制表的表名
where …
3.常见约束
含义: 用于限制表中的数据,为了保证表中数据的准确和可靠性。
分类:六大约束
NOT NULL: 非空,用于保证该字段的值不能为空。
DEFAULT: 默认,用于保证该字段有默认值。
PRIMARY KEY: 主键,用于保证该字段的值有唯一性,且不为空。
UNIQUE: 唯一,用于保证该字段的值有唯一性,且可以为空。
CHECK: 检查约束(mysql中不支持)。
FOREIGN KEY: 外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值。在从表添加外键约束,用于引用主表中某列的值。
- 列级约束
CREATE TABLE stuinfo(
id INT PRIMARY KEY,
stuName VARCHAR(20) NOT NULL,
gender CHAR CHECK(gender='男' OR gender='女'),
seat INT UNIQUE,
age INT DEFAULT 18,
majorId INT REFERENCES major(id)
);
- 表级约束
CREATE TABLE stuinfo(
id INT,
stuName VARCHAR(20),
gender CHAR,
seat INT,
age INT,
majorId INT,
CONSTRAINT pk PRIMARY KEY(id),
CONSTRAINT ck CHECK(gender='男' OR gender='女'),
CONSTRAINT uq UNIQUE(seat),
CONSTRAINT fk FOREIGN KEY(majorId) REFERENCES major(id)
);
- 表级约束与列级约束区别
| 位置 | 支持的约束类型 | 是否可以起约束名 |
---|
表级约束 | 列名的后面 | 语法都支持(外键没有效果) | 不可以 |
列级约束 | 所有列的下面 | 默认、非空不支持,其他支持 | 可以(主键没有效果) |
4.自增长列(标识列)
含义: 可以不用手动插入值,系统提供默认序列值(从1开始)。
- 查看自增长步长
SHOW VARIABLES LIKE '%auto_increment%';
- 设置自增长步长
SET auto_increment_increment=5;
创建表时设置自增长列
CREATE TABLE tab_identity(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);
修改表时设置自增长列
ALTER TABLE 表名 MODIFY COLUMN 列名 INT AUTO_INCREMENT;
ALTER TABLE 表名 MODIFY COLUMN 列名 INT;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)