关于mysql:mysqlDDL数据定义语言

57次阅读

共计 2593 个字符,预计需要花费 7 分钟才能阅读完成。

文章首发地址

数据库的创立应用

  • 间接创立数据库

    create database community;
  • 查看以后在哪个库里边

    select database();
  • 进入库的操作

    use community;
  • 判断是否存在, 如果不存在则创立数据库

    create database if not exists community;    
  • 创立数据库并指定字符集为 utf-8

    create database community default character set utf-8;  
  • 查看某个库是什么字符集

    show create database community;
  • 查看以后 mysql 应用的字符集

    show variables like 'character%';

mysql 创立表罕用 de 数据类型

  • mysql 常见数据类型

    <1> 整数型
       类型      大小      范畴(有符号)范畴(无符号 unsigned)用处
       TINYINT   1 字节    (-128,127)                (0,255)                 小整数值
       SMALLINT  2 字节    (-32768,32767)            (0,65535)               大整数值
       MEDIUMINT 3 字节    (-8388608,8388607)        (0,16777215)            大整数值
       INT       4 字节    (-2147483648,2147483647)  (0,4294967295)          大整数值
       BIGINT    8 字节()(0,2 的 64 次方减 1)        极大整数值
    ​
    <2> 浮点型
     FLOAT(m,d)4 字节    单精度浮点型  备注:m 代表总个数,d 代表小数位个数
     DOUBLE(m,d)8 字节    双精度浮点型  备注:m 代表总个数,d 代表小数位个数
     
     <3> 定点型
     DECIMAL(m,d)依赖于 M 和 D 的值    备注:m 代表总个数,d 代表小数位个数
     
     <4> 字符串类型 
     类型          大小              用处
     CHAR          0-255 字节         定长字符串
     VARCHAR       0-65535 字节       变长字符串
     TINYTEXT      0-255 字节         短文本字符串
     TEXT          0-65535 字节       长文本数据
     MEDIUMTEXT    0-16777215 字节    中等长度文本数据
     LONGTEXT      0-4294967295 字节  极大文本数据
     
     char 的优缺点:存取速度比 varchar 更快,然而比 varchar 更占用空间
     varchar 的优缺点:比 char 省空间。然而存取速度没有 char 快
     
     <5> 工夫型
     数据类型    字节数            格局                    备注
     date        3                yyyy-MM-dd              存储日期值
     time        3                HH:mm:ss                存储时分秒
     year        1                yyyy                    存储年
     datetime    8                yyyy-MM-dd HH:mm:ss     存储日期 + 工夫
     timestamp   4                yyyy-MM-dd HH:mm:ss     存储日期 + 工夫,可作工夫戳 

mysql 创立表

  • 语法

    CREATE TABLE 表名 (字段名 字段类型 约束条件 阐明);
  • 约束条件

    comment         ---- 阐明解释
    not null        ---- 不为空
    default         ---- 默认值
    unsigned        ---- 无符号(即负数)auto_increment  ---- 自增
    zerofill        ---- 主动填充
    unique key      ---- 惟一值 
  • 创立 sql

    CREATE TABLE `interview` (`id` int(10) NOT NULL AUTO_INCREMENT,
    `title` varchar(128) DEFAULT NULL COMMENT '文章题目',
    `content` text COMMENT '文章内容',
    `html_content` varchar(128) DEFAULT NULL,
    `blog_img` varchar(128) DEFAULT NULL COMMENT '主动配图链接',
    `author_id` int(10) DEFAULT NULL COMMENT '作者 id',
    `author_name` varchar(32) DEFAULT NULL COMMENT '作者昵称',
    `tag` int(3) DEFAULT NULL COMMENT '分类 id',
    `type` int(2) DEFAULT '0' COMMENT '0: 失常,1: 置顶',
    `status` int(2) DEFAULT '0' COMMENT '0: 失常,1: 精髓',
    `comment_count` int(11) DEFAULT '0',
    `score` double DEFAULT '0',
    `created` datetime DEFAULT NULL COMMENT '文章创立工夫',
    `updated` datetime DEFAULT NULL COMMENT '文章更新工夫',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  • 创立一张与 post 表构造一样的表

    create table 新表名 as select * from post where 1=2;
  • 创立一张与 post 表数据和构造一样的表

    create table 新表名 as select * from post where 1=1;
    create table 新表名 like post;

查看表的根本构造信息

  • 查看数据库中的所有表

    show tables;

  • 查看表构造

    desc post;

  • 查看创立表的 sql 语句

    show create table post;
  • \G : 有完结 sql 语句的作用并把显示的数据纵向旋转 90 度

    show create table post \G

表构造的批改

  • 批改表名

    rename table post to discuss_post;
  • 增加列

     给表增加一列:
    alter table post add type varchar(2) comment '类型';
    给表最后面增加一列:
    alter table post add cate varchar(10) first;
    给表某个字段后增加一列:
    alter table post add authorName varchar(32) comment '作者昵称'  after id;
  • 批改列类型

    alter table post modify authorName varchar(64);
  • 批改列名

     语法:alter table 表名 change 旧列名 新列名 类型;
    alter table user change authorName author_name varchar(64);
  • 删除列

    alter table 表名 drop 列名;
    alter table user drop author_name;
  • 批改字符集

    alter table 表名 character set 字符集;
    alter table post character  set GBK;
  • mysql 表的删除

    drop table 表名;drop table post;

正文完
 0