IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL之数据类型、建表和六大约束 -> 正文阅读

[大数据]MySQL之数据类型、建表和六大约束

前言:昨天跟大家分享了MySQL的账号管理、建库及四大引擎,今天与大家分享的知识是MySQL之数据类型、建表和六大约束。

一、数据类型介绍

? ? ? ? ?1、作用:MySQL中定义数据字段的类型对你数据库的优化是非常重要的。。? ?

? ? ? ? ? 2、MySQL的数据类型与之前我们学习的sqlserver和oracle大同小异,MySQL支持三种类型:数值、日期/时间和字符串(字符)类型。

? ? ? ? ? ? ? ? ? 2.1:字符类型:char、varchar、text、blob

? ? ? ? ? ? ? ? ? 2.2:日期类型:date、time、datetime、timestamp(date指年月日时分秒,time指时分秒,datetime指年月日,timestamp指时间戳(长整数))

? ? ? ? ? ? ? ? ? 2.3数值类型? int、bigint、float、decimal(bigint就当于java中的long类型)

二、建表:

? ? ? ? ? ? ? ? ? 1.1、建表和之前的sqlserver以及oracle是一样的,其语法如下:

? ? ? ? ? ? ? ? ? ? ? ? ? ?语法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? create table 表名(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?列名 列的类型【(长度) 约束】,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?列名 列的类型【(长度) 约束】,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?列名 列的类型【(长度) 约束】,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?列名 列的类型【(长度) 约束】
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?)

? ? ? ? ? ? ? ? ? ? ? ? ? ?案列:

create table t_mysql_user(
id int ,
uname VARCHAR(20),
usex varchar(30)
)

? ? ? ? ? ? ? ? ? ? ?1.2、搜索表结构:

desc t_mysql_users

? ? ? ? ? ? ? ? ? 2.表的修改:

? 语法:ALTER TABLE?表名 ADD|DROP|MODIFY|CHANGE COLUMN??列名 【列类型 约束】;(注意大小写)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.1:修改列名:

ALTER TABLE book CHANGE COLUMN publishdate(原列名) pubDate(现列名) DATETIME(数据类型);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

--新建表
create table t_mysql_user(
id int ,
uname VARCHAR(20),
usex varchar(30)
)


--1、修改列名(将uname改成unames)
ALTER TABLE t_mysql_user CHANGE COLUMN uname unames varchar(30);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?运行结果:?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.2添加新列:

ALTER TABLE author ADD COLUMN annual DOUBLE;?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

--3、增加列名
ALTER  TABLE t_mysql_user ADD COLUMN uprice BIGINT

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?运行结果:?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.3删除列:

ALTER TABLE book_author DROP COLUMN annual;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

--4、删除列名
ALTER TABLE t_mysql_user DROP COLUMN uprice 

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?运行结果:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.4修改表名:

ALTER TABLE author RENAME TO book_author;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

ALTER TABLE t_mysql_user RENAME TO t_mysql_userss

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?运行结果:

? ? ? ? ? ? ? ? ? 3、表的删除:

DROP TABLE IF EXISTS book_author;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

DROP TABLE IF EXISTS t_mysql_usersss

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 运行结果:

? ? ? ? ? ? ? ? ?4、表的复制:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4.1、复制表的结构:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?代码:

CREATE TABLE t_authors as select * from author where 1=0

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?运行结果:

?author表:?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4.2.复制表的结构+数据:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

CREATE TABLE t_author as select * from author

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 运行结果:

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4.3.只复制部分数据:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

CREATE TABLE t_authorss as select aid,aname from author

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 运行结果: ?

??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4.4.?仅仅复制某些字段:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

CREATE TABLE t_authorsss as select aid,address from author where 1=0

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 运行结果:

?三、六大约束:

? ? ???一、?1、定义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性

? ? ? ? ? ? ? ?2、分类:

? ? ? ? ? ? ? ? ? ? ? ? 2.1:?NOT NULL:非空,用于保证该字段的值不能为空
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?比如姓名、学号等
? ? ? ? ? ? ? ? ? ? ? ? 2.2:? ?DEFAULT:默认,用于保证该字段有默认值
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?比如性别
? ? ? ? ? ? ? ? ? ? ? ? 2.3: ?PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?比如学号、员工编号等
? ? ? ? ? ? ? ? ? ? ? ? 2.4: UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?比如座位号
? ? ? ? ? ? ? ? ? ? ? ? 2.5: CHECK:检查约束【mysql中不支持】
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?比如年龄、性别
? ? ? ? ? ? ? ? ? ? ? ? 2.6:?FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值

? ? ? ? ? ? ? ?3、添加约束的时机:1.创建表时 2.修改表时

? ? ? ? ? ? ? ?4、约束的添加分类:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 列级约束:六大约束语法上都支持,但外键约束没有效果

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表级约束:除了非空、默认,其他的都支持

? ? ? ? ? ? ? ?5、主键和唯一的大对比:
?
? ? ? ? ? ? ? ? ? ? ?保证唯一性? ? 是否允许为空? ? ? 一个表中可以有多少个 ? 是否允许组合
? ? ? ? ? ? 主键:? ? ? √? ? ? ? ? ? ? ? ? ? ?×? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?至多有1个? ? ? ? ? ?√,但不推荐
? ? ? ? ? ? 唯一”:? ? √? ? ? ? ? ? ? ? ? ? ?√? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可以有多个? ? ? ? ? √,但不推荐

? ? ? ? ? ? ? ?6、添加约束:
? ? ? ? ? ? ? ? ? ? ? 6.1添加列级约束:?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?语法:直接在字段名和类型后面追加 约束类型即可。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?只支持:默认、非空、主键、唯一

? ? ? ? ? ? ? ? ? ? ? 6.2添加表级约束:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?语法:在各个字段的最下面

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【constraint 约束名】约束类型(字段名)

? ? ? 二、修改表时添加约束??:

? ? ? ? ? ? ? 1、添加列级约束:

alter table 表名 modify column 字段名 字段类型 新约束;

? ? ? ? ? ? ? 2、添加表级约束:

alter table 表名 add 【constraint 约束名】 约束类型(字段名) 【外键的引用】;

? ? ? ? ? ? ? 3、添加非空约束:?

ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NOT NULL;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?代码

ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20)  null

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 运行效果:

? ? ? ? ? ? ? ?4、添加默认约束:

ALTER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 18;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

ALTER TABLE stuinfo MODIFY COLUMN  age int 

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?运行效果:

? ? ? ? ? ? ? ?5、添加主键:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?5.1列级约束:

ALTER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

ALTER TABLE stuinfo MODIFY COLUMN  id int PRIMARY KEY

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?运行效果:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?5.2表级约束:

ALTER TABLE stuinfo ADD PRIMARY KEY(id);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?代码:?

ALTER TABLE stuinfo ADD UNIQUE(seat)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?运行效果:

? ? ? ? ? ? ? ? 6、添加唯一:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 6.1列级约束:

ALTER TABLE stuinfo MODIFY COLUMN seat INT UNIQUE;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?6.2:表级约束:

ALTER TABLE stuinfo ADD UNIQUE(seat);

? ? ? ? ? ? ? ? 7、添加外键:

ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id);

? ?三:修改表时删除约束:

? ? ? ? ? ? ? ? 1、删除非空约束:

ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NULL;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

--删除非空约束
ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20)   null

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 运行效果:

? ? ? ? ? ? ? ? 2、删除默认约束 :

ALTER TABLE stuinfo MODIFY COLUMN age INT ;

???? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

--删除默认约束
ALTER TABLE stuinfo MODIFY COLUMN  age int 

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 运行效果:

? ? ? ? ? ? ? ?3、删除主键?:

ALTER TABLE stuinfo DROP PRIMARY KEY;

? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

ALTER TABLE stuinfo DROP PRIMARY KEY 

? ? ? ? ? ? ? ? ? ? ? ? ? ??运行效果:?

? ? ? ? ? ? ? 4、删除唯一 :

ALTER TABLE stuinfo DROP INDEX ?seat?

? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

ALTER TABLE stuinfo DROP INDEX  seat 

? ? ? ? ? ? ? ? ? ? ? ? ? ? 运行效果:?

? ? ? ? ? ? ? 5、删除外键:

ALTER TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_major;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 代码:

ALTER TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_major

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 运行效果:?

?总结:今天的知识就分享到这里了,MySQL知识只要靠识记,并将学的知识反复练习就可以达到一个目标了,最后祝大家生活愉快!

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 11:05:11  更:2021-09-05 11:07:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:27:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码