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

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

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

相关文章

  • THE TRAVELER OF TIME__时间的旅人

    忙了一段时间。Ddl、DDL、ddl、dDl、dDL·····每天变换着ddl的排列组合,800、1000、...

  • 01 MySQL基本操作

    一、MySQL数据库基本操作-DDL 1.1 什么是DDL DDL(Data Definition Languag...

  • 4 TYPE OF SQL Language

    DDL DDL is short name ofData Definition Language,which de...

  • DDL

    就算是DDL,心情要好,我乐意~

  • DDL

    重复重复

  • DDL

    数据定义语言 一、 库和表的管理 创建、修改、删除 create alter drop 1、 库的创建(data文...

  • DDL

    DDL:(data definition language)是数据定义语言,简单的说就是创建数据库,创建表一类的语...

  • DDL

    Deadline is coming ! 其实并没有 下周完成QM的提纲 五月两份报告都要搞定 可能还要帮着做六月...

  • DDL

    昨夜梦见我在赶DDL,那不是什么伽马射线的问题,几道闪电劈向矮小的我,友人逐渐升高的大脸挂满无奈。我赶着一段路,还...

  • DDL

    明天下午pre,虽然现在离明天已经很近了,工作室里的人还是很多。我还有两个小时的工作量,心想着熬夜把它做完了吧,可...

网友评论

      本文标题:DDL

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