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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
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
相关文章
|
12天前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
28 11
|
8天前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
32 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
13天前
|
关系型数据库 MySQL 数据库
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
29 5
|
16天前
|
SQL 关系型数据库 MySQL
MySQL 更新1000万条数据和DDL执行时间分析
MySQL 更新1000万条数据和DDL执行时间分析
34 4
|
16天前
|
SQL Serverless 数据库
数据库常用DQL语言合集
数据库常用DQL语言合集
|
18天前
|
SQL NoSQL 数据管理
超越查询语言:GQL 如何塑造图形数据库的未来
超越查询语言:GQL 如何塑造图形数据库的未来
18 0
|
2月前
|
SQL 存储 关系型数据库
"MySQL增列必锁表?揭秘InnoDB在线DDL,让你的数据库操作飞一般,性能无忧!"
【8月更文挑战第11天】在数据库领域,MySQL凭借其稳定高效的表现深受开发者喜爱。对于是否会在给数据表添加列时锁表的问题,MySQL的行为受版本、存储引擎等因素影响。从5.6版起,InnoDB支持在线DDL,可在改动表结构时保持表的可访问性,避免长时间锁表。而MyISAM等则需锁表完成操作。例如,在使用InnoDB的表上运行`ALTER TABLE users ADD COLUMN email VARCHAR(255);`时,通常不会完全锁表。虽然在线DDL提高了灵活性,但复杂操作或大表变更仍可能暂时影响性能。因此,进行结构变更前应评估其影响并择机执行。
62 6
|
2月前
|
SQL 存储 NoSQL
从SQL到NoSQL:理解不同数据库类型的选择与应用——深入比较数据模型、扩展性、查询语言、一致性和适用场景,为数据存储提供全面决策指南
【8月更文挑战第31天】在信息技术飞速发展的今天,数据库的选择至关重要。传统的SQL数据库因其稳定的事务性和强大的查询能力被广泛应用,而NoSQL数据库则凭借其灵活性和水平扩展性受到关注。本文对比了两种数据库类型的特点,帮助开发者根据应用场景做出合理选择。SQL数据库遵循关系模型,适合处理结构化数据和复杂查询;NoSQL数据库支持多种数据模型,适用于非结构化或半结构化数据。SQL数据库在一致性方面表现优异,但扩展性较差;NoSQL数据库则设计之初便考虑了水平扩展性。SQL使用成熟的SQL语言,NoSQL的查询语言更为灵活。
66 0
|
2月前
|
SQL 数据可视化 数据挖掘
SQL 在数据分析中简直太牛啦!从数据提取到可视化,带你领略强大数据库语言的神奇魅力!
【8月更文挑战第31天】在数据驱动时代,SQL(Structured Query Language)作为强大的数据库查询语言,在数据分析中扮演着关键角色。它不仅能够高效准确地提取所需数据,还能通过丰富的函数和操作符对数据进行清洗与转换,确保其适用于进一步分析。借助 SQL 的聚合、分组及排序功能,用户可以从多角度深入分析数据,为企业决策提供有力支持。尽管 SQL 本身不支持数据可视化,但其查询结果可轻松导出至 Excel、Python、R 等工具中进行可视化处理,帮助用户更直观地理解数据。掌握 SQL 可显著提升数据分析效率,助力挖掘数据价值。
50 0
|
9天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
43 6