MySQL语句分类、关系型数据库基本概念、约束类型、数据类型、操作符

前言

这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题

于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。

微信小程序搜索:Python面试宝典

或可关注原创个人博客:https://lienze.tech

也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习

SQL

什么是sql

SQL 是结构化查询语言(Structured Query Language),一种用于存储、操作或者检索存储在关系型数据库 中数据的计算机语言

SQL 是关系型数据库系统(Relation Database System)的标准语言。所有的关系型数据库管理系统,例如 MySQL、MS Access、Oracle、Sybase、Informix、Postgres SQL 和 SQL Server,都使用 SQL 作为其 标准数据库语言

sql的意义

  • 允许用户访问关系型数据库中的数据
  • 允许用户对数据做出描述
  • 允许用于定义数据库中的数据,并对其进行操作
  • 允许通过 SQL 模块、库或者预编译器的等方式,嵌入到其他语言中
  • 允许用户创建或删除数据库和表
  • 允许用户在数据库中创建视图、存储过程和函数
  • 允许用户对表、过程和视图设进行􏰀限设置

语句分类

数据定义语句(ddl)

数据定义语言DDL用来创建数据库中的各种对象,如表、视图

sql语句解释
CREATE创建新的表,视图或其他数据库中的对象
ALERT修改现存一张表对象,字段或其他属性
DROP删除表,视图或者数据库中的其他对象

数据操纵语句(dql/dml)

sql语句解释
SELECT从一张或多张表中检索数据
INSERT创建一条新的数据记录
UPDATE修改一条数据记录
DELETE删除一条数据记录

数据控制语句(dcl)

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等

sql语句解释
GRANT赋予或者修改用户权限
REVOKE回收用户权限

关系型数据库

什么是关系型数据库

RDBMS 是关系型数据库管理系统(Relational DataBase Management System)的缩写,它是 SQL 以及所 有现代数据库系统,例如 MS SQL Server、IBM DB2、Oracle、MySQL 和 MS Access等的基础

关系型数据库管理系统(RDBMS)是一种基于 E.F. 科德提出的关系模型的数据库管理系统

什么是表

RDBMS 中的数据存储在被称作表的数据库对象中。表是相互关联的数据记录的集合,由一系列的行和列组成

表是关系型数据库中最常见也是最简单的数据存储形式,如下所示:

+-------+------+
| name  | age  |
+-------+------+
| test1 |    1 |
| test2 |    2 |
| test3 |    3 |
| test4 |    4 |
+-------+------+

什么是字段

表中存储数据真正具有意义的部分,如上中表的name、age即为字段

字段限定了当前表的列,类似表格的表头,用来维护当前列数据的字段类型和约束关系等

什么是记录行

一条实际的表中数据即为记录行

+-------+------+
| name  | age  |
+-------+------+
| test1 |    1 |
+-------+------+

类似表格文件中的每一行数据

什么是列

在表中竖直排列的数据,类似表格中的一列相同字段下的数据

+-------+
| name  |
+-------+
| test1 |
| test2 |
| test3 |
| test4 |
+-------+

表中的空值

如果数据在存储过程不存储实际数据,可以使用空值占位写入,表示为NULL

约束类型

约束是表中的数据列必须遵守的规则,用于限制表中数据的类型

约束保证了数据库中数据的精确性和可靠性。 约束可以限制列或者表

列级的约束只限制单一的列,而表级的约束作用于整个表

  • 常见约束如下
约束类型约束解释
NOT NULL保证列中数据不能有 NULL 值
DEFAULT提供该列数据未指定时所采用的默认值
UNIQUE保证列中的所有数据各不相同
主键唯一标识数据表中的行/记录
外键唯一标识其他表中的一条行/记录
CHECK此约束保证列中的所有值满足某一条件
索引用于在数据库中快速创建或检索数据

数据类型

整数类型

数据类型下限上限
BIGINT-9,223,372,036,854,770,0009,223,372,036,854,770,000
INT-2,147,483,6482,147,483,647
SMALLINT-32,76832,767
TINYINT0255
BIT01
NUMERIC(sql server)1E+3810^38 -1
MONEY(sql server)-922,337,203,685,477.00922,337,203,685,477.00
SMALLMONEY(sql server)-214,748.36214,748.36

浮点数类型

数据类型描述大小
FLOAT(M,D)单精度浮点数值,M全部位,D小数位4个字节
DOUBLE(M,D)双精度浮点数值,M全部位,D小数位8个字节
DECIMAL(M,D)用于精度要求非常高的计算,指定数值的精度和计数方法作为选择参数货币数据

日期类型

数据类型描述大小
DATETIME从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒8字节
DATE仅存储日期,从 0001 年 1 月 1 日 到 9999 年 12 月 31 日3 bytes
TIME仅存储时间。精度为 100 纳秒3-5字节
TIMESTAMP存储为时间戳格式,4字节
SMALLDATETIME(sql server)从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟4字节

注意:datetime 的时间和精度为3.33ms,而smalldatetime的时间精度为1min

字符串数据类型

数据类型描述上限
CHAR字符/字符串类型255 字符;定长
VARCHAR字符/字符串类型utf-8编码21845个字符;gbk编码32766个字符;不定长
TEXT字符/字符串类型存放最大长度为 65,535 个字符的字符串
MEDIUMTEXT字符/字符串类型存放最大长度为 16,777,215 个字符的字符串
LONGTEXT字符/字符串类型存放最大长度为 4,294,967,295 个字符的字符串
EMUN枚举类型类似于单选项,允许输入可能值的列表,可以在 ENUM 列表中列出最大 65535 个值,如果列表中不存在插入的值,则插入空值
SET多选枚举类型SET 最多只能包含 64 个列表项,但 SET 可存储一个以上的选择

二进制数据

数据类型描述大小
TINYBLOB不超过 255 个字符的二进制字符串255字节
BLOB二进制形式的长文本数据65535字节
MEDIUMBLOB二进制形式的中等长度文本数据16777215字节
LOGNGBLOB二进制形式的极大文本数据4294967295字节

操作符

算术运算符

支持:+、-、*、/、%

mysql> select 10 + 20;
+---------+
| 10 + 20 |
+---------+
|      30 |
+---------+

比较运算符

支持:=、!=、<>、>、<、>=、<=、!<、!>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李恩泽的技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值