当前位置: 首页>后端>正文

mysql 理论tps mysql理解


文章目录

  • 一:简介
  • 二:MySQL的数据类型
  • (一)整数类型
  • (二)二浮点数类型和定点数类型
  • (三)日期与时间类型
  • (四)字符串类型
  • 1、CHAR类型和VACHAR类型
  • 2、TEXT类型
  • 3、ENUM类型
  • 4、SET类型
  • 5、二进制类型
  • 三:MySQL的使用
  • (一)登录及退出
  • (二)库操作SQL格式
  • (三)表操作SQL格式
  • 1、创建表
  • (1)设置表的主键
  • (2)设置表的外键
  • (3)设置表的非空约束
  • (4)设置表的唯一性约束
  • (5)设置表的属性值自增
  • (6)设置表的属性的默认值
  • 2、查看表的结构
  • 3、修改表
  • (1)修改表名
  • (2)修改字段的数据类型
  • (3)修改字段名
  • (4)增加字段
  • (5)删除字段
  • (6)修改字段的排列位置
  • (7)更改表的存储引擎
  • (8)删除表的外键约束
  • 4、删除表
  • 5、查询表
  • (1)查询所有字段
  • (2)查询指定字段
  • (3)查询指定记录
  • (4)带in的关键字查询
  • (5)带between and的范围查询
  • (6)带like的字符匹配查询
  • (7)查询空值
  • (8)带and的多条件查询
  • (9)带or的多条件查询
  • (10)查询结果不重复
  • (11)查询结果进行排序
  • (12)分组查询
  • (12)用limit限制查询结果的数量
  • (13)使用集合函数查询
  • (14)连接查询
  • (15)子查询
  • ①带in关键字的子查询
  • ②带比较运算符的子查询
  • ③带exists关键字的子查询
  • ④带any关键字的子查询
  • ⑤带all关键字的子查询
  • (16)合并查询
  • (17)为表和字段取别名
  • ①为表取别名
  • ②为字段取别名
  • (18)使用正则表达式查询
  • ①查询以特定字符或字符串开头的记录
  • ②查询以特定字符或字符串结尾的记录
  • ③用符号“.”来替代字符串中的任意一个字符
  • ④匹配指定字符中的任意一个
  • ⑤匹配指定字符以外的字符
  • ⑥匹配指定字符串
  • ⑦使用“ * ”和“ + ”来匹配多个字符
  • ⑧使用{M}或者{M,N}来指定字符串连续出现的次数
  • 6、插入数据
  • (1)为表的所有字段插入数据
  • (2)为表的指定字段插入数据
  • (3)同时插入多条数据
  • (4)将查询结果插入到表中
  • 7、更新数据
  • 8、删除数据
  • 四:MySQL运算符
  • (一)算术运算符
  • (二)逻辑运算符
  • (三)比较运算符



一:简介

  • 数据:
    在计算机系统中,各种字母、数字符号的组合、语音、图形、图像等统称为数据,数据经过加工后就成为信息。
  • 数据库:
    数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。简单来说,数据库就是数据的仓库,用于存储数据。主要作用是,便于对数据的存储和管理 重复的使用。
     
    数据库的发展史
  1. 计算机:文件系统将数据全部存储在文件(磁盘)里,成为我们今天的数据库。
  2. MySQL所管理的数据库:把数据存在文件当中。
  • 数据库管理系统:
    数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
     
    MySQL / SQL server就是我们常用的数据库管理系统,主要作用是,用来管理数据库中的数据。
  • 数据库系统:
    数据库系统(Database Systems),是由数据库及其管理软件组成的系统。简单来说,就是:数据库 + 数据库管理系统

MySQL是怎么管理数据的: 主要是通过指定关系 ,制定相关的

  • 关系型数据库管理方式:使用二维表进行存储。
  • 关系型数据库的特点
  1. 安全(因为存储在磁盘中,不会说突然断电数据就没有了)
  2. 容易理解(建立在关系模型上)
  3. 但不节省空间(因为建立在关系模型上,就要遵循某些规则,好比数据中某字段值即使为空仍要分配空间)
  • 二维表:
  1. 行 → 元组;
  2. 列 → 属性;
  3. 阈值→ 属性的取值范围;
  4. 关系 → 二维表维护的数据;

二:MySQL的数据类型

数据类型:其中数据类型是数据的一种属性,其可以决定数据的存储格式、有效范围和相应的限制。

MySQL的数据类型包括整数类型、浮点数类型、日期和时间类型、字符串类型和二进制数据类型。


(一)整数类型

整数类型是数据库中最基本的数据类型。标准SQL中支持(INTEGER)和(SMALLINT)这两种整数类型。MySQL数据库除了支持这两种类型以外,还扩展支持了(TINYINT)、(MEDIUMINT)和(BIGINT)。他们之间的相关数据比较如下图所示:

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql,第1张

MySQL支持数据类型的名称后面指定该类型的显示宽度。其基本形式如下:
数据类型(显示宽度)
例如:tinyint(4)、smallint(6)、mediumint(9)、int(11)、bigint(20)等

整数类型还有一个AUTO_INCREMENT属性。该属性可以使字段成为自增字段。具有该属性的字段,在插入新的记录时,该字段的值都会在前一条记录的基础上加1。


(二)二浮点数类型和定点数类型

MySQL中使用浮点数类型和定点数类型来表示小数。浮点数类型包括单精度浮点数(FLOAT型)和双精度浮点数(DOUBLE型)。定点数类型就是(DECIMAL型)。他们之间的相关数据比较如下图所示:

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_02,第2张

从上面表中可以看到,DECIMAL型的取值范围与DOUBLE相同。但是,DECIMAL的有效取值范围由M和D决定。而且,DECIMAL型的字节数是M+2。也就是说,定点数的存储空间是根据其精度决定的。在MySQL中,定点数以字符串形式存储。因此,其精度比浮点数要高。而且,浮点数会出现误差,这是浮点数一直存在的缺陷。如果要对数据的精度要求比较高,还是选择定点数(DECIMAL)比较安全。

  • MySQL中可以指定浮点数和定点数的精度。其基本形式如下:
    数据类型(M,D)

(三)日期与时间类型

日期与时间类型是为了方便在数据库中存储日期和时间而设计的。MySQL有多种表示日期和时间的数据类型。其中,(YEAR)类型表示时间;(DATE)类型表示日期;(TIME)类型表示时间;(DATETIME)和(TIMESTAMP)表示日期和时间。他们之间的相关数据比较如下图所示:

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_03,第3张

从上表中可以看到,每种日期与时间类型都有一个有效范围。如果插入的值超过了这个范围,系统会报错,并将零值插入到数据库中。可以使用CURRENT_TIME和NOW()来转换为当前系统日期和时间。

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_04,第4张

(四)字符串类型

字符串类型是在数据库中存储字符串的数据类型。字符串类型包括CHAR、VARCHAR、BLOB、TEXT、ENUM和SET。

1、CHAR类型和VACHAR类型

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_05,第5张

  • CHAR类型和VARCHAR类型都是在创建表时指定了最大长度,其基本形式如下:字符串类型(M)。其两者的区别为:
  1. CHAR类型的长度是固定的,在创建表的时候就指定了。其长度可以是0~255的任意值。例如,CHAR(100)就是指定CHAR类型的长度为100。
  2. VARCHAR类型的长度是可变的,在创建表时指定了最大长度。定义时,其最大值可以取0~65535之间的任意值。指定VARCHAR类型的最大值以后,其长度可以在0到最大长度之间。例如,VARCHAR(100)的最大长度是100。但是,不是每条记录都要占用100个字节。而是在这个最大值范围内,使用多少分配多少。 VARCHAR类型实际占用的空间为字符串的实际长度加1。这样,即可有效节约系统的空间。
  3. CHAR类型和VARCHAR类型的选取原则:尽可能选择小的,选择动态变化的;但是在数据量已知的情况下选择char, 因为不用计算;char(int) 20 这个数据类型所占的存储空间就确定了;而varchar(int) 20 存储空间在1 ~ 20 之间变换;多了一步计算的环节,当你把一个字符串存进去的时候,会先进行计算占用多少个字节,然后再去开辟空间。

2、TEXT类型

TEXT类型是一种特殊的字符串类型。TEXT只能保存字符数据,如新闻的内容等。TEXT类型包括TINYTEXT、TEXT、MEDIUMYEXT和LONGTEXT。他们之间的相关数据比较如下图所示:

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_06,第6张

3、ENUM类型

ENUM类型又称为枚举类型。在创建表时,ENUM类型的取值范围就以列表的形式指定了。其基本形式如下:
属性名 ENUM('值1','值2',...,'值n')

其中,属性名参数指字段的名称;“值n”参数表示列表中的第n个值,这些值末尾的空格将会被系统直接删除。ENUM类型的值只能取列表中的一个元素。其取值列表中最多能有65535个值。列表中的每一个值都有一个顺序排列的编号,MySQL中存入的是这个编号,而不是列表中的值。

4、SET类型

在创建表时,SET类型的取值范围就以列表的形式指定了。其基本形式如下:
属性名 SET('值1','值2',...,'值n')

其中,属性名参数指字段的名称;“值n”参数表示列表中的第n个值,这些值末尾的空格将会被系统直接删除。其基本形式与ENUM类型一样。SET类型的值可以取列表中的一个元素或者多个元素的组合。取多个元素时,不同元素之间用逗号隔开。SET类型的值最多只能是有64个元素构成的组合。

5、二进制类型

二进制类型是在数据库中存储二进制数据的数据类型。二进制类型包括BINARY、VARBINARY、BIT、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。他们之间的相关数据的对比如下图所示:

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_07,第7张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_08,第8张

其中BLOB类型是一种特殊的二进制类型。BLOB类型与TEXT类型很类似。不同点在于BLOB类型用于存储二进制数据,BLOB类型数据是根据其二进制编码进行比较和排序。而TEXT类型是文本模拟进行比较和排序的。BLOB类型主要用来存储图片、PDF文档等二进制文件。通常情况下,可以将图片、PDF文档都可以存储在文件系统中,然后在数据库中存储这些文件的路径。这种方式存储比直接存储在数据库中简单,但是访问速度比存储在数据库中慢。

三:MySQL的使用


操作数据库:SQL语句

SQL 语句主要可以划分为以下 3 个类别:

  • DDL(Data Definition Languages)语句:
    数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。
  • DML(Data Manipulation Language)语句:
    数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、update 和select 等。
  • DCL(Data Control Language)语句:
    数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。

(一)登录及退出

  • 连接前服务端必须要启动
  1. 登录:
    mysql -u XXX -p XXX
    mysql:代表客户端命令
    -u 后面跟用户名(user:)
    -p 后面跟用户密码
  2. 退出用户端登录: exit

(二)库操作SQL格式

  1. 创建数据库
    create database database_name;
    create database if not exists database_name;
  2. 查看数据库
    show databases;
  3. 使用数据库
    use database_name;
    use school;
    如果不使用这条sql,在操作表的时候必须
    使用数据库名.表名,否则将无法操作表。
  4. 查看数据库下存在表
    show tables;
  5. 删除数据库
    drop database database_name;
    DROP database IF EXISTS database_name;

(三)表操作SQL格式

1、创建表


create table table_name(
 属性名1 数据类型 [完整性约束],
 属性名2 数据类型 [完整性约束],
 属性名3 数据类型 [完整性约束],
 );
 
 create table if not exists table_name;
 
 表名可以用数据库名.表名表示

完整性约束条件

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_09,第9张


(1)设置表的主键
  • 单字段
  • mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_10,第10张

  • 多字段
  • mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_11,第11张


(2)设置表的外键

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_12,第12张


(3)设置表的非空约束

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_13,第13张


(4)设置表的唯一性约束

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_14,第14张


(5)设置表的属性值自增

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_15,第15张


(6)设置表的属性的默认值

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_16,第16张

2、查看表的结构

  • 1、desc table_name; 查看表内的值

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_17,第17张

  • 2、show create table table_name; 查看创建表时的完整语句

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_18,第18张

3、修改表

(1)修改表名

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_19,第19张


(2)修改字段的数据类型

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_20,第20张


(3)修改字段名

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_21,第21张


(4)增加字段

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_22,第22张


(5)删除字段

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_23,第23张


(6)修改字段的排列位置

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_24,第24张


(7)更改表的存储引擎

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_25,第25张


(8)删除表的外键约束

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_26,第26张


4、删除表

  • 1、删除没有被关联的普通表
  • 2、删除被其他表关联的父表
    最简单直接的办法就是,先删除子表,再删除父表。但是这样子可能会影响其他数据;另一种办法就是,先删除子表的外键约束,然后再删除父表。

5、查询表

  • select的基本语法形式如下:

(1)查询所有字段
  1. 列出所有字段
  2. 使用 " * " 查询所有字段
(2)查询指定字段

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_27,第27张

(3)查询指定记录

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_28,第28张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_29,第29张

(4)带in的关键字查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_30,第30张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_31,第31张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_32,第32张

(5)带between and的范围查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_33,第33张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_34,第34张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_35,第35张

(6)带like的字符匹配查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_36,第36张

示例:select * from Student where Sname like ‘%n%’;

(7)查询空值

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_37,第37张

示例:select * from Student where Sname is not null;

(8)带and的多条件查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_38,第38张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_39,第39张

(9)带or的多条件查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_40,第40张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_41,第41张

(10)查询结果不重复

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_42,第42张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_43,第43张

(11)查询结果进行排序

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_44,第44张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_45,第45张

(12)分组查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_46,第46张

WITH ROLLUP 关键字会在所有记录的最后加上一条记录,该记录是上面所有记录的总和。

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_47,第47张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_48,第48张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_49,第49张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_50,第50张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_51,第51张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_52,第52张

(12)用limit限制查询结果的数量


mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_53,第53张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_54,第54张

2.

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_55,第55张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_56,第56张

(13)使用集合函数查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_57,第57张

(14)连接查询

          1.内连接查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_58,第58张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_59,第59张

          2.外连接查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_60,第60张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_61,第61张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_62,第62张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_63,第63张

          3.复合条件查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_64,第64张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_65,第65张

(15)子查询
①带in关键字的子查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_66,第66张

②带比较运算符的子查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_67,第67张

③带exists关键字的子查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_68,第68张

④带any关键字的子查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_69,第69张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_70,第70张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_71,第71张

⑤带all关键字的子查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_72,第72张

(16)合并查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_73,第73张

(17)为表和字段取别名
①为表取别名

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_74,第74张

②为字段取别名

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_75,第75张

(18)使用正则表达式查询

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_76,第76张


①查询以特定字符或字符串开头的记录

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_77,第77张

②查询以特定字符或字符串结尾的记录

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_78,第78张

③用符号“.”来替代字符串中的任意一个字符

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_79,第79张

④匹配指定字符中的任意一个

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_80,第80张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_81,第81张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_82,第82张

⑤匹配指定字符以外的字符

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_83,第83张

⑥匹配指定字符串

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_84,第84张

⑦使用“ * ”和“ + ”来匹配多个字符

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_85,第85张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_86,第86张

⑧使用{M}或者{M,N}来指定字符串连续出现的次数

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_87,第87张

6、插入数据

(1)为表的所有字段插入数据

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql 理论tps_88,第88张

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_89,第89张

(2)为表的指定字段插入数据

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_90,第90张

(3)同时插入多条数据

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_91,第91张

(4)将查询结果插入到表中

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_92,第92张

7、更新数据

mysql 理论tps mysql理解,mysql 理论tps mysql理解_mysql_93,第93张

8、删除数据

mysql 理论tps mysql理解,mysql 理论tps mysql理解_字段_94,第94张

四:MySQL运算符

MySQL的运算符和Java语言很多运算符的含义是一样的,但也有区别,运算符多用在SQL语句当中,对SQL查询做各种条件过滤的。

(一)算术运算符

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据_95,第95张

(二)逻辑运算符

NOT逻辑非 AND逻辑与 OR逻辑或

(三)比较运算符

mysql 理论tps mysql理解,mysql 理论tps mysql理解_数据库_96,第96张



https://www.xamrdz.com/backend/39u1938780.html

相关文章: