数据库基础

正文:

  • 基本介绍
  • 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的数据

 

 

 

 

学习:黑马测试

posted @ 2023-07-18 17:59  天才九少  阅读(12)  评论(0编辑  收藏  举报