目录
1.数据库基础概念
2.SQL介绍
3.MySQL介绍
4.数据库连接工具Navicat
5.数据类型
6.约束
7.对数据库操作的SQL语句
7.1创建数据库
7.2使用/打开/切换数据库
7.3修改数据库
7.4删除数据库
7.5查看所有数据库
7.6数据库备份
8.数据库表操作的SQL语句
8.1创建数据库表
8.2查看表结构
8.3 删除数据库表
9.表记录操作的SQL语句
9.1插入数据
9.2修改字段值
9.3删除数据
1.数据库基础概念
数据库是典型的软件服务器,保存项目中产生数据的程序。 表是数据库中存储数据的基本单位。 注意:对于测试工作而言,如果项目页面没有实现,我们想要校验数据,可以直接查询数据库实现。 数据库分类:关系型数据库(RDMS ,Relational Database Management System,关系型数据库管理系统)、非关系型数据库。关系型数据库有表的概念,例如Oracle(在大型项目中使用,银行、电信等项目)、MySQL(Web项目中使用最广泛)、Microsoft SQL Server(在微软项目中使用)、PostgreSQL、Microsoft Assess、SQLite(轻量数据库,主要应用在移动平台);非关系型数据库没有表的概念。如果软件末尾有"Lite"字样,表示软件是轻量化的。 关系型数据库的核心要素:数据行(一条记录)、数据列(一个字段)、数据表(数据行的集合)、数据库(数据表的集合)。 非关系型数据库:将数据以key,value、文本、图片等形式进行存储的数据库,例如Redis、MongoDB。
2.SQL介绍
SQL全称Sructured Query Language(结构化查询语言),主流的关系型数据库都支持通过SQL语言进行操作。 SQL语言分类:DQL(数据查询语言,对数据进行查询,如select,对于测试来讲查询最重要) 、DML(数据操作语言,对数据进行增加、修改、删除,如insert、update、delete)、DCL(数据控制语言,对数据库进行授权和权限回收,如grant、revoke)、DDL(数据定义语言,进行数据库、表的管理,如create、drop)。 注意:对于MySQL而言,SQL语句不区分大小写,凡是大写的一般不是自己写的,是自动生成的。
3.MySQL介绍
MySQL属于Oracle旗下产品,MySQL社区版是免费使用的,而Oracle是收费的商用版。 特点:社区版免费、多平台(Windows、Linux、macOS都能用)、多语言(Java、Python都能与其交互)、适用范围广泛、是学习数据库开发和使用的首选。 MySQL2008年被Sun公司收购,Sun公司又被Oracle收购,MySQL原来的开发者重新开发了一个MariaDB软件。
4.数据库连接工具Navicat
由于数据库软件处于服务器中,想要操作数据库就必须使用远程工具连接数据库后进行操作。 Navicat是最常用的工具。 想要远程连接服务器的数据库,需要有数据库所在服务器的IP地址和数据库的端口号(默认是3306),向相关人员获取数据库的用户名和密码,使用数据库连接工具连接数据库即可,远程连接需要注意网络的连通性。 注意:1.数据库连接名用于区分多个数据库。2.默认存在的数据库不能随意使用。3.数据库名不要写中文。4.字符集负责中文乱码问题,选utf8 ,排序规则选utf8-general-ci 。5.需要先把数据清空,再去设计表,否则可能会报错。
5.数据类型
整数:int,有符号取值范围-2147483648~2147483647,无符号unsigned取值范围0~4294967295。 小数:decimal,decimal(5,2)表示共存5位数,其中2位是小数,3位是整数。 字符串:varchar,范围为0~65533,varchar(3)表示最多存3个字符,一个中文字或一个字母都占一个字符 。不涉及到数基本都是字符串。 日期时间:datetime,范围1000-01-01 00:00:00~9999-12-31 23:59:59。
6.约束
主键(primary key)用于保证数据库表中每一条数据的顺序是固定的,不会由于删除或增加数据而导致数据乱序。设为主键的同时会设为非空,一般是自动递增的,且无符号,一般一张表有且只有一个主键。 非空(not null):设置字段内数据必须有值,不能为空。 唯一(unique):当前字段内的数据不允许有重复值。在Navicat中在"索引"中设置唯一。 默认值(default):当前字段不填写值就自动填上默认值,如果填写就以填写的值为准,如果默认值为字符串,必须加引号"XXX"。 外键(foreign key):一个表中的一个字段是另一个表的主键。
7.对数据库操作的SQL语句
7.1创建数据库
创建数据库语法:create database 数据库名 [charset=字符编码] [collate=检验规则] ;
例如:
查看数据库语法:show create database 数据库名; 注意:如果查询窗口有多条SQL语句,需要先选中某条语句之后选择“运行选中语句”。
7.2使用/打开/切换数据库
使用/打开/切换数据库的语法:use 数据库名; 查看当前使用的数据库:select database(); 注意:database()是SQL的内置函数,括号不能省略。
7.3修改数据库
修改数据库的语法:alter database [数据库名] [dafault] character set<字符集名> [default] collate<校对规则名>;
例如:
7.4删除数据库
删除数据库的语法:drop database 数据库名;
7.5查看所有数据库
查看所有数据库的语法:show databases;
7.6数据库备份
在测试工作中,为了防止对数据库产生错误操作或产生垃圾数据,都需要在操作前对数据库进行适当的备份操作。垃圾数据:例如在自动化测试过程中,对注册模块操作生成的所有数据,应该清理。 在数据库上,右键,选择转储SQL文件,一种是仅结构,一种是结构+数据。仅结构就是字段,结构+数据就是字段+数据,一般情况下,选择结构+字段。 自定义存储路径,修改备份文件,存储即可。在数据库上,右键,选择运行SQL文件,选择备份的SQL文件,点击开始,运行成功SQL文件后,数据恢复。 命令行方式连接数据库的SQL语句:mysql -u数据库用户名 -p 数据库密码,u表示username,p表示password。mysql>模式下仅支持SQL语句。 备份数据库的SQL语句:mysqldump -u数据库用户名 -p 数据库名 > 备份文件名.sql,并根据提示输入数据库密码。 恢复数据库的SQL语句:mysql -u数据库用户名 -p 数据库名 < 备份文件名.sql,并根据提示输入数据库密码。
8.数据库表操作的SQL语句
8.1创建数据库表
drop table if exists 表名;
create table 表名(字段名 类型 约束,字段名 类型 约束,...
);
例如: 约束包括:unsigned(无符号)、primary key(主键)、auto_increment(自动增长)、not null(非空)。 通过Navicat工具获取创表语句的方法有两种:1.选择表->选右边栏->选DDL;2.show create table 表名;
8.2查看表结构
8.3 删除数据库表
删除表的语句:drop table 表名; 作用:数据和字段均删除不再存在。
9.表记录操作的SQL语句
9.1插入数据
增加一行数据的语句:1.所有字段设置值,值的顺序与表中字段的顺序对应:insert into 表名 values(...);2.部分字段设置值,值的顺序与给出的字段顺序对应:insert into 表名(字段1,...) values(值1,...); 注意:主键字段自动增加,插入时需要占位,通常使用0来占位。 增加多行数据的语句:1.写多条insert语句,语句之间用分号隔开:insert into 表名(...) values(...);insert into 表名(...) values(...);insert into 表名(...) values(...);...;;2.写一条insert语句,设置多条数据,数据之间用英文逗号分开:insert into 表名(...) values(...),(...),(...);
9.2修改字段值
修改字段值的语句:update 表名 set 列1=值1,列2=值2,列3=值3,... where 条件; 注意:where不能省略,否则会修改整列数据。
9.3删除数据
删除数据的语句:delete from 表名 where 条件; 注意:对于重要的数据,不能轻易执行delete操作删除,因为一旦删除这些数据就无法恢复,这时可以逻辑删除数据 。逻辑删除(又叫假删除)就是通过某一指定字段的特定值表示数据是删除或被删除的状态。 删除表的所有数据保留表结构的语句:truncate table 表名;或者delete from 表名;这两种方式的区别是后者只是删除数据,但是不重置主键字段的计数,而前者会重置主键字段的计数。