4.SQL语句之DDL数据定义语言

2022-03-19 分类:mysql 阅读(362) 评论(0)

孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。

1.SQL介绍

1.简介

结构化查询语言,在RDBMS中通用的一类语言,符合SQL89 SQL92 SQL99等国际标准。

2.SQL种类

DDL: 数据定义语言
DCL: 数据控制语言
DML: 数据操作语言
DQL: 数据查询语言

2.DDL数据定义语言之库定义

1.增

mysql> CREATE DATABASE wordpress CHARSET utf8mb4;

2.查

#查询所有库
mysql> show databases;
#查询库的创建语句
mysql> show create database test;

3.删

mysql> drop database wordpress;

4.改

mysql> alter database wordpress charset utf8;

5.规范

1.禁止线上业务系统出现drop操作。
2.库名不能是大写字母,不能是关键字,不能是数字开头。
3.显式的设置字符集,必须设置charset

2.DDL数据定义语言之表定义

1.增

mysql> CREATE TABLE stu (
    -> id INT NOT NULL PRIMARY KEY auto_increment COMMENT '学号',
    -> sname VARCHAR(64) NOT NULL COMMENT '姓名',
    -> age TINYINT UNSIGNED NOT NULL DEFAULT 99 COMMENT '年龄',
    -> gender ENUM('M','F','N') NOT NULL DEFAULT 'N' COMMENT '性别',
    -> telnu CHAR(15) NOT NULL DEFAULT '0' COMMENT '手机号'
    -> )ENGINE=INNODB CHARSET=utf8mb4 COMMENT '学生表';

2.查

use test; && show tables; == show tables from mysql;查询所有表
desc student;==show columns from student;查看表的描述信息
show create table test.student;查看test库student表的创建命令

3.改

#在sname列之后添加列名b 数据类型为数字int 约束为非空
mysql> ALTER TABLE test.stu ADD b INT not null AFTER sname ;
#在最后一列添加addr列
ALTER TABLE stu ADD COLUMN addr VARCHAR(100) NOT NULL COMMENT '地址';
#在第一列添加c列
mysql> alter table test.stu add c int first;
###注意不建议往中间插和往第一列插,会造成阻塞,主要用于在最后列插入列,8.0之前的版本尽量不要在业务繁忙的时间做DDL的操作。
#修改sname列的属性
mysql> ALTER TABLE test.stu MODIFY sname VARCHAR(128) NOT NULL COMMENT 'xm';
注意,这个在业务繁忙期也不能随便改,也会造成阻塞,不论什么版本,都不要在业务繁忙时做
#修改sname列的名字为stusnane并修改属性
mysql> alter table test.stu change sname stusname varchar(64) not null COMMENT 'xm';

4.删

#删除列a
mysql> alter table test.stu drop a;
删除整个表
drop table test.stu;

5.规范

1.建表:表名小写,建议格式wp_user,不要出现数字开头和大写字母
2.显示的设置存储引擎\字符集\表的注释
3.列名要和业务有关系
4.列的数据类型,讲究:完整\简短\合适
5.每个表必须要有主键,而且尽量是自增的和业务无关列(例如数字列)
6.每个列尽量是非空的,而且设置默认值
7.每个列要有注释
8.变长列,选择varchar类型,定长列一般选择char。
9.大字段尽量不要在mysql数据库,可以选择以附件的形式,可以选择ES存储
10.对于Online-DDL,对于追加列可以online的,添加索引可以online(8.0)其他情况下,需要在数据库低谷时间点去做,如果很紧急,pt-osc或者gh-ost
11.禁止线上业务系统出现drop操作

评论已关闭

登录

忘记密码 ?

切换登录

注册

鲁ICP备2021019243号-1