1. 数据库的创建(CREATE DATABASE语句)
例1:创建datatest数据库
CREATE DATABASE datatest;
注:数据库名称,表名及列名都要使用半角字符(英文字母,数字,符号)。
2. 表的创建(CREATE TABLE语句)
例2.创建订单明细表(order_info)
DROP TABLE IF EXISTS `order_info`;
CREATE TABLE `order_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
`consignee` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货人',
`consignee_tel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收件人电话',
`final_total_amount` decimal(16, 2) NULL DEFAULT NULL COMMENT '总金额',
`order_status` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单状态',
PRIMARY KEY (`id`) ;
)
注:
PRIMARY KEY ( id) :设置主键约束
NOT NULL:设置字段非空
COMMENT ‘订单状态’ :该字段的注释
2.1 命名规则
命名时只能使用半角英文字母,数字,下划线(_)作为数据库,表和列的名称,且需要以半角英文字母开头,虽然某些时候可能会遇到数字开头的,但这在标准SQL中是被禁止的。且在同一个数据库中不能创建两个相同名称的表,在同一个表中也不能创建两个相同名称的列。
2.2 数据类型的指定
所有的列必须指定的数据类型,数据类型表示数据的种类,包括数字型,字符型,日期型等,指定类型后不能存储与该列数据类型不符的数据。
数据类型的种类很多,各个RDBMS之间也存在很大差异,根据业务需要创建数据库时要根据不同的RDBMS选择不同的数据类型。
2.2.1 INTEGER型
用来指定存储整数列的数据类型(数字型),不能存储小数
2.2.2 CHAR型
CHAR是CHARACTER(字符)的缩写,用来指定存储字符串的列的数据类型。可以像CHAR(10)和CHAR(200)这样指定字符串的最大长度。
字符串定长字符串形式存储在被指定为CHAR类型的列中,所谓定长字符串即列中存储的字符串长度达不到最长长度时会用空格补到最大长度。例如在CHAR(8)类型的列中存储’abc’时,会以abc后面跟上五个空格的形式存储。
2.2.3 VARCHAR
和CHAR类型一样,也是指定存储字符串的列的数据类型,也可以用括号指定最大长度,例如VARCHAR(20),不同之处在于VARCHAR是以变长字符串的形式存储的,以VARCHAR(8)存储’abc’时,存储的就是’abc’字符串本身。
2.2.4 DATE型
用来指定存储日期(年月日)的列的数据类型(日期型)。
2.3 约束的设置
order_info表中有NOT NULL和PRIMARY KEY (id
) 两种约束,分别为非空与主键约束。
某列加上NOT NULL非空约束后,该列即被设置不能输入空白,也就是必须输入数据的约束,如果不输入任何数据就会报错。
PRIMARY KEY (id
) 是主键约束,主键约束即可以唯一标识数据库表中的每条记录的字段。主键列不能包含 NULL 值。 每个表都应该有一个主键,并且每个表只能有一个主键。
3. 表的删除(DROP TABLE语句)
例3:删除order_info表
DROP TABLE order_info;
通过该方法删除的表无法恢复,只能重新创建并插入数据。
4. 表定义的更新(ALTER TABLE语句)
4.1 添加列
-- 基本语法:
ALTER TABLE order_info ADD COLUMN (<列名1>,<列名2>,……);
-- 例:向order_info表中插入province_id并设置数据类型为最大长度是100的变长字符串
ALTER TABLE order_info ADD COLUMN province_id VARCHAR(100);
4.2 删除列
-- 基本语法:
ALTER TABLE order_info ADD COLUMN (<列名1>,<列名2>,……);
-- 例:删除province_id列
ALTER TABLE order_info DROP COLUMN province_id;
5. 向order_info表中插入数据
-- 列与值的数量必须对应
INSERT INTO order_info (<列1>,<列2>,<列3>,……)(<值1>,<值2>,<值3>,……);
6. 变更表名(MySQL)
-- 例:将order_info表名称改为order
RENAME TABLE order_info to order;