DDL

作者: 小灰灰_5c75 | 来源:发表于2018-09-18 09:14 被阅读0次

    数据定义语言

    一、 库和表的管理

    创建、修改、删除

    create alter drop

    1、 库的创建(data文件夹下)

    create database if not exists 数据库名;

    2、 库的修改

    基本不修改

    字符集修改:alter database 库名 character set 字符集;

    3、 库删除

    drop database if exists 库名;

    4、 表的创建

    create table 表名(

    列名 列的类型【(长度)约束】,

    列名 列的类型【(长度)约束】,

    列名 列的类型【(长度)约束】,

    )

    5、 表的修改

    修改列名

    alter  table 表名 change  column 旧列名  新列名 类型;

    修改列的类型和约束

    alter  table 表名 mudify column 列名 新类型/约束;

    添加列

    alter  table 表名 add column 列名  类型;

    删除列

    alter  table 表名 drop  column  if  exists 列名;

    修改表名

    alter  table 表名  rename  to 新表名;

    删除表

    drop table 表名;

    显示库里所有表

    show  tables;

    复制表结构(可跨库)

    create  table  复制的新表名  like  被复制表;

    复制表结构和数据(可跨库)

    create  table  复制的新表名

    select  字段  from 被赋值表 where 筛选条件;

    二、 常见数据类型介绍

    1、 数值型

    整型

    tinyint、smallint,mediumint、int/integer、bigint

    1 2 3 4 8  字节

    特点:默认有符号,unsigned设置无符号

    小数

    定点数:dec(M,D)、decimal(M,D)

    浮点数:flout(M,D)、double(M,D)

    float 、double

    4 8    字节

    特点:M数值总位数

    D小数点后保留多少位,结果位数多则四舍五入

    定点数精确度更高

    原则:选择类型越简单越好,保存数值长度越短越好

    2、 字符型

    较短文本:char、varchar

    较长文本:text、blob(较长的二进制数据)

    特点

    char(M) M省略默认为1 固定长度字符 耗费空间 效率高

    varchar(M) M不能省略  可变长度字符 节省空间 效率低

    3、日期型

    date 4字节 年月日

    datetime 8 年月日时分秒 1000-9999 不受时区影响

    timestamp 4 时间戳 1970-2038 受时区影响

    time 3 时分秒

    year 2 年

    三、 常见约束

    目的:保证数据的准确和可靠性

    六大约束

    not null

    default

    primary  key

    unique

    check:mysql不支持

    foreign  key

    添加约束的时机:

    1、 创建表

    2、 修改表

    约束的添加分类:

    1、 列级约束

    2、 表级约束

    一、创建表时添加约束

    例如:

    create table 表名(

    字段名  字段类型 列级约束,

    字段名  字段类型,

    表级约束

    表级约束:(注意约束写法)

    CONSTRAINT  pk  PRIMARY KEY(id),

    CONSTRAINT  uq  UNIQUE(name)

    CONSTRAINT  fk_name  forgien  key(外键)  references  关联表(关联表主键)

    查看表级约束

    show  index  from  表名;

    主键和唯一对比

    主键:内容唯一性  不能为空  列只能有一个  不推荐组合使用

    唯一:内容唯一性  能为空 列可不唯一 不推荐组合使用

    外键

    1、 要求在从表设置外键关系

    2、 从表的外键列的类型和主表的关联列类型一致或兼容

    3、 主表的关联列一般是key(主键或唯一)

    4、 插入数据先插入主表再插入从表,删除顺序相反

    二、修改表时添加约束

    1、添加非空约束

    列级约束

    ALTER TABLE 表名  MODIFY COLUMN 列名 类型  约束;

    表级约束

    ALTER TABLE 表名  ADD 约束(字段名);

    添加外键

    ALTER TABLE 表名  ADD  CONSTRAINT  fk_name  forgien  key(外键)  references  关联表(关联表主键)

    四、 修改表时删除约束

    1、 删除非空约束

    alter  table 表名  modify  column  字段名 类型  null;

    2、 删除默认约束

    alter  table 表名  modify  column  字段名 类型;

    3、 删除主键

    alter  table 表名 drop  primary  key;

    4、 删除唯一

    alter  table 表名  drop  index  唯一键名;

    5、 删除外键

    alter  table 表名 drop  foreign  key  外键名;

    标识列:auto_increment

    自增长,不用手动插入,系统提供默认标识值

    插入时直接写null或者不写

    增长的步长默认为1,起始值默认为1

    注意:至多有一个标识列;类型为数值型;

    新建、修改表时设置标识列和删除标识列和约束类似;

    相关文章

      网友评论

          本文标题:DDL

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