MySQL数据库基础

目录

一、了解数据库

二、MySQL安装和调试

MySQL下载地址

启动MySQL服务器

进入MySQL

三、操作命令

SQL语句编写规范:

常见命令:

查看当前已有的所有数据库

创建数据库

字符集

删除数据库

查看某一个数据库的信息

选择数据库

查看数据库中全部的表

创建表

数据类型

查看表结构

插入语句

(1)向表中所有的列插入数据

(2)向表中指定列,插入数据

更新语句

删除表中数据

删除表

重点:查询语句

查询表中全部列数据

查询表中指定列数据

给列起别名

去除重复的列值

分页(限制)查询

排序

有条件排序

聚合(分组)函数:

分组查询

having语句

子(嵌套)查询

(多表)连接查询

内连接查询

外连接查询

左外连接查询

右外连接查询

四、数据备份和权限管理以及引擎

数据备份和恢复

备份步骤:

恢复步骤:

权限管理

存储引擎

(1)查看系统支持的引擎

(2)查看某张表的详细信息

五、约束

1、主键约束

2、唯一约束

3、默认值约束

4、非空约束

5、外键约束

六、索引

1、创建索引

2、查看表中索引

3、索引提速

4、删除索引

七、视图

1、创建视图

2、查询语句

3、删除视图


一、了解数据库

什么是数据库?简单理解,就是存储数据的仓库

常见的数据库(眼熟就行,不用背)

MySQLOracle(ORACLE公司的,一般学校教的就这俩

DB2(IBM公司,花钱)

Sybase(和公司同名Sybase)

SQL server(MIC)

人大金仓(国产)

这里讲的虽然是MySQl,但是数据库指令都大同小异,指令基本通用

顺带提一下MySQL的特点:体积小、速度快、可跨平台

下面紫色背景是书上的官方话,不懂可以先不用管,技术活,会用就行。

MySQL是一个关系型数据库管理系统,适用于web应用。

数据库管理系统:用于管理数据库(存储数据的地方)的软件

数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。

数据库系统:完整的系统,由硬件部分和软件部分共同构成,软件部分包括DBMS、支持DBMS运行的操作系统、以及支持多种语言进行应用开发的访问技术等

二、MySQL安装和调试

(这一部分仅供参考,调试每个人电脑不太一样,如果失败建议参考其他大佬)

MySQL下载地址

https://dev.mysql.com/downloads/installer/

MySQL下载地址<-可以点这里直接跳转

默认安装路径:(可以改)

C:\Program Files\MySQL\MySQL Server 8.0

有关连接工具的知识补充:

使用数据库需要连接工具(SQLyog蓝色海豚、Navicat绿色的...)来操纵数据库

使用MySQL云服务连接 (利用云服务器搭建数据库,不用下载到本地)

MySQL Host Address 47.94.237.61

用户名:root

密 码:123456

端 口:3309

启动MySQL服务器

两种方式:

1.图形化方式:右键“此电脑”,选择“管理”,打开“计算机管理”窗口,找到“服务”打开,找到MySQL停止/启动服务器

2.命令行方式DOS命令(也就是电脑上win+R,输入‘’cmd‘’)打开终端,“net satrt”/“net stop”本机为“MySQL80”。若被拒绝访问,以管理员的身份打开cmd

进入MySQL

1.图形化开始——MySQL——MySQL80......

2.命令行:cmd窗口:mysql -h服务器IP地址 -P端口号 -u用户名 -p密码(p后直接回车使用密文密码)

本地默认端口3306可省略IP地址和端口号,简写MySQL -u*** -p***

三、操作命令

主要就是我整理的这些,一定要会!!!

操作命令也就是指sql语句,也被叫做结构化查询语句用于操作mysql数据库

我们对数据库的操作主要就是“增、删、改、查”,对于测试人员“”是重中之重。

SQL语句编写规范:

(1)SQL语句不分大小写

(2)SQL语句中建议关键字大写,其余部分小写

(3)SQL语句以分号;结尾,表示结束

常见命令:

查看当前已有的所有数据库

show databases;

注意:

这里的database要加“s”,所有的库,不止一个。

数据库语句以;结尾。

创建数据库

create database 数据库名称 charset 字符集;

说明:数据库名称不可以重复,一般用英文

字符集

utf8:通用码,几乎支持世界上所有国家字符,包括中文,一般都用这个。

gbk:国际标准码,支持中文简体字符

latin:支持西欧字符、希腊字母......

使用命令“show character set;”即可查看当前MySQL服务实例支持的字符集, 字符集默认的字符序,以及字符集占用的最大字节长度等信息。这条语句不常用, 知道有这个方法就可以。

删除数据库

drop database 数据库名称;

查看某一个数据库的信息

show create database 数据库名称;

选择数据库

use 数据库名称;

查看数据库中全部的表

show tables;

注意:table后加s

创建表

create table 表名(

列名1 数据类型,

列名2 数据类型,

......

列名n 数据类型

);

说明:

表名不能重复列名也不能重复 ;

数据类型

就是字面意思,数据的类型:

1.数值类:

整数型

int 表示整数类型,用来存储整数

浮点型

double(n,m) 表示小数类型,用来存储小数,n 表示数值的位数,m 表示小数的最大位数

2.字符类:

固定长度字符

char(n) 表示固定长度字符,n表示字符的长度,不够的自动空格补全)

可变长度字符

varchar(n) 表示可变长度长度,n表示字符的最大长度

3.日期时间类:

日期型

date 表示日期类型,常见日期类型格式:YYYY-MM-DD (年月日

日期时间型

datetime 表示日期时间类型,常见日期时间类型格式:YYYY-MM-DD HH:MM:SS(年月日  时分秒

查看表结构

desc 表名;

插入语句

(1)向表中所有的列插入数据
insert into 表名 values(列值1,列值2,.......,列值n);

说明:

values中的列值必须和表结构中的列名是一一对应的(数量、顺序、类型)。

如果是数值类型数据,直接填写列值,如果是字符或者日期时间类型数据,需要加单引号填写列值

(2)向表中指定列,插入数据
insert into 表名(列名1,列名2,......,列名n) values(列值1,列值2,.......,列值n);

说明:values中的列值和表中的列名是一一对应的(数量、顺序、类型)。

更新语句

update 表名 

set 列名1=新值,列名2=新值,......,列名n=新值

where 条件;

说明:

这是一条语句,为了方便观察结构,我在这里分行书写了,只有最后一行加了分号;

如果没有where条件,表示更新这一列的所有列值;

填写新值时,需要注意数据类型,要和列名保持一致。

删除表中数据

delete from 表名 where 条件;

注意:如果没where表示删除表中所有数据

删除表

drop table 表名;

重点:查询语句

测试人员一定得会!!!!!!!!!!!!!!!

查询表中全部列数据

select * from 表名;

说明:*表示全部的列

查询表中指定列数据

select 列名1,列名2 from 表名;

给列起别名

select 列名1 as 别名1,列名2 as 别名2 列名... as 别名... from 表名;

注意:as可以省略,列名和表明之间使用空格

去除重复的列值

select distinct 列名 from 表名;

分页(限制)查询

select * /列名 from 表名 limit 初始位置,行数;

说明:

初始位置:表示从哪里开始查询,可以省略,默认值是0,表示第一行

行数:表示总共要查询的记录数,从初始位置开始

排序

select */列名 from 表名

order by 列名1 asc/desc, 列名2 asc/desc;

说明:

asc 升序

desc 降序

多列排序规则:

先排第一列,将第一列排完后,如果第一列中有相同的列值,才会进行第二列排序 ,否则不排。

有条件排序

select */列名 from 表名

where 条件

order by 列名 1 asc/desc, 列名2 asc/desc;

条件说明:

关系运算符< > = >= <= != 或者 < >

逻辑运算符 and、or、not

特殊情况is、between...and、in、like

聚合(分组)函数:

min(列名);求最小值

max(列名) ;求最大值

sum(列名) ;求和

avg(列名);求平均数

count(列名/ *);求数量

count(*);表示统计某张表中,数据的总记录数

count(列名);表示统计某张表中,列值不为NULL的数据的总记录值

分组查询

分组查询就是根据表中的某一“列”,将表中的数据分成几组,,相同的列值分成一组,完成后,然后对每一组数据,使用聚合函数,最后得到结果。 分组必聚合

语法格式:

select 聚合函数/列名 from 表名

where 条件

group by 列名

order by 聚合函数/列名1 asc/desc,聚合函数/列名2 asc/desc;

having语句

having 语句就是对分组后的数据,再次进行过滤,我们使用having语句,having语句必须和group by一起使用。

语法格式:

select 聚合函数/列名 from 表名

where 条件

group by 列名

having 条件

order by 聚合函数/列名1 asc/desc,聚合函数/列名2 asc/desc;

where 和 having 的区别?

where 是对整张表的数据进行过滤,可以单独使用。

having 是对分组后的数据进行过滤,不可以单独使用,必须和group by一起使用。

子(嵌套)查询

子查询就是1条SQL语句的内部又包含1条或者多条SQL语句。

(多表)连接查询

连接查询就是,要查询的数据(列)分布在不同的表中,为了一次将不同表中的数据查询出来 ---- 连接查询

内连接查询

内连接查询就是,只查询几张表有关系(满足条件)的数据

select 别名1.*/列名,别名2.*/列名

from 表1 别名1 inner join( ) 表2 别名2 

on 连接条件;

外连接查询

说明:查询一张表中“全部”数据,以及另外一张表中“部分”数据。

左外连接查询

说明:查询左边表中“全部”的数据,以及右表中“部分”数据(和左边表有关系那部分)。

语法格式:

select 别名1.*/列名,别名2.*/列名

from 左表 别名1 left join 右表 别名2 

on 连接条件;

右外连接查询

说明:查询右边表中“全部”的数据,以及左表中“部分”数据(和右边表有关系那部分)。

语法格式:

select 别名1.*/列名,别名2.*/列名

from 左表 别名1 right join 右表 别名2 

on 连接条件;

四、数据备份和权限管理以及引擎

数据备份和恢复

备份步骤:

选择要备份的仓库

在工具栏,单击备份数据库为SQL转储图标

选择备份对象和方式,选择导出位置,单击导出按钮

恢复步骤:

(1)在工具栏中,单击执行SQL脚本图标

(2)选择要导入的SQL文件,单击执行按钮

权限管理

(1)在工具栏中,单击用户管理器图标

(2)单击添加用户按钮

(3)输入用户信息,选择相应的权限,并保存

存储引擎

数据库主要是通过存储引擎,来存储数据,不同的引擎存储数据的速度不同,不同数据库管理系统,支持的引擎各不相同。常见的存储引擎有:InnoDB、MyISAM、Memory......

(1)查看系统支持的引擎

show engines;

(2)查看某张表的详细信息

show create table 表名;

五、约束

说明:在创建时,对表设置一些规则,只有满足这些规则,我们才可以向表中插入数据,我们将这些规则叫做约束。

常见的约束有:

主键约束(primary key)

唯一约束(unique)

非空约束(not null)

默认值约束(default)

外键约束(foreign key)

1、主键约束

主键约束就是用来标识表中的记录,避免表中出现重复的数据,被主键约束所修饰的列,其列值是唯一且非空的,一张表中只能有一个主键约束

(1)创建表时,添加主键约束

(2)修改表时,添加主键约束

语法格式:

alter table 表名 add primary key(列名1,列名2,...,列名n);

(3)删除主键约束

语法格式:

alter table 表名 drop primary key;

(4)联合(复合)主键 --- 掌握

复合主键就是使用一个主键约束,来修饰多列的值。

2、唯一约束

唯一约束来修饰一列或者多列的组合值,使其具有唯一性,可以防止用户输入重复的列值,被唯一约束所修饰的列,其列值是唯一,可以为null的,一张表中可以有多个唯一的约束。

(1)创建表时,添加唯一约束

(2)修改表时,添加唯一约束

语法格式:

alter table 表名 add unique(列名1,列名2,...,列名n);

(3)删除唯一约束

语法格式:

alter table 表名 drop index(索引) key-name值;

语法格式:

show keys from 表名;

3、默认值约束

默认值约束就是用来指定某列的默认值,当执行插入操作的时候,如果被默认值约束所修饰的列,没有插入列值,系统会自动将默认值变成列值,且一列只有一个默认值。

(1)创建表时,添加默认值约束

(2)修改表时,添加默认值约束

语法格式:

alter table 表名 modify 列名 数据类型 default 默认值;

(3)删除默认值约束

语法格式:

alter table 表名 modify 列名 数据类型 default null;

或 

alter table 表名 modify 列名 数据类型;

4、非空约束

非空约束就是被非空约束所修饰的列,该列的列值不能为NULL,一张表中可以有多个非空约束

(1)创建表时,添加非空约束

(2)修改表时,添加非空约束

语法格式:

alter table 表名 modify 列名 数据类型 not null;

(3)删除非空约束

语法格式:

alter table 表名 modify 列名 数据类型;

5、外键约束

外键约束是用来维护2张表之间的关系的,被外键约束所修饰的列,该列的列值必须参照与之关联的另外一张表”主键”所在的列值

主(父)表:没有外键约束的表

子表:有外键约束的表

(1)创建表时,添加外键约束

(2)修改表时,添加外键约束

fk 外键 pk 主键

语法格式:

alter table 表名 add constraint 约束名 foreign key(子表列名) references 主表(主表列名);

(3)删除外键约束

语法格式:

alter table 表名 drop foreign key 约束名;

六、索引

索引是建立在表中列上的数据库对象,用于提高查询速度,所以有人称”索引是一种提高查询效率的机制”

1、创建索引

语法格式:

create index 索引名称 on 表名(列名);

2、查看表中索引

语法格式:

show index from 表名;

说明:

主键约束所修饰的列,自带索引

唯一约束所修饰的列,自带索引

3、索引提速

一般添加索引,用于大数据量查询时。

4、删除索引

语法格式:

drop index 索引名称 on 表名;

七、视图

视图就是一张虚拟表,可以通过视图查询一张或者多张表的数据,使查询变得更简单。

1、创建视图

create view 视图名称

as

查询语句;

2、查询语句

select 查询内容  from 视图名称  筛选条件;

和表的查询一样,表名称换成视图的名称就可以

3、删除视图

语法格式:

drop view 视图名称;

好了,学会这些,对软件测试来说,数据库这方面就掌握差不多了,排版不易,点个赞呗

  • 29
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

槿皓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值