欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL中的DDL

程序员文章站 2024-03-21 09:16:41
...

DDL数据定义语言

操作对象:数据库、表

建库

MySQL中的DDL

CREATE DATABASE `DDL_test`CHARACTER SET utf8 COLLATE utf8_general_ci; 
  • 说明:
  • 字符集一般选utf8
  • 排序规则:
    * utf8_general_ci 不区分大小写,速度快,一般选这个
    * utf8_bin 区分大小写,精度高
    MySQL中的DDL
SHOW DATABASES; -- 查看数据库
USE `ddl_test`; -- 使用数据库

注意这里的数据库名称使用了反引号

建表

MySQL中的DDL

CREATE TABLE `ddl_test`.`student` ( `StudentNo` INT(10) NOT NULL AUTO_INCREMENT COMMENT '学号', 
`StudentName` VARCHAR(100) NOT NULL COMMENT '学生姓名', 
`StudentAge` INT(3) NOT NULL COMMENT '学生年龄', 
PRIMARY KEY (`StudentNo`) ) 
ENGINE=INNODB CHARSET=utf8;

查看表的状况

DESCRIBE `ddl_test`.`student`; 
-- DESC `ddl_test`.`student`; 也是可以的

SQLyog中
MySQL中的DDL
命令行中
MySQL中的DDL
定义字段

数据类型:

常用

  • 数值类型
    int 4bytes
  • 字符串类型
    varchar 0~65535bytes
    text 0-65 535 bytes
  • 日期和时间类型
    DATETIME 8 bytes YYYY-MM-DD HH:MM:SS
    TIMESTAMP 4 bytes
字段属性

MySQL中的DDL

  • UnSigned
    无符号的,声明该数据列不允许负数 .

  • ZEROFILL
    0填充的
    不足位数的用0来填充 , 如int(3),5则为005

  • Auto_InCrement
    自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认),通常用于设置主键 , 且为整数类型,可定义起始值和步长
    当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表
    SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

  • NULL 和 NOT NULL
    默认为NULL , 即没有插入该列的数值
    如果设置为NOT NULL , 则该列必须有值

  • DEFAULT
    默认的
    用于设置默认值

删表/库
DROP TABLE IF EXISTS `student`;

MySQL中的DDL

DROP DATABASE IF EXISTS `sss`;

MySQL中的DDL

备忘录

阿里数据库规范

-- 每张表的固定字段
id			-- 主键
`version`	-- 乐观锁
is_delete	-- 伪删除
gmt_create	-- 创建时间
gmt_update	-- 修改时间
相关标签: mysql