美文网首页mysql-DBA
DDL——数据定义语言

DDL——数据定义语言

作者: 静如止水yw | 来源:发表于2020-01-09 19:57 被阅读0次

1. 库

增
mysql> create database oldguo charset utf8mb4 collate utf8mb4_bin;
删
mysql> drop database oldguo;
改
mysql> alter database oldguo charset utf8mb4 collate utf8mb4_bin;
查(DQL)
mysql> show databases;
mysql> show create database oldguo;

建库使用规范

  • 库名要和业务有关
  • 库名不能有大写字母,可以有小写字符,数字,特殊符号.
  • 库名不能数字开头
  • 不能是预留字符
  • 不能超过18个字符
  • 必须要设置字符集,尽量是utf8mb4
  • 收回所有用户的drop权限

2. 表

mysql> create table t1(id int)
举例:建表规范
CREATE TABLE `xuesheng` (
  `xid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '学号',
  `xname` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '姓名',
  `xage` tinyint(3) unsigned NOT NULL DEFAULT '99' COMMENT '年龄',
  `xsex` char(1) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '性别',
  `xtel` char(14) COLLATE utf8mb4_bin NOT NULL COMMENT '手机号',
  `xcard` char(18) COLLATE utf8mb4_bin NOT NULL COMMENT '身份证号',
  `xaddr` enum('北京市','上海市','深圳市','山东省','甘肃省','河北省','山西省','河南省','辽宁省','吉林省','黑龙江省','内蒙古自治区','新疆维吾尔自治区','四川省','陕西省','江苏省','福建省','湖北省','广东省','广西省') COLLATE utf8mb4_bin NOT NULL DEFAULT '北京市' COMMENT '地区',
  `xdate` datetime DEFAULT NULL COMMENT '入学时间',
  PRIMARY KEY (`xid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ; 
说明:
 unsigned         -- 表示非负数
comment          -- 表示备注,注释的信息
auto_increment   -- 自动增加值,通常和主键搭配使用
collate          -- 表示字符串
commit           -- 表示提交
not null         -- 不允许为空值
datetime         -- 时间类型
primary key      -- 主键 等价于 唯一 (UNIQUE) 且 非空 (NOT NULL)

建表使用规范

  • 表名:不能大写字母,和业务有关,不能数字开头,长度控制在18字符以内,不能和关键字同名.
  • 要设置存储引擎类型: InnoDB,要设置字符集。
  • 合适的,完整的,简短的数据类型.(会影响到索引的性能)
  • 列名要有意义.
  • 每个表要有主键,如果不知道要怎么设置主键,也需要找一个无关的自增长列设置为主键
  • 尽量每个列都有not null(特别是将来要作为索引的列)
  • 每个列要有注释信息.

mysql> drop table teacher_bak;
mysql> truncate table teacher;
##drop table、truncate table、 delete table的区别?
# drop table: 表结构+数据(物理性删除)
# truncate table : 数据(清空数据页)
# delete table : 清空数据行(逐行删除)

alter table 
(1)添加列
mysql> desc xuesheng;
mysql> alter table xuesheng add xqq bigint not null unique commit 'qq号';
(2)删除列
mysql> alter table xuesheng drop xqq;
(3)修改
#1. 修改表名
alter table xuesheng rename to student;
(4)修改某一列的属性信息
mysql> desc student;
alter table student modify xname varchar(128) not null comment '姓名';
(5)修改列名和属性
alter table student change xsex xgengder char(2) not null default 'm' comment '性别';

#说明:
bigint    -- 取值范围(-2^31 至 2^31-1)
unique    -- 约束唯一标识数据库表中的每条记录
rename    -- 给表重命名
modify   -- 修改字符串或者数据的类型
change    --  改变名字或者列的属性

alter使用规范

  • 执行alter语句,都是需要进行锁表操作的,此时只能发生查询操作,不能做修改操作
  • 建议:alter语句,尽量在业务不繁忙期间发生。如果非得线上操作,建议使用pt-osc工具进行。

mysql> show tables;
mysql> show create database table;

相关文章

  • MySQL的DDL

    DDL(数据定义语言) DDL(Data Definition Language):数据定义语言,用来定义数据库对...

  • SQL语句

    SQL语句分类: DDL 数据定义语言DCL 数据控制语言DML 数据操作语言 1、DDL 数据定义语...

  • MySQL基础知识

    1. DDL 数据定义语言(DDL,Data Defintion Language)语句:数据定义语句,用于定义不...

  • 03.DDL定义语句

    DDL(Data Definition Language) DDL 数据定义语言,用来定义数据库和表结构 创建数据...

  • DDL,DML,DQL,DCL解释

    DDL(data definition language)。数据定义语言,定义数据结构,特别使数据库模式,ddl语...

  • sql语法

    SQL DML 和 DDL 数据操作语言 (DML) 和 数据定义语言 (DDL)。SQL (结构化查询语言)是用...

  • 数据库的四种语言

    SQL语言共分为四大类:数据定义语言DDL,数据操纵语言DML,数据控制语言DCL,数据查询语言DQL。DDL (...

  • Oracle中概念

    Oracle中 DDL、DML、DCL DDL(Data Definition Language,数据定义语言):...

  • 简单sql语句

    SQL 结构化查询语言 SQL语句分类DDL数据定义语言DML数据操纵语言DCL数据控制语言 1.DDL语句

  • 02-25 Mysql 基础语法

    -- sql 语法-- DDL(数据定义语言)-- DML(数据操作语言 )-- DCL(数据控制语言)-- --...

网友评论

    本文标题:DDL——数据定义语言

    本文链接:https://www.haomeiwen.com/subject/kvhuactx.html