DDL-MySQL

本文详细介绍了数据库定义语言DDL,包括对数据库和表的管理,如创建、修改和删除库与表的操作。讨论了各种数据类型,如数值型、字符型和日期型,并讲解了约束的使用,如非空、默认、主键、唯一和外键等。同时,文章还涵盖了如何在创建和修改表时添加约束,以及标识列(auto_increment)的用法。
摘要由CSDN通过智能技术生成

数据库定义语言DDL(Data Definition Language)

  • 库和表的管理

创建、修改、删除

create alter drop

 

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

create database if not exists 数据库名;

  1. 库的修改

基本不修改

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

  1. 库删除

drop database if exists 库名;

 

  1. 表的创建

create table 表名(

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

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

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

)

 

  1. 表的修改

修改列名

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小数点后保留多少位,结果位数多则四舍五入

定点数精确度更高

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

 

  1. 字符型

较短文本: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;

 

  1. 删除默认约束

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

 

  1. 删除主键

alter  table 表名 drop  primary  key;

 

  1. 删除唯一

alter  table 表名  drop  index  唯一键名;

 

  1. 删除外键

alter  table 表名 drop  foreign  key  外键名;

 

 

标识列:auto_increment

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

插入时直接写null或者不写

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

 

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

 

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值