跟着项目学sql(三) DDL

版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址: https://blog.csdn.net/m0_37057454/article/details/82560434

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

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

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

主要的DDL动词:

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

主要的DDL对象:

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

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

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

表名:权限表(permission)

序号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明
1 id varchar(45) 45 0 N Y   主键
2 name varchar(45) 45 0 Y     权限名称
3 orderby int 10 0 Y   0 排序
4 create_time datetime 23 0 Y   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。

猜你喜欢

转载自blog.csdn.net/m0_37057454/article/details/82560434
DDL