「mysql」DDL数据定义语言

【「mysql」DDL数据定义语言】文章首发地址
数据库的创建使用

  • 直接创建数据库
    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」DDL数据定义语言
    文章图片

mysql创建表常用de数据类型
  • mysql常见数据类型
    <1>整数型 类型大小范围(有符号)范围(无符号unsigned)用途 TINYINT1 字节(-128,127)(0,255)小整数值 SMALLINT2 字节(-32768,32767)(0,65535)大整数值 MEDIUMINT 3 字节(-8388608,8388607)(0,16777215)大整数值 INT4 字节(-2147483648,2147483647)(0,4294967295)大整数值 BIGINT8 字节()(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>字符串类型 类型大小用途 CHAR0-255字节定长字符串 VARCHAR0-65535字节变长字符串 TINYTEXT0-255字节短文本字符串 TEXT0-65535字节长文本数据 MEDIUMTEXT0-16777215字节中等长度文本数据 LONGTEXT0-4294967295字节极大文本数据 char的优缺点:存取速度比varchar更快,但是比varchar更占用空间 varchar的优缺点:比char省空间。但是存取速度没有char快 <5>时间型 数据类型字节数格式备注 date3yyyy-MM-dd存储日期值 time3HH:mm:ss存储时分秒 year1yyyy存储年 datetime8yyyy-MM-dd HH:mm:ss存储日期+时间 timestamp4yyyy-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;

    「mysql」DDL数据定义语言
    文章图片

  • 查看表结构
    desc post;

    「mysql」DDL数据定义语言
    文章图片

  • 查看创建表的sql语句
    show create table post;

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

    「mysql」DDL数据定义语言
    文章图片

表结构的修改
  • 修改表名
    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 characterset GBK;

  • mysql表的删除
    drop table 表名; drop table post;

    推荐阅读