目录
什么是数据、数据库
- 数据是数据库中存储的基本对象,种类包括文字、图形、图像、声音等等。
- 数据库(database)是以某种有组织的方式存储的数据集合,保存有组织的数的容器,通常是一个文件或者一组文件。
- 理解数据库的一种最简单的办法是将其想象为一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。
数据库在工作中的应用
- 部署测试环境需要安装数据库、配置数据库。
- 数据库中构造初始化数据。(接口测试时,没有界面的时候,需要去数据库去查看)
- 测试执行过程中需验证数据库中的数据是否正确。
- 有些时候验证功能,需要修改数据库中的数据。
- 构造数据进行性能测试,大数据量测试。
数据库管理软件(DBMS)
- 数据库存放于文件中,管理该数据库的软件称为数据库管理软件(DBMS)。
- 对数据库的操作与管理是通过数据库管理软件来完成的。
- 行业中主流的数据库管理软件有ORACLE、SQLSERVER、MySQL等。
- 本课程讲解MySQL的使用。
MySQL数据特点
- MySQL是一种关系型数据库管理系统,关系数据库将保存在不同的表中,而不是将所有数据放在一个大仓库,这样就增加了速度并提高了灵活性。
- MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
- MySQL分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
MySQL数据库架构
- MySQL是基于客户机-服务器模式(C/S)的数据库管理软件,客户机-服务器应用分为两个不同的部分:
- 服务器是负责所有数据访问和处理的软件,这个软件运行在称为数据库服务器的计算机上;与数据文件打交道的只有服务器软件,书籍添加、删除、更新的所有请求操作都是由服务器软件完成。
- 客户机是与用户打交道的软件,服务器处理客户机发送的请求,并把处理结果返回给客户机。
MySQL服务器与客户端
- 为了能够使用MySQL,需要有MySQL服务器软件与MySQL客户端软件。
- 通常情况下安装MySQL,会安装MySQL服务器软件与默认的客户端软件。
- 数据库和表都是创建在服务器端(设备)。
数据表(关系表)
- 关系数据库中的数据是保存在表里面的,存储在表中的数据是一种特定类型的数据。在数据库中,表有一个唯一的名字。在数据库中,表有一个唯一的名字来标识该表,称为表名。
- 表定义了数据在表中如何存储,如可以存储什么样的数据,数据如何分解,各部分信息如何命名等等。
- 比如:将京东商城的客户信息保存在一个顾客表中,可以取名customer。
-
注意:表名不可以重名。
表结构
- 表由列组成,列中存储着表中某部分的信息。
- 所有表都是由一个或多个列组成的。
- 比如:在学生表中,一个学生信息如下:学号,姓名,性别,班级,手机号等等,相同的属性的值都存放在一列,比如学号存放在一列,姓名存放在一列。
- 而这个属性在我们数据表也叫字段。
一行记录由多个属性值(字段)组成的。
一行叫做一条记录。
一列叫做一个字段(属性)
学号 | 姓名 | 性别 | 班级 | 年龄 | 联系电话 |
行
- 表中的数据是按行存储的,一行就是一条记录。
- 如果将表想象为网格,网格中垂直的列为表列,水平行为表行
行实例
主键(PRIMARY KEY)
- 唯一标识表中每行的这个列(或几个列)称为主键。
- 主键用来表示一个特定的行。
- 表中任何列都可以作为主键,主要满足一下条件。
- 任意两行都不具有相同的主键值,即主键值不能重复。
- 每个行都必须具有一个主键值,即主键值不能为空(NULL)。
注意,一张表只能有一个主键,主键也有可能是多个列的组合,组合值必须唯一且不能为空。
外键(FOREIGN KEY)
- 列A存在于表1和表2中,如果列A在表1中是主键,那么列A是表2的外键。
- 外键表示了两个表之间的相关联系。
- 以另一个表的外键作主键的表被称为主表,具有此外建的表被称为主表的从表。
- 外键又称作外关键字。
- ①外键只能引用其他表中主键的值,②外键可以为空值或者可以重复。
外键的作用
- 保持数据一致性,完整性
- 主要目的是控住存储在外键表中的数据。是两张表形成关联,外键只能引用外表中的列的值或者使用空值。
- 最直观的作用是防止非法数据录入,就是说录入外键数据时必须在它所属的主表中存在相应数据,如果录入空字符或其他数据会报错。
外键实例说明
- 保有两张表,用户表和订单表:
- 如果删除了用户表里的用户,那么订单表里面和这个用户有关的数据,就成了无头数据了,不完整了;
- 如果在订单表里,随便插入了一条数据,这个订单在用户表里面,没有之对应的用户。这样数据也不完整了;
- 如果有外键的话,可以不让用户删除数据,或者删除用户的话,通过外键同样删除订单表里的数据,这样也能让数据完整。
SQL语言
- SQL是结构化查询语言,是一种专门用来与数据库通信的语言。
- SQL语言由国际标准委员会定义,但是不同的数据库管理系统采用的SQL语言会存在一些小的差异。
启动MySQL服务
启动服务:双击启动MySQL数据库.bat,出现命令窗口之后不可以关闭。
客户端软件--MySQL Workbench 6.1 CE
select查询语句
- MySQL使用select语句查询数据。
- select语句的作用是从一个或多个表中查询信息。
- 使用select语句,必须至少给出两条信息:
- 选择什么(字段名)
- 从什么地方选择(表名)
- 注意:SQL语言中,不区分大小写,每一条SQL语句,使用英文分号“;”表示结尾。
查询特定列
- 格式:select 列名 from 数据库.表名;
- #(ctrl+enter) 执行当前行
- 说明:如果在from后面直接使用表名的话,需要先指定使用的是哪个数据库。
查询多列
- 格式:select 列1,列2,... from 表名;
查询所有列
- 格式:select * from 表名;
避免查询到重复的内容
- 如果查询到的两行内容一样,默认情况下,MySQL是会显示这些重复的行;
- 如果需要相同的行只显示一次,可以使用distinct关键字。
- 格式:select distinct 列名 from 表名;
设定查询结果返回的行数
- 如果一个表的行数非常多,可以使用limit关键字,指定需要返回多少行。
- 格式1:select 列名 from 表名 limit n;
- 例如:limit 3是指前三行
- 说明:n是限定的行数;
- 格式2:select 列名 from 表名 limit n,m; #只显示从第n行开始的后面m行。
- 说明:MySQL中的行号是从0开始计算的,limit 2,3是第3行开始往后数3行,也就是第3,4,5行。
查询结果排序
- 为了明确的排序用select语句查询出的数据,可使用 order by 语句。默认是升序(asc),降序是(desc)
- order by语句取一个或多个列的名字,根据这些列进行排序。
- 格式:select 列名 from 表名 order by 列名;
- select 列名 from 表名 order by 列名1,列名2;
- 例如:select * from products order by vend_id,prod_name,prod_price asc(desc);
- #(先按vend_id排序,vend——id相同的数据,再根据prod——name去排序,然后在根据prod_price排序)
order by 与 limit 组合
- 使用order by 与 limit 的组合,能够找出一个列中最高或者最低的值。
- 例1:找出最贵物品的价格
- select prod_name,prod_price from products order by prod_price desc limit 1;
- 说明:order by 子句位于from子句之后,如果使用limit,那么它必须位于order by之后