【MySQL数据库基础 一】基本概念和控制语句

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【MySQL数据库基础 一】基本概念和控制语句

SQL控制语句分类

使用SQL语句,可以完成在数据库中检索信息、更新数据库信息、改变数据库的结构,标准SQL语句的五种类型

  • 查询语句, 也叫数据查询语言,通常由select完成,查询数据库信息
  • DML语句,也叫数据操作语言,主要由insert,update,delete完成,修改数据库信息
  • DDL语句,也叫数据定义语句,主要由create,alter,droptruncate(性能优于delete)四个关键字完成。
  • DCL语句,也叫数据控制语句,主要由grantrevoke两个关键字完成,其中DCL语句用于为数据库用户授权或者收回指定用户权限,通常无须程序员操作。
  • 事务控制语句,主要由commit,rollbacksavepoint三个关键字完成

需要注意的是,SQL语句不区分大小写

SQL标识符

SQL中的标识符可用于定义表名,列名,变量,规范如下:

  • 标识符通常必须以字母开头
  • 标识符包括字母,数字特殊字符(# _ $)
  • 同一个外模式的下的对象不应该同名
  • 不要使用当前数据库系统的关键字、保留字

通常建议使用多个单词连缀而成,单词之间以下划线分隔。

MySQL术语

在正式理解前先来熟悉一下MySQL中的一些术语,然后操作的时候会有较好的理解:

  • 数据库: 数据库是一些关联表的集合
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格
  • : 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据
  • 一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性
  • 数据字典就是系统表,存放数据库相关信息的表,此部分程序员只可查看不可操作,由系统维护
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据
  • 外键外键用于关联两个表
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引
  • 约束:constraint:执行数据校验的规则,用于保证数据完整性的规则
  • 视图:view:一个或者多个数据表里的数据的逻辑显示。视图并不存储数据只是显示数据
  • 函数:function:用于完成一次特定的计算,具有一个返回值
  • 存储过程:proceduren:用于完成一次完整的业务处理,没有返回值,但可通过传参将多个值传给调用环境
  • 触发器:trigger:相当于一个时间监听器,当数据库发生特定事件后,触发器被触发,完成相应处理
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性

其中函数,存储过程,触发器不常用于JDBC编程。

MySQL数据类型

分为数值类型、日期和时间类型、字符串类型

数值类型

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

  • 整数类型:tinyint(1字节),smallint(2字节),mediumint(3字节),int(interger)(4字节),bigint(8字节)。
  • 浮点类型:float/double 单精度/双精度浮点类型。
  • Decimal(dec):精确小数类型,相对于float和double不会产生精度丢失的问题。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINTBIGINT。下面的表显示了需要的每个整数类型的存储和范围

日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIMEYEAR。每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

  • DATA:日期类型,不能保存时间。把java.util.Date对象保存进date列时,时间部分会丢失。
  • TIME:时间类型,不能保存日期。把java.util.Date对象保存进time列时,日期部分会丢失。
  • YEAR:年类型,仅仅保存时间的年份。
  • DATATIME:日期时间类型。
  • TIMESTAMP:时间戳类型,会自动记下数据库计数器记录的值。

TIMESTAMP类型有专有的自动更新特性

字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。以下是使用方式和范围:

  • CHAR:定长字符串类型。
  • VARCHAR:可变长度字符串类型。
  • BINARY:定长二进制字符串类型,以二进制形式保存字符串。
  • VARBINARY:可变长度二进制字符串类型,以二进制形式保存字符串。
  • 二进制大对象:tinyblob(1字节),blob(2字节),mediumblob(3字节),longblob(4字节),用于存储图片,音乐等二进制数据,分别可存储255B/64KB/16MB/4GB
  • 文本对象:tinytext(1字节),text(2字节),mediumtext(3字节),longtext(4字节),可用于存储超长长度的字符串,分别可存储:255B/64KB/16MB/4GB大小。
  • enum(‘value1’,‘value2’……):枚举类型,该列的值只能是enum后括号里多个值的其中之一。
  • set(‘value1’,‘value2’……):集合类型**,该列的值可以是set后括号里多个值的其中之一。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
22 2
|
1天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(2)
Oracle数据库基本概念理解(2)
18 1
|
1天前
|
存储 数据采集 数据管理
什么是数据库的概念模式
什么是数据库的概念模式
26 5
|
1天前
|
SQL Oracle 关系型数据库
数据库SQL语言实战(五)(数据库系统概念第三章练习题)
本文的SQL语言适用的是Oracle数据库与mySQL可能存在略微不同
|
1天前
|
SQL Oracle 关系型数据库
数据库SQL语言实战(四)(数据库系统概念第三章练习题)
本文的SQL语言适用的是Oracle数据库与mySQL可能存在略微不同
数据库SQL语言实战(四)(数据库系统概念第三章练习题)
|
1天前
|
SQL 关系型数据库 MySQL
MySQL 基本概念 基础用法 增删改查(特殊查询)语法 详细篇
MySQL 基本概念 基础用法 增删改查(特殊查询)语法 详细篇
|
1天前
|
存储 算法 搜索推荐
矢量数据库基础:概念、原理与应用场景
【4月更文挑战第30天】矢量数据库,处理高维向量数据的工具,应用于GIS、推荐系统、图像搜索及语义搜索。核心原理是将原始数据嵌入到高维空间,通过索引算法优化搜索性能。现代深度学习模型如Word2Vec提升向量表示准确性,KD-Tree、LSH等算法加速相似性搜索。随着技术发展,矢量数据库在数据科学领域的重要性日益增强。
|
1天前
|
SQL 算法 数据库
数据库系统概念(第三周 第一二堂总结)
数据库系统概念(第三周 第一二堂总结)
|
1天前
|
机器学习/深度学习 数据可视化 安全
数据库系统概念(第二周 第二堂)(关系模型)
数据库系统概念(第二周 第二堂)(关系模型)
|
1天前
|
SQL 存储 前端开发
数据库系统概念(第二周 第一堂)
数据库系统概念(第二周 第一堂)