MySQL——2.DDL

DDL------------------------------------------------------------------------------------------------

操作数据库:

  • 显示已有的数据库:show databases [LIKE wild];

     

  • 显示当前选择的数据库:SELECT DATABASE();

     

  • 选择要使用的数据库:use 库名

     

  • 创建数据库:create database [if not exists] 库名;

    创建数据库,例如:CREATE DATABASE mydb1,创建一个名为mydb1的数据库。如果这个数据已经存在,那么会报错。例如CREATE DATABASE IF NOT EXISTS mydb1,在名为mydb1的数据库不存在时创建该库,这样可以避免报错。

     

  • 删除数据库:drop database [if exists] 库名;

    删除数据库,例如:DROP DATABASE mydb1,删除名为mydb1的数据库。如果这个数据库不存在,那么会报错。DROP DATABASE IF EXISTS mydb1,就算mydb1不存在,也不会的报错。

     

  • 修改数据库编码:alter database 库名 character set 编码;

    例如:ALTER DATABASE mydb1 CHARACTER SET utf8修改数据库mydb1的编码为utf8。注意,在MySQL中所有的

    UTF-8编码都不能使用中间的“-”,即UTF-8要书写为UTF8

     

     

    MySQL数据类型:

  • Number类型:

    整型:[UNSIGNED] [ZEROFILL]

    tinyint(m) 1个字节

    smallint(m) 2个字节

    mediumint(m) 3个字节

    int(m) 4个字节

    bigint(m) 8个字节

    整数类型拥有额外的选项unsigned。无符号,正数值范围翻倍。

    (可以为整型类型指定宽度,但不会限制值得合法取值范围,对于存储和计算来说,int(1)int(20)是相同的)

    可以引入 zerofill函数,例如int(4) unsigned zerofill,插入值1时,显示值0001,插入值55555时,显示值

    55555,插入-1时,提示操作错误。补0显示在cmd命令行生效,其他工具有可能不生效。

    m的缺省值为每种类型的“最长”值得长度

    浮点型:[ZEROFILL]

    float(m,d) 4个字节 m个总位数,d个小数位

    double(m,d) 8个字节 m个总位数,d个小数位

    定点型:[ZEROFILL]

    decimal(m,d) m+2字节,m<65是总个数,d<30d<m是小数位 简写dec

    numeric(m,d) m+2字节

    浮点型在数据库中存放的是近似值,而定点型在数据中存放的是精确值。浮点型在存储同样范围的值时,通常比decimal使用更少的空间。

     

  • Text类型:

    字符串类型:[BINARY]

    char(n) 固定长度,最多28-1个字符,255 character

    varchar(n) 可变长度,最多28-1个字符,255 character varying

    字符串类型在排序和比较时不区分大小写,除非给出BINARY关键词。

    Text类型:

    tinytext 可变长度,最多28-1个字符,255

    text 可变长度,最多216-1个字符,65535

    mediumtext 可变长度,最多224-1个字符,16777215

    longtext 可变长度,最多232-1个字符,4294967295

    BLOB类型:

    tinyblob

    blob

    mediumblob

    longblob

    BLOBTEXT类型之间的唯一差别是对BLOB值得排序和比较以大小写敏感方式执行,而对TEXT值是大小写不敏感的。换句话说,一个TEXT是一个大小写不敏感的BLOB

    BLOBTEXT列不能有DEFAULT值。

    其他:

    enum(x,y,z,etc.) 枚举型,一个仅有一个值的字符串对象,值选自列表或NULL

    set(x,y,z,etc.) 集合型,能有零个或多个值的一个字符串对象,值选自列表

    ENUM列必须是值集合中的一个成员,而SET可以包括其中的任意成员。

    color ENUM(red,black,green,yellow)

    property SET(car,house,stock) NOT NULL

    那么,

    color的值可能是,NULL red black green yellow

    Property的值可能是,”” car house stock

    car,stock car,house house,stock car,house,stock

    由于空串可以表示不具备值的集合的任何一个值,所以也是一个合法的SET值。

    ENUM的成员编号从1开始,SET的成员从0开始。因此,在赋值查询时,不仅可以使用值表中的字符串,也可以使用数值来表示一个值。例如下列语句是等价的:

    INSERT table SET property=car,house,stock

    INSERT table SET property=7

    对于ENUM列也同样如此:

    INSERT table SET color=red,

    INSERT table SET color=1

     

  • Date类型:

    date 3个字节,日期,yyyy-MM-dd

    time 3个字节,时间,hh:mm:ss

    year 1个字节,年份,yyyyyy

    注释:4 位格式所允许的值:1901 2155

    2 位格式所允许的值:70 69,表示从 1970 20691970-19992000-2069

    datetime 8个字节,日期和时间,yyyy-MM-dd hh:mm:ss

    timestamp 4个字节,时间戳, yyyy-MM-dd hh:mm:ss

    注释:时间戳自动把自身设置为当前的日期和时间。也接受不同的格式

     

     

    操作表:

  • 显示当前数据库上存在的表:show tables;

     

  • 创建表:create table [if not exists] 表名(列的说明);

     

    create table [if not exists] 表名(

    字段名 数据类型 [约束],

    字段名 数据类型 [约束]

    ......

    );

     

  • 查看创建表的语句:SHOW CREATE TABLE 表名;

     

  • 创建索引: create index 索引名 ON 表名(列名);

    create unique index 索引名 ON 表名(列名);

    ALTER TABLE 表名 ADD INDEX 索引名(列名);

    ALTER TABLE 表名 ADD UNIQUE INDEX 索引名(列名);

    ALTER TABLE 表名 ADD PRIMARY KEY INDEX 索引名(列名);

     

  • 删除索引: DROP INDEX 索引名 ON 表名;

    ALTER TABLE 表名 DROP INDEX 索引名;

    ALTER TABLE 表名 DROP PRIMARY KEY ;

     

  • 显示表的结构: DESCRIBE 表名;

                   或 desc 表名;

     

  • 销毁表:drop table [if exists] 表名[,2,...];

     

  • 修改表:alter table (添加、修改、删除)

  • 修改之添加列

    ALTER TABLE 表名 ADD 列名 数据类型;

    后面可加beforeafter来指定添加列的序列位置

  • 修改之改变

    ALTER TABLE 表名 MODIFY 列名 数据类型;

    ALTER TABLE 表名 CHANGE 原列名 列名 数据类型;

  • 修改之修改列名

    ALTER TABLE 表名 CHANGE 原列名 列名;

  • 修改之删除列

    ALTER TABLE 表名 DROP 列名;

  • 修改之修改表名称

    ALTER TABLE 表名 RENAME 新表名;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值