数据库的介绍及增删改查

148 阅读9分钟

数据库介绍

什么是数据库

  • 数据储存的仓库
特点

1.长期储存数据

2.对于数据进行有组织的管理

  • 体现:通过操作指定的语言完成对数据的增、删、改、查

数据库的分类

  • 分类标准:按照数据存储格式的不同

    关系型数据库:以二维表的形式进行数据的存储

    二维表:类似Ex'cel,有行和列

    常见的关系数据库:Oracle,Mysql,Sql Server,SQlite

OracleL:主要用于大型项目(银行)

Mysql:主要用于中小型项目(目前最常用的数据库)

非关系型数据库

1.redis:键值对

2.MangoDB:文档

3.Hbase:一个结构化数据的分布式存储系统

关系型数据库核心要素:库表列行

1.数据行(一条记录)

2.数据列(定义字段)

3.数据表(数据行记录的集合)

4.数据库(数据表的几个,一个库中能够有n个数据表)

SQL介绍及常用语言分类

概念:结构化查询语言,通过SQL语言可以对数据库进行操作

数据查询语言:select(查询)

数据操作语言:insert(增加),delete(删除),update(修改)

注意:Mysql中的SQL语言不区分大小写

MySQL介绍

MySQL:是一个关系型数据库,由甲骨文公司开发的一款产品,同类型还有Ocacle。

MySQL特点

1.支持多操作系统

2.支持多种编程语言

3.开源、社区版免费

4.可移植性好

5.支持多线程

6.优化SQL查询算法

7、多种数据库连接方式

8、支持多语言编码格式

MySQL组成

MySQL服务器:存储数据并解析编译后的SQL语句,执行SQL语句,将执行结果返回给客户端。

MySQL客户端:下发用户要执行的SQL语句,查看执行结果,并显示服务器返回的执行结果。

MySQL链接

连接命令:mysql -hhost -P端口号 -u用户名 -p密码

MySQL数据库

1.DBeaver操作Mysql

1.使用数据库:在DBeaver窗口中,双击左侧已连接 的连接名称即可打开并连接到数据库

2.创建数据库:打开数据库后,右击 连接名称,选择 “创建 - 数据库”,然后输入对应的数据,点击确定。

3.修改数据库:打开数据库后,右击要修改的数据库 名称,选择 “查看数据库”。

4.删除数据库:打开数据库后,右击 要删除的数据库 名称,选择 “删除” 。

2.常用数据类型

联想记忆法

1.整型:int(我的年龄),unsigned(无符号范围),有符号范围(-2147483648~2147483647)

2.字符串:varchar(我的姓名)

3.小数:decimal(我的存款,余额)

4.时间日期:detetime(我的出生日期)

3.常见数据约束

1.非空(not null):此字段不允许填写空值 2.默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准

3.主键:提高数据的查询速度

1.唯一性:主键值必须是唯一的,不能重复 ​ 2.非空性:主键不能为空 ​ 3.不变性:主键使用了,不可更改 ​ 4.单一性:一张数据表,仅能设置一个主键 4.唯一性:此字段的值不允许重复

特点:一个表中可以设置多个字段值具有唯一性 5.外键:维护两个表之间的依赖关系

4.操作数据库

说明:操作数据库之前要选通过工具连接到数据库。

常见数据库操作命令:

1.查看所有数据库:show databases;

2.使用数据库:use 数据库名;

3.查看当前使用数据库:select database();

4.创建数据库:create database 数据库名 charset=utf8;

5.删除数据库:drop database 数据库名;

4.1操作数据库

说明:操作数据表之前要选通过use打开对应的数据库

常见数据表操作命令:

1.查看当前数据库所有的表:show tables;

  1. 查看表结构:desc 表名;
  2. 查看表的创建语句:show create table 表名;

数据库表操作

1.创建数据库表

语法格式:create table 表名;

2.删除数据

语法格式:drop table 表名;

:drop table if exists 表名(防报错);

数据增删改查


数据增加

增加多行数据

语法格式:

image.png

模板命令:

-- 全字段添加

insert into 表名 values (...),(...),(...),...;

-- 选择字段添加

insert into 表名(字段名1,...) values(值1,...),(值1,...),...;

实践练习

image.png

数据修改与删除

修改语法格式:

image.png

模板命令:

update 表名 set 字段名1=值1,字段名2=值2,... where 条件;

实践练习

image.png

image.png

三种数据的区别

image.png

实践练习

image.png

数据查询操作

数据准备

image.png

查询基本语法

起别名

image.png

关键字:as

作用:给表名、字段名起别名

表名--起别名语法格式:表名 as 别名

字段名--起别名语法格式:字段名 as 别名

使用场景:

  1. 对表名起别名,主要用作表关联

  2. 对字段名起别名,主要用作执行结果字段的中文展示

image.png

去重

image.png

关键字: distinct

语法格式:distinct 字段名称

作用:针对某一个字段去除掉重复的数据

使用场景:通过结合聚合函数中的"查询总记录数"一起使用,用来统计某一个字段有几种数据

课堂练习

image.png

条件查询

比较运算符

语法格式:表名 where 查询的字段名称 比较运算符 预期数据

image.png

编写SQL语句思路

  1. 找出最终需要展示的字段有哪些

  2. 找出查询字段(条件字段)

  3. 使用哪一种运算符

  4. 找出预期数据

实践练习

image.png

逻辑运算符

语法格式

image.png

编写SQL语句思路

  1. 分析使用查询条件

  2. 选择使用的逻辑运算符

实践练习

image.png

模糊查询

image.png

关键字:like

注意:仅针对字符串进行模糊匹配

语法格式:where 字段 like 匹配条件

匹配多个字符:%

匹配一个字符:_

编写SQL语句思路:

  1. 分析模糊匹配符放置位置(前面,后面,前面+后面)

放置--前面:以XXX结尾(查询手机号,以1009结尾)

前置--后面:以XXX开头(查询手机号,以138开头)

前面+后面:匹配包含(查询手机号,包含123)

  1. 分析使用哪一个符号

image.png

范围查询

语法格式:

image.png

编写SQL语句思路

  1. 分析需要进行范围查询的字段

  2. 分析查询的范围是否连续

  3. 根据是否连续,确认使用 in 还是 between...and...

实践练习:

image.png

空判断

语法格式:

image.png

实践练习:

image.png

排序

语法格式:

image.png

编写SQL语句思路

  1. 分析需要排序的字段

  2. 确认每一个排序字段的方式以及使用关键字

  3. 从小到大---使用 asc

  4. 从大到小---使用 desc

  5. 如果多个字段要排序,使用 , 进行分隔

实践练习:

image.png

聚合函数

语法格式:

image.png

编写SQL语句思路

  1. 分析需要被聚合函数处理的字段

注意:如果没有指明处理哪一个字段,那就是全部,使用 *

  1. 分析使用的聚合函数

特别说明:一个SQL语句,可以使用多个聚合函数,使用 , 分隔即可

实践练习:

image.png

image.png

分组

概念: 按照字段分组,此字段相同的数据会被放到一个组中

目的: 是对每一组的数据进行统计(使用聚合函数)

分组查询

语法格式:

image.png

编写SQL语句思路

  1. 确认需要分组的字段

  2. 确认需要使用哪一种聚合函数以及需要处理的字段

实践练习:

image.png

分组筛选

作用:对于分组完之后的数据进行筛选

语法格式:

image.png

编写SQL语句思路

  1. 确认需要分组的字段

  2. 确认需要使用聚合函数和处理字段

  3. 确认需要筛选的字段和条件

实践练习:

image.png

分页

语法格式:

image.png

实践练习:

image.png

连接查询

数据准备

创建课程表并插入数据

image.png

创建成绩表并插入数据

image.png

找出表之间的关联关系

image.png

连表查询数据逻辑

image.png

常用方法

内连接:取两个表共有数据(交集)

左连接:共有数据+左边特有数据+右边以空(null)填充

右连接:共有数据+右边特有数据+左边以空(null)填充

内连接

语法格式:

image.png

编写SQL语句步骤

  1. 根据需求找出关联的表1和表2

  2. 根据数据表结构找出两个表关联的字段

模板SQL语句

select * from 表1

inner join 表2 on 表1.关联字段a = 表2.关联字段b;

实践练习

image.png

image.png

左连接

语法格式

image.png

模板语句

select * from 表1

left join 表2 on 表1.关联字段a = 表2.关联字段b;

实践练习

image.png

自关联

介绍

使用场景:当表存在等级关系时,查询其中数据需要使用自关联

比如:省,市,县

比如:总经理,部门主管,组长,组员

自关联思路:

  1. 把一张表当成多张表来使用

说明:将表定义为不同的别名

  1. A表的字段与B表的字段进行关联

强调:一定是表中不同的字段

数据准备

image.png

数据介绍

image.png

实践练习

image.png

image.png

image.png

子查询

前置介绍:涉及到了表之间的关联,可以使用表连接,也可以使用子查询

强调:如果能用表连接,绝对不用子查询。因为子查询SQL语句执行效率很低

子查询,充当条件分类

标量子查询:一行一列

最简单的子查询

列子查询:一列多行

行子查询:一行,多列

充当条件-标量子查询

image.png

image.png

充当条件-列子查询

image.png

image.png

充当条件-行子查询

image.png

image.png

充当数据源

image.png