跟着项目学sql(三) DDL

在根据设计文档创建NewsDB数据库的过程中,我们用到了DDL。

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的连接,以及施加表间的约束。

语法格式:CREATE DATABASE - 创建新数据库

主要的DDL动词:

  CREATE(创建)、DROP(删除)、ALTER(修改)、TRUNCATE(截断)、RENAME(重命名)

主要的DDL对象:

  DATABASE(数据库)、TABLE(表)、VIEW(视图)

  INDEX(索引)、PROCEDURE(存储过程)、TRIGGER(触发器)、FUNCTION(函数)

我们通过创建一个测试库,通过创建permission表来快速熟悉常见的DDL语句:

 

表名:权限表(permission)

序号名称数据类型长度小数位允许空值主键默认值说明
1idvarchar(45)450NY 主键
2namevarchar(45)450Y  权限名称
3orderbyint100Y 0排序
4create_timedatetime230Y CURRENT_TIMESTAMP

 1)创建测试库test1

create database test1; 

2)创建权限表permission

CREATE TABLE `permissions` (
  `id` varchar(45) NOT NULL COMMENT '主键',
  `namey` varchar(45) NOT NULL COMMENT '权限名称',
  `namez` varchar(45) NOT NULL COMMENT '权限名称',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`namey`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限表';

3)这里发现表名多了一个s,修改表名permissions => permission

ALTER TABLE `permissions` RENAME TO  `permission`;

4)字段name多了一个y,namey=>name

ALTER TABLE `permission` 
CHANGE COLUMN `namey` `name` VARCHAR(45) NOT NULL DEFAULT '名称' ;

5)删除列namez

ALTER TABLE `permission` DROP COLUMN `namez`;

6)主键列错了,name=》id,mysql中第一步是把字段设置成not null,然后再去删除原主键,添加新主键。

即在mysql中只有非空字段才能设为主键。

ALTER TABLE `permission` 
CHANGE COLUMN `id` `id` VARCHAR(45) NOT NULL DEFAULT NULL COMMENT '主键' ,
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);

7)缺少排序字段orderby,添加列orderby,并置于name列之后

ALTER TABLE `permission` 
ADD COLUMN `orderby` INT NULL DEFAULT 0 AFTER `name`;

8)给orderby字段添加注释

ALTER TABLE `docker_mysql`.`permission` 
CHANGE COLUMN `orderby` `orderby` INT(11) NULL DEFAULT '0' COMMENT '排序' ;

批量插入5条测试数据

INSERT INTO `permission`
(`id`,`name`)
VALUES
('001','权限1'),
('002','权限2'),
('003','权限3'),
('004','权限4'),
('005','权限5');

9)创建视图,

CREATE VIEW v_permission
 AS SELECT id,name from permission

10)清空表

TRUNCATE `permission`;

11)删除表

DROP TABLE `permission`;

12)删除测试库

 drop database test1;

现在基本的语句都已经掌握了,在测试服务器中,创建NewsDB。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值