数据库基本语法
创建数据库
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET] <字符集名>
|[DEFAULT] COLLATE <校对规则名>]
语法说明
[ ]
内为可选项,{ }
为二选一。
- 数据库名:数据库名字
- IF NOT EXISTS:建数据库前判断有无创建的数据库,只有在该数据库不存在的时候才进行
CREATE DATABASE
创建操作。 - DEFAULT:指定默认值
- CHARACTER SET:指定数据库字符集
- COLLATE:指定字符集的校对规则
最简格式
CREATE DATABASE <数据库名>
打开数据库
创建了数据库之后,使用USE命令可指定当前数据库。
USE <数据库名>
在使用CREATE DATABASE
语句创建数据库之后,该数据库不会自动成为当前数据库,需要使用这条USE语句来指定。
修改数据库
ALTER {DATABASE|SCHEMA} <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>
|[DEFAULT] COLLATE <校对规则名>]
语法说明
[ ]
内为可选项,{ }
为二选一。
- DEFAULT:指定默认值
- CHARACTER SET:指定数据库字符集
- COLLATE:指定字符集的校对规则
删除数据库
用于删除已创建的数据库
DROP DATABASE [IF EXISTS] <数据库名>
语法说明
显示数据库
SHOW DATABASES
数据表基本语法
创建数据表
创建表
CREATE TABLE [IF NOT EXISTS] <表名>
(<列名> <数据类型> [NOT NULL|NULL] [DEFAULT 列默认值]…)
ENGINE=<存储引擎>
语法说明
IF NOT EXISTS
:在建表之前判断,只有在该表不存在时才执行创建表操作。此选项可避免出现表已经存在无法再新建的错误。- 表名:要创建表的表名。必须符合标志符规则,若有 MySQL 保留字,必须用单引号括住。
- 列名:表中列的名字。必须符合标志符规则,长度不能超过64个字符,具有唯一性,若有 MySQL 保留字,必须用单引号括住。
- 数据类型:列的数据类型,有的数据类型需要指明长度n,并用括号括起来。
NOT NULL|NULL
:指定该列是否允许为空。默认为NULL
。DEFAULT 列默认值
:为列指定默认值,默认值必须为一个常数,其中,BOLB 和 TEXT 列不能被赋予默认值。如果没有为列指定默认值,MySQL 会自动地分配一个。 若列可以取 NULL 值,默认值就是 NULL。如果列被声明为 NOT NULL,默认值取决于列类型。ENGINE=存储引擎
:MySQL 支持数个存储引擎作为对不同表的类型的处理器。使用时要用具体的存储引擎名称代替代码中的存储引擎,如 ENGINE=InnoDB。
管理数据表
修改数据表
修改表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>
示例:
use my_sql;
alter table tb_RENAME1 rename tb_RENAME2;
修改字段的数据类型
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
示例:
alter table tb_RENAME2 modify name varchar(30);
修改字段名
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>
其中,“旧字段名”指修改前的字段名;“新字段名”指修改后的字段名;“新数据类型”指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样即可,但数据类型不能为空。
示例:
alter table tb_RENAME2 change loc location VARCHAR(50);
添加字段
ALTER TABLE<表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在字段名];
“ FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段;
“AFTER”为可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面。
示例
- 添加无完整性约束性条件的字段
在数据表 tb_RENAME2 中添加一个没有完整性约束的 INT 类型的字段 managerIdalter table tb_RENAME2 add managerId int(10);
- 添加有完整性约束性条件的字段
在数据表 tb_RENAME2 中添加一个不能为空的 VARCHAR(12)类型的字段 column1alter table tb_RENAME2 add column1 varchar(12) not null;
- 在表的第一列添加一个字段
在数据表 tb_RENAME2 中添加一个int类型的字段 column2alter table tb_RANAME2 add column2 int(10) first;
- 在表的指定列之后添加一个字段
在数据表tb_RENAME2中name列后添加一个int类型的字段column3alter table tb_RENAME2 add column3 int(10) after name;
删除字段
ALER TABLE <表名> DROP <字段名>
修改字段的排列位置
ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>;
“字段1”指要修改位置的字段,“数据类型”指“字段1”的数据类型,
“ FIRST”为可选参数,指将“字段1”修改为表的第一个字段,
“ AFTER字段2”指将“字段1”插入到“字段2”后面。
示例
- 修改字段为表的第一个字段
将数据表tb_RENAME2中的column1字段修改为表的第一个字段alter table tb_RENAME2 modify column1 varchar(12) first;
- 修改字段到表的指定列之后
将数据表tb_RENAME2中的column1字段插入到location字段后面alter table tb_RENAME2 modify column1 varchar(12) after location;
更改表的存储引擎
MySQL支持的存储引擎
引擎名 | 是否支持 |
---|---|
FEDERATED | 否 |
MRG MYISAM | 是 |
MYISAM | 是 |
BLACKHOLE | 是 |
CSV | 是 |
MEMORY | 是 |
ARCHIVE | 是 |
InnoDB | 是 |
PERFORMANCE SCHEMA | 默认 |
ALTER TABLE <表名> engine=<新存储引擎名>
示例:
将数据表tb_RENAME2的存储引擎修改为MyISAM
alter table tb_RENAME2 engine=MyISAM;
删除表的外键约束
对于数据库中定义的外键,如果不再需要,可以将其删除。外键一旦删除,就会解除主表和从表间的关联关系。
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>
“外键约束名”指在定义表时CONSTRAINT关键字后面的参数
© 版权声明
THE END
暂无评论内容