SQL语言分为4类:
1️⃣DDL:(data definition language,数据定义语言):在数据库系统中,每一个数据库、数据库中的表、视图和索引等都是数据库对象。要建立和和删除一个数据库对象,都可以通过DDL语言来完成。DDL包括create、alter、drop。
2️⃣DML(data manipulation language,数据操纵语言):DML是用来添加、修改和删除数据库中数据的语句,包括insert、delete、update等。
3️⃣DQL(data query language,数据查询语言):查询是数据库的基本功能,查询操作通过DQL语言来实现。包括:select。
4️⃣DCL(data control language,数据控制语言):DCL包括数据库对象的权限管理和事务管理等。
本文档记录DDL语言部分
1、建立数据库
create database 数据库名字;
2、建立基本表
create table 表名 (
列名 数据类型,
...
完整性约束,
...
);
-- 给表加备注信息
alter table 表名 comment '表名备注';
例如:"`"符号可以消除歧义,是一个好习惯。
-- full_reduce_activity: table
CREATE TABLE `full_reduce_activity` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`active_name` varchar(50) NOT NULL DEFAULT '' COMMENT '活动名称',
`member` int(1) NOT NULL DEFAULT '0' COMMENT '会员专享:1全部2会员',
`new_user` int(1) NOT NULL DEFAULT '0' COMMENT '新客专享:1全部2新人',
`active_start_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '活动开始时间',
`active_end_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '活动结束时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`create_user` varchar(50) NOT NULL DEFAULT '' COMMENT '创建人',
`update_user` varchar(50) NOT NULL DEFAULT '' COMMENT '修改人',
`del_status` int(1) NOT NULL DEFAULT '0' COMMENT '状态0生效1删除',
PRIMARY KEY (`id`),
KEY `idx_active_start_time` (`active_start_time`),
KEY `idx_active_end_time` (`active_end_time`)
) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=utf8mb4 COMMENT='20180925 宫宁刚 满减活动';
特殊用法:从一个表复制到另一个表
create table full_reduce_activity_back as
select * from full_reduce_activity;
3、修改基本表结构
基本表创建完成后,可以根据需要添加列、修改列 或删除列;
1️⃣增加列
alter table 表名 add 列名 类型;
2️⃣修改一个列:
alter table 表名 modify column 列名 新类型;
例如:
-- 添加一列
alter table product_promotion add batch_no int(11) not null default 0;
-- 添加索引
ALTER TABLE `product_promotion` ADD INDEX idx_batch_no (`batch_no`);
-- 修改列的备注
alter table product_promotion modify column batch_no int(11) not null default 0 comment '通过excel批量上传的批次号';
--增加2个索引
ALTER TABLE `active_promotion` ADD INDEX idx_active_id (`active_id`),ADD INDEX idx_promotion_id (`promotion_id`);
3️⃣删除一个列:
alter table 表名 drop column 列名;
4、删除基本表
drop table 表名;
例如:
drop table full_reduce_sku; --删除满减活动表
注意:
delete from full_reduce_sku; --删表中的全部数据,如果删部分数据加where语句
5、索引的添加、删除
这一部分日后总结。