1.库的管理

一、创建库
create database 【if not exists】 库名【 character set 字符集名】;

二、修改库
alter database 库名 character set 字符集名;
三、删除库
drop database 【if exists】 库名;

2.表的管理

一、创建表 ★
create table 【if not exists】 表名(
字段名 字段类型 【约束】,
字段名 字段类型 【约束】,
。。。
字段名 字段类型 【约束】

)

二、修改表

1.添加列
alter table 表名 add column 列名 类型 【first|after 字段名】;
2.修改列的类型或约束
alter table 表名 modify column 列名 新类型 【新约束】;
3.修改列名
alter table 表名 change column 旧列名 新列名 类型;
4 .删除列
alter table 表名 drop column 列名;
5.修改表名
alter table 表名 rename 【to】 新表名;

三、删除表
drop table【if exists】 表名;

四、复制表
1、复制表的结构
create table 表名 like 旧表;
2、复制表的结构+数据
create table 表名
select 查询列表 from 旧表【where 筛选】;

3.数据类型

一、数值型
1、整型
tinyint、smallint、mediumint、int/integer、bigint
1 2 3 4 8

特点:
①都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号
②如果超出了范围,会报out or range异常,插入临界值
③长度可以不指定,默认会有一个长度
长度代表显示的最大宽度,如果不够则左边用0填充,但需要搭配zerofill,并且默认变为无符号整型

2、浮点型
定点数:decimal(M,D)
浮点数:
float(M,D) 4
double(M,D) 8

特点:
①M代表整数部位+小数部位的个数,D代表小数部位
②如果超出范围,则报out or range异常,并且插入临界值
③M和D都可以省略,但对于定点数,M默认为10,D默认为0
④如果精度要求较高,则优先考虑使用定点数

二、字符型
char、varchar、binary、varbinary、enum、set、text、blob

char:固定长度的字符,写法为char(M),最大长度不能超过M,其中M可以省略,默认为1
varchar:可变长度的字符,写法为varchar(M),最大长度不能超过M,其中M不可以省略

三、日期型
year年
date日期
time时间
datetime 日期+时间 8
timestamp 日期+时间 4 比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间

4.常见的约束

一、常见的约束
NOT NULL:非空,该字段的值必填
UNIQUE:唯一,该字段的值不可重复
DEFAULT:默认,该字段的值不用手动插入有默认值
CHECK:检查,mysql不支持
PRIMARY KEY:主键,该字段的值不可重复并且非空 unique+not null
FOREIGN KEY:外键,该字段的值引用了另外的表的字段

主键和唯一
1、区别:
①、一个表至多有一个主键,但可以有多个唯一
②、主键不允许为空,唯一可以为空
2、相同点
都具有唯一性
都支持组合键,但不推荐
外键:
1、用于限制两个表的关系,从表的字段值引用了主表的某字段值
2、外键列和主表的被引用列要求类型一致,意义一样,名称无要求
3、主表的被引用列要求是一个key(一般就是主键)
4、插入数据,先插入主表
删除数据,先删除从表
可以通过以下两种方式来删除主表的记录
#方式一:级联删除
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE CASCADE;

#方式二:级联置空
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE SET NULL;

二、创建表时添加约束
create table 表名(
字段名 字段类型 not null,#非空
字段名 字段类型 primary key,#主键
字段名 字段类型 unique,#唯一
字段名 字段类型 default 值,#默认
constraint 约束名 foreign key(字段名) references 主表(被引用列)

)
注意:
支持类型 可以起约束名
列级约束 除了外键 不可以
表级约束 除了非空和默认 可以,但对主键无效

列级约束可以在一个字段上追加多个,中间用空格隔开,没有顺序要求

三、修改表时添加或删除约束
1、非空
添加非空
alter table 表名 modify column 字段名 字段类型 not null;
删除非空
alter table 表名 modify column 字段名 字段类型 ;

2、默认
添加默认
alter table 表名 modify column 字段名 字段类型 default 值;
删除默认
alter table 表名 modify column 字段名 字段类型 ;
3、主键
添加主键
alter table 表名 add【 constraint 约束名】 primary key(字段名);
删除主键
alter table 表名 drop primary key;

4、唯一
添加唯一
alter table 表名 add【 constraint 约束名】 unique(字段名);
删除唯一
alter table 表名 drop index 索引名;
5、外键
添加外键
alter table 表名 add【 constraint 约束名】 foreign key(字段名) references 主表(被引用列);
删除外键
alter table 表名 drop foreign key 约束名;

四、自增长列
特点:
1、不用手动插入值,可以自动提供序列值,默认从1开始,步长为1
auto_increment_increment
如果要更改起始值:手动插入值
如果要更改步长:更改系统变量
set auto_increment_increment=值;
2、一个表至多有一个自增长列
3、自增长列只能支持数值型
4、自增长列必须为一个key

一、创建表时设置自增长列
create table 表(
字段名 字段类型 约束 auto_increment
)
二、修改表时设置自增长列
alter table 表 modify column 字段名 字段类型 约束 auto_increment
三、删除自增长列
alter table 表 modify column 字段名 字段类型 约束
转载:https://blog.csdn.net/weixin_39887926/article/details/113462016

mysql_ddl(库、表、数据类型、常见约束)相关推荐

  1. MySQL基础——DDL语言学习\数据库的建立\MySQL数据类型\MySQL常见约束\表的增删改

    接上篇文章 MySQL基础--数据库和SQL概述\MySQL基本使用\DQL语言学习 DDL语言学习 Data Definition Language 数据定义语言 主要用于数据库和数据表的管理和操作 ...

  2. mysql并行dml_MySql的回顾九DML表数据的增,删,改,与DDL库表的增删改,约束

    雷霆空霹雳,云雨竟虚无.炎赫衣流汗,低垂气不苏.杜圣人热的时候不知是怎么解暑的???但这边这几天天气好像一直都不是太好哎! 不过无所谓了,都过了这么长时间,也习惯了,我还是继续带各位看官复习MySql ...

  3. 教学思路SQL之预备课程学习 建库、建表、建约束、关系、部分T-sql语句

    --建库 if exists(select * from sys.sysdatabases where name='wf') begin  use master  drop database wf e ...

  4. MySQL默认库可以删_个人总结:Sql(一:创建删除修改库表||附:mysql数据类型及默认值)...

    个人总结:Sql(一:创建&删除&修改库&表||附:mysql数据类型及默认值)createdatabasecreate tablealterdatabasealtertabl ...

  5. MySQL之数据类型、建表和六大约束

    前言:昨天跟大家分享了MySQL的账号管理.建库及四大引擎,今天与大家分享的知识是MySQL之数据类型.建表和六大约束. 一.数据类型介绍 1.作用:MySQL中定义数据字段的类型对你数据库的优化是非 ...

  6. mysql 数据表创建字段类型_MySQL 数据类型简介 创建数据表及其字段约束

    数据类型介绍 MySQL 数据类型分类 整型 浮点型 字符类型(char与varchar) 日期类型 枚举与集合 具体数据类型见这篇博客 MySQL表操作中的约束 primary key 主键约束 非 ...

  7. mysql 动态传入表名 存储过程_MySQL之常见约束以及事务和存储过程

    常见约束 数据库约束就是一种限制,用于限制表中行和列的数据,为了保证表中的数据准确和可靠 约束分类 六大约束 NOT NULL :       非空约束,用于保证该字段的值不能为空DEFAULT:   ...

  8. 数据表中常见的数据类型

    数据表中常见的数据类型有:整数类型.浮点数类型.日期与时间类型.字符串类型.二进制类型.布尔类型. 整数类型: 1int型:表示整型数值,是由四个字节组成的整数,输出范围(-2147~2147),数据 ...

  9. 数据库中数据类型和约束(整数类型、字符串、时间类型)

    数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,比如:数据类型和约束. 数据类型和约束保证了表中数据的准确性和完整性 1. ...

  10. MySQL - 高效的设计MySQL库表

    文章目录 生猛干货 范式与反范式 范式 第一范式 第二范式 第三范式 第二范式 VS 第三范式 设计符合 2NF 的表 范式优缺点 反范式 范式 VS 反范式 MySQL 使用原则和设计规范 基本设置 ...

最新文章

  1. linux中的rm 删除命令
  2. AES和TKIP的区别
  3. android 自由复制与粘贴功能
  4. 网络编程套接字(一)
  5. windows系统如何cmake_Windows操作系统如何快速增加分区?建议收藏
  6. java中 以下接口以键_java复习题
  7. 虚拟机服务器坏处,服务器虚拟化技术的优缺点
  8. vue 使用ace编辑器
  9. 快35了,还在“点点点”?那些入行几年的测试点工后来都怎么样了?
  10. 有个空间,名叫 Gamma
  11. 怎么设计制作简洁实用的App交互界面
  12. 多边形裁剪图片与自定义 Gizmo !Cocos Creator Gizmo!
  13. STM32使用RTC+BKP+PWR+EXTI
  14. 猿辅导python编程课网课怎么样_猿辅导网课怎么样 靠谱吗
  15. echarts关系图指向混乱
  16. 名帖291 董其昌 行书《乐志论》
  17. 7-5 梅森数 (10 分)
  18. @components问题
  19. java开发——什么时候使用枚举类型?为什么要用枚举类型?
  20. php微博图床,php上传图片到新浪图床 | 小灰灰博客

热门文章

  1. iOS之摇一摇功能实现
  2. java 判断两个时间相差的天数
  3. centos下修改mysql root密码
  4. Javascript Eclipse 自动代码规范化
  5. 了解轻量级的移动开发Javascript类库- Zepto.js
  6. 对Python中yield的理解
  7. 电子商务入门、实操、行业分析及公司案例等精彩系列问答有哪些?
  8. 获取枚举类型的字符串
  9. 破解版果冻手机动画主题for WM5 WM6
  10. 常见js表单验证方法(H5,layUI,amazeUI,vue)