数据库基础
正文:
- 基本介绍
- Navicat基本使用
- 数据库操作
- 数据表操作
- 数据操作-增删改
数据库:是指长期存储在计算机内、有组织的数据集合
表是数据库中存储数据的基本单位,数据按照分类存储到不同的表中,能够非常高效的查询其中的数据。
常见数据库分类:
- 关系型数据库
- 非关系型数据库
查看数据库排名:https://db-engines.com/en/ranking
关系型数据库
RDMS:(Relational Database Management System)关系型数据库系统
将数据间的关系以数据库表的形式加以表达,并将数据存储在表格中,以便于查询。
关系型数据库的代表产品:
- Oracle:在大型项目中使用,例如: 银行、电信等项目
- MySQL:Web 项目中使用最广泛的关系型数据库
- Microsoft SQL Server: 在微软的项目中使用
- SQLite:轻量级数据库,主要应用在移动平台
关系型数据库的核心元素:
- 数据行(一条记录)
- 数据列(字段)
- 数据表(数据行的集合)
- 数据库(数据表的集合,一个数据库中能够有n多个数据表)
非关系型数据库
将数据以key,value、文本、图片等形式存储的数据构成
- Redis
- MongoDB
SQL介绍
SQL: Structured Query Language (结构化查询语言),通过SQL语言可以对数据库进行操作
主流的关系型数据库都支持使用 SQL 语言进行操作,也就是说可以通过 SQL 语言操作 Oracle.
MySQL、Microsoft SQL Server、SQLite 等关系型的数据库。
SQL语言的分类
- DQL:数据查询语言,用于对数据进行查询,例如:select
- DML:数据操作语言,对数据进行增加、修改、删除,例如: insert、update、delete
- DCL: 数据控制语言,进行授权与权限回收,例如: grant、revoke
- DDL: 数据定义语言,进行数据库、表的管理等,例如: create、drop
注意:1,对于测试工程师来说,重点是数据的查询,因此需要熟练编写DQL 2,在 MySQL中,默认对 SQL 语法不区分大小写
远程连接数据操作
(1)第一步,建立Mysql数据库连接
(2)配置信息并测试连接
注意事项:
数据类型和约束
常用数据类型
整数无符号设置
约束
主键
不能为空
唯一
默认值
外键
数据库操作
- 创建数据库
- 使用数据库
创建数据库
新建查询窗口
执行单条语句
语法格式
-- 创建数据库 create database 数据库名 [charset] [字符编码] [collate] [校验规则]; -- 创建结果查看 数据库名;show create database;
举例
-- 创建一个叫python的数据库 create database python charset=utf8 collate=utf8_general_ci; -- 查看创建结果 show create database python;
使用数据库
语法格式
-- 使用(打开)数据库 use 数据库名; -- 查看当前使用的数据库,database是SQL的内置函数,括号不能省略 select database();
举例说明
-- 使用(打开)python数据库 use python;
修改数据库
语法格式
alter database [数据库名] [default] character set <字符集名> [default] collate <校对规则名>;
举例说明
-- 创建testpython数据库,字符集为gb2312 create database testpython charset=gb2312 -- 修改testpython的指定字符集修改为 utf8mb4,默认校对规则修改为utf8mb4_general_ci alter database testpython default character set utf8mb4 default collate utf8mb4_general_ci;
删除数据库
语法格式
drop database 数据库名;
举例说明
-- 删除python数据库 drop database python;
数据库其他操作
查看所有数据库
show database;
备份数据库(Linux命令行)
mysqldump -uroot -p 数据库名 > python.sql; -- 按提示输入mysql的密码
恢复数据库(Linux命令行)
mysql -uroot -p 新数据库名 < python.sql -- 根据提示输入mysql密码
数据表的操作
创建表
-- 创建表 create table 表名( 字段名 类型 约束, 字段名 类型 约束 ... ); -- 查看创建的表 show create table 表名;
举例说明
例:创建学生表,字段要求如下:
姓名(长度为10)
create table students( name varchar(10) )
例:创建学生表,字段要求如下:
姓名(长度为10),年龄
create table students( name varchar(10), age int unsigned );
例:创建学生表,字段要求如下:
姓名(长度为10),年龄,身高(保留小数点两位)
-- unsiged:无符号,primary:主键,auto_increment:自动增长
create table students( id int unsigned primary key auto_increment, name varchar(20), age int unsigned, height decimal(5, 2) );
-- 扩展:判断表是否存在,存在时先删除再创建
drop table if exists students;
获取创表语句
查看表信息
show create table students;
查看表结构
语法格式
desc 表名;
举例说明
desc students;
删除表
语法格式
-- 格式一 drop table 表名; -- 格式二 drop table if exists 表名;
举例说明
例如:删除学生表
drop table students; -- 或者 drop table if exists students;
数据操作-增删改
添加数据
添加一行数据
格式一:所有字段设置值,值的顺序与表中字段的顺序对应
说明:主键列是自动增长,插入时需要占位,通常使用0或者default 或者 null来占位,
insert into 表名 values(...)
例如:插入一个学生,设置所有字段的信息
insert into students values(0,'亚瑟',22,177.56)
格式二:部分字段设置值,值的顺序与给出的字段顺序对应
insert into 表名(字段1,...) values(值1,....)
例如:插入一个学生,只设置姓名
insert into students(name) values('老夫子')
添加多行数据
方式一:写多条insert语句,语句之间用英文分号隔开
insert into students(name) values('老夫子2'); insert into students(name) values('老夫子3'); insert into students values(0,'亚瑟2',23,167.56);
方式二:写一条insert语句,设置多条数据,数据之间用英文逗号隔开
格式一:insert into 表名 values(...),(...)...
例如:插入多个学生,设置所有字段的信息
insert into students values(0,'亚瑟3',23,167.56),(0,'亚瑟4',23,167.56)
格式二:insert into 表名(列1,...) values(值1,...),(值2,...)...
insert into students(name) values('老夫子'),('老夫子2')
修改字段值
语法格式
update 表名 set 列1=值1,列2=值2... where 条件;
举例说明
例如:修改id为5的学生数据,姓名改为 狄仁杰,年龄改为20
update students set name='狄仁杰',age=20 where id=5
删除表记录
语法格式
格式一
delete from 表名 where 条件;
举例说明
例如:删除id为6的学生数据
delete from students where id=6;
逻辑删除:对于重要的数据,不能轻易的执行delete语句进行删除,因为一旦删除,数据无法恢复,此时可以考虑进行逻辑删除。
1,给表添加字段,代表数据是否删除,一般起名isdelete,0代表未删除,1代表删除,默认为0
2,当要删除某条数据时,只需要设置这条数据的isdelete字段为1
3,以后在查询数据时,只查询出isdelete为0的数据
学习:黑马测试