MySQL数据库基础学习小终结:连接查询、表结构的修改、约束条件、MySQL与python交互2

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL数据库基础学习小终结:连接查询、表结构的修改、约束条件、MySQL与python交互

三、约束条件


1、默认:default


例:create table 表名(id int default 2);


演示如下:


  • (1)创建一个名为new_one的表,并设置默认值:default 2


90727ca8476e473786bedf82cb104577.png


(2)当不写id值时,则默认id值为2


a738d4d672a9462a80eda7312e81134d.png


当写入id值时,就会按写入的id值写入

5eadc66b6a684776841db663ed32f7a9.png

2、非空:not null


例:create table 表名(id int not null); (意思是设置id为非空值,表示写入id时不能为空)


演示如下:

a21c737d7d6c466393c0ddf5656a7dc9.png


3、唯一:unique key


例: create table 表名(id int unique key); (表示的意思是id中不能有重复的值,只能由唯一的值)


演示如下:


  • 创建一个具有唯一性的表

801e3c8658ca451bb5bee052d04013c0.png

在表中写入两个相同的id值,报错

8d050350bf4b44478397a4d27719022d.png

4、主键:primary key

  • primary key :非空+唯一,每张表只允许由一个主键

例:create table 表名(id int primary key, name varchar(20));



5、自增长:auto_increment


例:create table 表名(id int auto_increment,name varchar(20), primary key(id));

primary key(id):设置id为主键


演示如下:

  • (1)创建一个名为four_one的表

24b21090463142a2a581ad284f15cfba.png

向表中写入几个空的数据,id的值会自动从1向上增长

47722b646ce14d24880c74ae3bac23c4.png



6、设定初始值


例:create table 表名(id int auto_increment, primart key(id))auto_increment=10;


auto_increment=10:id的值从10开始向上增长


演示如下:


  • (1)创建一个名为one的表

5c9585de0397417aa57c9e9b079c806f.png


向表中写入几个空的数据,id的值会自动从10向上增长

315b1811adda4d8da0e5d9ff5662b8ff.png



7、外键:foreign key


假设某一个字段是某个表的外键时,那么该字段必须是主键。


外键的作用:使两张表关联,保证数据的一致性和实现一级联操作。


演示如下:


  • (1)创建一个A表

create table A(id int primary key, name varchar(20));

b549a87bf8bb4879bd9605ae488ec296.png


  • (2)创建一个B表


create table B(B_id int primary key, age int, foreign key(B_id) references A(id));

foreign key(B_id):B_id是外键,有外键的是从表


references 表名(字段名):关联的是表名和字段


b35e96a2163e4cc780350c0deb91dee6.png


(3)外键里能够插入的数据一定是主键里面有的数据

bc49ac0e933746c58003ff7af21427fd.png

添加字段:先操作主表,再去从表添加


删除数据:先删除从表,再去主表删除




8、删除主外键约束


(1)删除外键约束


先获取外键名再去删除外键约束



  • 查看表创建语句


show create table 表名;

635893b5ed514b32819d17a8b7f8c783.png


  • 找到键名后,删除外键约束


alter table 表名 drop foreign key 外键名;

e42eef520ea74d7088bb3e342d4c28f2.png



(2)删除主键约束


alter table 表名 A drop primary key;


如果A表还跟其他表有关联,要先删除从表的外键,再删除主表的主键。


17d9384d13ac4ed48d3e7c7c4bb3e71e.png


(3)主外键的区别


主键:唯一标识,不能有重复,不能为空。


外键:是另一个表的主键。






相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
12天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
18天前
|
Java 关系型数据库 MySQL
【编程基础知识】Eclipse连接MySQL 8.0时的JDK版本和驱动问题全解析
本文详细解析了在使用Eclipse连接MySQL 8.0时常见的JDK版本不兼容、驱动类错误和时区设置问题,并提供了清晰的解决方案。通过正确配置JDK版本、选择合适的驱动类和设置时区,确保Java应用能够顺利连接MySQL 8.0。
88 1
|
20天前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
52 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
21天前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
35 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
21天前
|
SQL JavaScript 关系型数据库
Node.js 连接 MySQL
10月更文挑战第9天
17 0
|
22天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
92 6
|
19天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
54 3
Mysql(4)—数据库索引
|
5天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
30 2
|
8天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
33 4