MySQL数据库————数据库语言(DDL与DML)(二)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL数据库————数据库语言(DDL与DML)(二)

二、数据完整性(完整性约束)


数据完整性是指数据库中的数据要能够正确的反应实际情况,规定输入的数据不能是无效值,错误值或者乱码;


一.非空约束


非空约束关键字:not null;

1.非空约束的创建:


create table student(
s_id int not null, -- 为学号增加非空约束;
s_name varchar(20)
);


2.非空约束的添加


以修改表的形式添加非空约束:alter table student modify column s_id int not null;


3.查看表约束


基本格式:desc <表名>;


4.非空约束的删除


alter table student modify column s_id int;


二.唯一约束


唯一约束的关键字:unique

1.创建唯一约束


create table student(
s_id int not null,
s_name varchar(20) uniqueue,
s_sid float
)



2.唯一约束的添加


以修改表格的方式添加非空约束:alter table student add constraint uni_tid unique;(s_id);-- constraint 关键字给约束unique(s_id)取一个别名uni_tid

若表中没有规定主键,那么表中第一个非空且唯一的属性自动添加主键约束;


3.给约束起别名


通过constraint关键字给约束起别名:alter table student add constraint uni_id unique(s_id);


4.删除唯一约束


基本格式:

①。根据约束名删除唯一约束:alter table student drop index unii_id;

②.根据属性名称删除唯一约束:alter table teacher drop index s_name;

5.复合唯一约束

①.创建复合唯一约束


create table teacher(
t_id int not null, -- 为教师编制添加非空约束(行级约束);
t_name varchar(20),
);


②.修改表添加复合唯一约束


alter table teacher add constraint unit_tidname unique(t_id,t_name);

唯一约束是表级约束,非空约束是行级约束,所以在记忆的时候也可以根据他们不同的属性来记忆;


主键约束

主键约束的关键字:primary key

1.创建表时添加主键约束


create table teacher(
t_id int primary key, -- 添加主键约束
t_name varchar(20),
t_age int,
);


2.修改表格的方式添加主键约束


alter table teacher add primary key(t_id);

由于表中第一个非空且唯一的属性会默认成为主键,于是创建主键前先删除这个属性的唯一约束;


3.删除主键约束


alter table teacher drop primary key(t_id);


4.创建联合主键


alter table teacher add primar key(t_id,t_name);


自增列(行级约束)

自增列关键字:auto_increment

1.创建自增列

创建表的时候创建自增列约束:


create table teacher(
t_id int primary key auto_increment, -- 自增列约束,从100开始;
t_name varchar(20),
t_age int
)auto_increment=100; -- 设置自增列的初始值;


2.添加自增列


修改表的格式:


alter table teacher modify column t_id auto_increment;


3.删除自增列


alter table teacher modify column t_id;


五.检查约束


检查约束关键字:check

检查约束在MySQL中不支持,所以不做要求,他是在创建表的时候创建检查约束;


六.默认值约束(行级约束)


关键字:default

1.创建表添加默认值约束:


create table teacher(
t_id primary key auto_increment,
t_name varchar(20),
t_age int default 20
)auto_increment=100;


2.修改表添加默认值约束


alter table teacher modify column t_age int default 20;


3.删除默认值约束


alter table teacher modify column t_id int ;


七.外键约束


外键约束关键字:foreign key

1.创建表的时候创建外键约束


create table teacher(
t_id primary key auto_increment,
t_name varchar(20),
t_age int 
constraint for_ctid foreign key(t_id) references student(s_id)
)auto_increment=100;


2.级联更新


级联更新/删除时指父表中的元组更新或删除等操作对子表的处理方法,其中有三种方法:(on update/on delete)

-- ①.cascade 父表中中的元组更新,删除,在子表中跟着更新和删除

-- ②.no action 无动作,若子表中由匹配的记录,则不允许更新和删除

-- ③.set null 设置为空,若子表中有匹配的记录,更新/删除父表中的数据,子表中的对应的数据设置为空;


create table student(
s_id int primary key,
s_name varchar(20) not null,
s_cid int not null,
s_age int,
s_sex varchar(4) default '男',
constraint for_scid foreign key(s_cid) references class(class_id)on update cascade on delete cascade no action-- 级联更新或删除;
);


总结


本节我们初步认识了一下数据库中的定义和操作语言,以及相关的数据完整性,类容比较简单,不需要过多的去记忆,只需要简单的过一下,能够创建数据表,会在创建表的时候添加相关约束即可。下一节学习数据表的查询

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
在MySQL中,什么是结构化查询语言 (SQL)
【8月更文挑战第20天】在MySQL中,什么是结构化查询语言 (SQL)
64 1
|
8天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
23 4
|
17天前
|
SQL 关系型数据库 MySQL
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
61 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
关系型数据库 MySQL 数据库
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
34 5
|
3月前
|
SQL 关系型数据库 MySQL
Go语言中使用 sqlx 来操作 MySQL
Go语言因其高效的性能和简洁的语法而受到开发者们的欢迎。在开发过程中,数据库操作不可或缺。虽然Go的标准库提供了`database/sql`包支持数据库操作,但使用起来稍显复杂。为此,`sqlx`应运而生,作为`database/sql`的扩展库,它简化了许多常见的数据库任务。本文介绍如何使用`sqlx`包操作MySQL数据库,包括安装所需的包、连接数据库、创建表、插入/查询/更新/删除数据等操作,并展示了如何利用命名参数来进一步简化代码。通过`sqlx`,开发者可以更加高效且简洁地完成数据库交互任务。
32 1
|
3月前
|
SQL 关系型数据库 MySQL
|
6天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
20 1
|
15天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
81 1
|
17天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
59 2