支付业务流程
SSL v2 v3(unsafity)
支付的全流程
支付系统结构设计:
24种测试策略、测试方法(324号文)
测试经验积累
推动测试类型
删除MySQL57服务
sc delete Mysal57
问题:
多表查询
达梦 神通 TIDB
掌握一种数据库
数据库概述
数据库(Database)是“按照数据结构来组织、存储和管理数据的仓
库”。
MySQL特点
永久存储:数据库中的数据是长期存储在计算机内的,可以反复查询
和使用。
有组织:数据库中的数据不是杂乱无章的,而是按照一定的数据模型
和结构进行组织的。
可共享:数据库中的数据可以被多个用户或应用程序共享,实现数据
资源的有效利用。
统一管理:数据库管理系统(DBMS)提供对数据库的统一管理和控制,
确保数据的安全性、完整性和一致性。
数据库根据其特点和应用场景的不同,可以分为多种类型
主要包括
关系型数据库和非关系型数据库两大类。
跨平台:
支持多个平台使用。支持linux \windows\ios等
高性能:
MySQL通过优化查询算法、使用索引和缓存等技术手段.
免费:
开源的。免费的。
关系型数据库:
- 数据组织形式: 表格形式(行和列)
- 特点: 表间可建立关联,注重数据一致性和完整性
- 适用场景: 复杂事务处理、需要严格数据结构的应用
- 常见数据库: MySQL、Oracle、SQL Server
非关系型数据库:
- 数据组织形式: 键值对、文档、列族、图形等
- 特点: 注重性能和灵活性
- 适用场景: 高性能、大规模数据存储、分布式部署
- 常见数据库: MongoDB、Redis、Cassandra
区别
是否使用表格
灵活性:
MySQL支持多种存储引擎,如InnoDB, MyISAM, Memory
等,每种存储引擎都有其独特的特点和适用场景。用户可以根据需要
选择合适的存储引擎,以满足不同的性能需求。
mysal 语言
MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL 数据库系统使用最常用的数据库管理语言——结构化查询语言(SQL)进行数据库管理,结构化查询语言包含 DDL、DML、DQL、DCL。
DDL (Data Definition Language):数据定义语言,主要进行定义或改变表的结构、数据类型、表之间的连接等操作,常用的语句关键字有create、drop、alter等。
DML (Data Manipulation Language):数据操作语言,主要对数据进行增加删除修改等操作,常用的语句关键字有insert、update、delete等。
DQL (Date Query Language): 数据查询语言,查询操作,常用关键字: select、from, where等
DCL (Data control Language): 数据控制语言,主要用来设置或更改用户权限,常用的关键字有grant, revoke等。
启动MySql服务:
net start服务名称
关闭Mysq!服务:
net stop服务名称
Mysql 登录和退出:
登录: Mysql-h目标地址-u用户-p密
码
-h :指的是 IP 地址,如果没有带-h。默认
访问的是本地主机的。也就是Localhost
或者 127.0.0.1
-u 是指 user,指的是用户,后面跟用户名
-p指的是password,也就是密码。后面跟
该用户对应的密码
退出:quit 和 exit
(查看有哪些库,;号代表SQL语句的结束)
mysql> show databases;
Database
information_schema
crm
mysql
performance_schema
quote
ry
sakila
sys
world
9 rows in set (0.04 sec)
mysql> use mysql;
Database changed
mysql> shou tables
修改密码
第一步: use mysql
(该库存储密码等关键数据)
第二步: UPDATE user SET authentication_string=PASSWORD('123456') WHERE User='root' AND Host='localhost';
数据库授权
创建用户 identified
use mysql
CREATE USER 'lihua'@'localhost' IDENTIFIED BY '123456';
username
:用户名host
:主机登录地址
新用户默认只能看到
information_schema
库,无其他权限。
授权语法
GRANT [权限] ON [数据库.表] TO 'username'@'...host';
FLUSH PRIVILEGES; # 刷新权限
示例(给localhost的lihua授予select权限):
GRANT SELECT ON *.* TO 'lihua'@'localhost';
FLUSH PRIVILEGES;
create database库名: 是指创建库
库是唯一的,不能同名
当不确定该库是否已经创建,可以使用create database if not exists
Default character set 代表设置字符集
例子:如果要创建一个my的库,同时字符集为utf8mb4
Mysal 里面存在 utf8mb3
utf8mb4
utf8mb3
: 3字节字符占一个长度utf8mb4
: 4字节字符占一个长度(支持更多字符/符号)
创建数据库语法:
create database if not exists my default character set utf8mb4;
删除数据库语法:
DROP DATABASE 数据库名;
DROP DATABASE IF EXISTS 数据库名; # 增加容错处理
导入sql文件
导入sql文件的方法:
第一个 通过数据库管理工具
第二个source D: crm.sql 导入该sql文件。
show tables; 查看库里面有哪些表(一定要先Use库)
desc student(查看表结构)
从左到右分别表示的是:字段名称(列属性)、字段类型、是否允许
为空、索引类型、默认值和扩充
create table student(id int(10),class varchar(10),name char(10));
是指创建表, id class name都是指字段名,字段名命名应该有一定规则。按照实际情况进行命令。.int varchar char都是指数据库的数据类型。student代表的是表名
show create table student;
查看完成的创建表的语法结构
整数类型一共有5种,包括
TINYINT、 SMALLINT、 MEDIUMINT、INT(INTEGER)和 BIGINT。
类型 | 字节 | 有符号范围 | 无符号范围 | |
---|---|---|---|---|
TINYINT | 1 | -128 ~ 127 | 0 ~ 255 | |
SMALLINT | 2 | -32768 ~ 32767 | 0 ~ 65535 | |
MEDIUMINT | 3 | -8388608 ~ 8388607 | 0 ~ 16777215 | |
INT/INTEGER | 4 | -2147483648 ~ 2147483647 | 0 ~ 4294967295 | |
BIGINT | 8 | -9223372036854775808 ~ 9223372036854775807 | 0 ~ 18446744073709551615 |
整数类型显示宽度说明
int(M)
zerofill
M
:表示显示宽度,取值范围 (0,255)(指的是255个数字长度)- 示例:
int(5)
- 当数字位数 <5 时,会在前面填充字符(需配合
ZEROFILL
使用) ZEROFILL
表示用 "0" 填充,否则显示宽度无效
- 当数字位数 <5 时,会在前面填充字符(需配合
- 注:实际存储空间和取值范围不受 M 影响
UNSIGNED:无符号类型(非负),所有的整数类型都有一个可选的属性 UNSIGNED(无符号属性),无符号整数类型的最小取值为 0。所以,如果需要在 MySQL 数据库中保存非负整数值时,可以将整数类型设置为无符号类型。
int类型默认显示宽度为int (11),无符号int类型默认显示宽度为
int (10)。
给字段添加注释(comment指的是注释:说明要填入什么内容):
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) DEFAULT NULL COMMENT '用户的电子邮件地址'
);
浮点数类型包括单精度浮点数(FLOAT)和双精度浮点数(DOUBLE)。MySQL 使用浮点数类型和定点数类型(DECIMAL)来表示小数。
char 定长和 varchar() 不定长
create table student(id int ,address char(10)) (占用10个长度)
char (10)类型是指定长。不管存储多长的数据,都默认为10个长度
varchar(255),类型是指不定长,根据实际传递的值,来确定其实际长度
TEXT类型是一种特殊的字符串类型。TEXT只能保存字符数据,如新
闻的内容等。TEXT类型包括TINYTEXT、TEXT、 MEDIUMTEXT、LOGTEXT
日期与时间类型
日期与时间类型是为了方便在数据库中存储日期与时间设计的,
其中YEAR类型表示时间;DATE类型表示日期;TIME类型表示时间;
DATETIME 和 TIMESTAMP 表示日期和时间。
注意时间范围:
create table users(
id int auto_increment primary key,
qq char,
name varchar,
time datetime
格式 YEAR
);
drop(删除表) delete(删除数据) try cate(删除表结构,保留数据)
decimal (10, 2):
- 定点数类型往往使用在需要高精度计算中,比如说工资。税务方面。
10
表示数字总长度2
表示小数点后保留2位- 适用于需要精确计算的数值,如金额
- 实际存储范围:-99999999.99 到 99999999.99
- 精确存储:以字符串形式存储数字,无精度损失
- 适合:财务系统、货币金额等需要精确计算的场景
- 而 float,double 计算方式经过二进制计算之后,不太准确。
浮点数(FLOAT/DOUBLE):
- 以二进制科学计数法存储
- 存在精度损失(如0.1存储不精确)
- 计算速度快
- 适合:科学计算、不需要绝对精度的场景
字符串类型是在数据库中存储字符串的数据类型,包括 CHAR、
VARCHAR、 TEXT、 ENUM、 SET。
修改表名
alter table student rename to stu;
RENAME TABLE旧表名TO新表名;
增加一行数据:
插入完整数据:
INSERT INTO 表名 VALUES (值1, 值2, 值3);
-- 注意:需要跟表的字段一一对应
插入指定字段数据:
INSERT INTO 表名(字段1, 字段2) VALUES (值1, 值2);
-- 只插入指定字段的值,其他字段为NULL或默认值
示例表:
CREATE TABLE student(
id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
name VARCHAR(10),
sex ENUM('男', '女'),
birth DATE,
department VARCHAR(20),
address VARCHAR(50)
) DEFAULT CHARSET utf8mb4;
示例数据:
-- 完整插入
INSERT INTO student VALUES
(901, '张老大', '男', '1985-01-01', '计算机系', '北京市海淀区');
-- 部分插入
INSERT INTO student(id, name, sex) VALUES (2, '蔡徐坤', '男');
另一种插入方式
INSERT INTO 表名
SET 字段1=值1, 字段2=值2, 字段3=值3;
-- 示例
INSERT INTO student
SET id=1, name='顶针', sex='女';