MySQL初级篇(二)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL初级篇(二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、列属性

1、 主键

主键(primary key):又叫主键约束,是表中的一个或多个字段,它的值用于唯一标识表中的某一条记录。

特点:

  • 一个表中只能有一个主键
  • 主键值必须唯一标识表的每一行
  • 主键值不可重复,也不可为空(NULL)
---单一字段创建主键
字段名称 数据类型 primary key
---单、多字段主键
primary key(字段名称,)---但不常用
---删除主键
alter table 表名 drop primary key;

主键的建立原则:

  • 主键应是对用户没有意义的
  • 不要更新主键
  • 主键不应包含动态变化的数据,如时间戳等
  • 主键应由计算机自动生成
  • 一般来说就是id,特殊情况除外

2、 唯一键

唯一键(unique key):又叫唯一约束,其保证在一个字段或一组字段里的数据与表中其他行的数据相比是唯一的。

特点:

  • 一张表中可以存在多个唯一键
  • 唯一键所在列中的数据不能重复
  • 唯一键允许该列数据为null,并且可以存在多个(但是不提倡)
  • 与主键的区别:主键唯一,唯一键不唯一,主键不为null,唯一键可为null
---创建唯一键
字段名称 数据类型 unique key
---添加唯一键并且自定义名称
alter table 表名 add unique key 唯一键名称(字段,)
---删除唯一键
alter table 表名 drop index 唯一键名称;
注意:与主键的删除略有不同

3、 自动增长

自增长(auto increment):当对应的字段不给值或null的时候,系统会自动触发**从当前字段中已有的最大值执行+1操作**,得到一个新的值。

特点:

  • 任何一个字段要实现自动增长必须前提是一个索引(键)
  • 自动增长的字段必须是一个数字(整型)
  • 一张表中只能有一个自动增长
---添加自动增长
字段名称 数据类型 auto_increment
---删除自增长
alter table 表名称 modify 字段名称 数据类型;
注意:使用此方法不光清除了自增长,只留下键
---修改自增长值
alter table 表名称 auto_increment = 值
---修改步长
set auto_increment_increment = 值

4、 其他属性

空属性用null表示,在mysql中允许使用列设置为null或者not null
  • null:当没有给该字段添加任何值的时候就是null,null不能参与运算
  • not null:被设置为not null 的列必须存在
---设置 null / not null属性
字段 数据类型 NULL/NOT NULL
注意:并非所有字段都需要设置not null,主键默认就是not null,一般情况下建议使用not null,如果实在没有值则可以使用默认值代替(默认值可以使用占用空间很小的数据)

默认值(default):如果插入数据,某个;列没有数据,则使用默认值填充。
---设置默认值
字段名称 数据类型 default '值';

列描述(Comment):就是注释。
---设置列描述
字段名称 数据类型 comment '描述';
注意:在设置完列描述后要使用**show create table 表名称;**来查看。

二、高级查询

1、select 选项

---all查询所有
select all 列名 from 表名
---distinct去重复(一般情况下不适用耗性能)
select distinct 列名 from 表名

2、条件限制

2.1 where

where子句用于规定选择的标准,写法:select 字段 from 表名 where

2.2 having

having与where相似,但having发生在内存中

2.3 limit

limit是用来限制结果数量的。
---从第一条开始的查询n条数据
select 字段 from 表名称 limit 数据量;
---从起始数+1开始查询n条数据
select 字段 from 表名称 limit 起始数,偏移量;

2.4 order by(排序)

---asc 升序(默认) desc 降序
---除了可以使用单一字段进行排序外,还可以添加第二个字段进行多字段排序,中间使用','进行隔开
select 字段 from 表名 order by 字段名 排序方式,字段名 排序方式;
注意:尽量不要使用

2.5 group by

例子:select count(*),字段名 from 表名 group by age;

3、连接查询

3.1 外连接

以某张表为主,取出里面的所有记录,然后每条与另外一张表进行连接,不管能不能匹配上条件,最终都会保留。能匹配,正确保留;不能匹配,其他表的字段都置空 NULL。
• 1
---外连接分为两种
left join:左外连接,以左表为主
左表 left join 右表 on 左表.字段=右表.字段
right join:右外连接,以右表为主
左表 right join 右表 on 左表.字段=右表.字段
注意:限定条件使用on关键字

3.2 内连接

内连接[inner] join:从左表中取出每一条记录,去右表中与所有的记录进行匹配,匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留。
左表 [inner] join 右表 on 左表.字段 = 右表.字段;
注意:内连接可以没有连接条件即没有on之后的内容,这个时候系统会保留所有结果,比较浪费资源不建议这样使用。优先使用内连接。

3.3 AS

---起别名
select student.name,parent.name,parent.age... from student join parent on student.id=parent.student_id;
select st.name,pa.name,pa.age... from student as st join parent as pa on st.id=pa.student_id;

三、结语

九天阊阖开宫殿,万国衣冠拜冕旒。王维《和贾舍人早朝大明宫之作》




相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL 关系型数据库 MySQL
MySQL初级篇(四)
MySQL初级篇(四)
|
存储 SQL 关系型数据库
第17章 触发器【mysql初级】
第17章 触发器【mysql初级】
104 0
|
8月前
|
SQL 关系型数据库 MySQL
MySQL数据库学习(小白一文掌握Mysql)
MySQL数据库学习(小白一文掌握Mysql)
|
关系型数据库 MySQL
MySQL初级篇(三)
MySQL初级篇(三)
|
存储 NoSQL 关系型数据库
MySQL初级篇(一)
MySQL初级篇(一)
|
SQL 关系型数据库 MySQL
【MySQL】MySQL触发器入门宝典,助力MySQL初学者打下基本功
【MySQL】MySQL触发器入门宝典,助力MySQL初学者打下基本功
106 0
|
SQL 存储 关系型数据库
MySQL常用基础 - 小白必看(二)
概念:是一个数据定义语言 该语言部分包括: 1、对数据库的常用操作 2、对表结构的常用操作
125 0
MySQL常用基础 - 小白必看(二)
|
存储 SQL NoSQL
MySQL初级之【1.MySQL认识与安装配置】
MySQL初级之【1.MySQL认识与安装配置】
142 0
MySQL初级之【1.MySQL认识与安装配置】
|
存储 SQL 缓存
【中级】 MySQL 数据库架构介绍 | 学习笔记
快速学习【中级】 MySQL 数据库架构介绍,介绍了【中级】 MySQL 数据库架构介绍系统机制, 以及在实际应用过程中如何使用。
【中级】 MySQL 数据库架构介绍 | 学习笔记
|
存储 SQL 关系型数据库
MySQL复习资料(一)——MySQL环境安装
MySQL复习资料(一)——MySQL环境安装
98 0
MySQL复习资料(一)——MySQL环境安装