数据库基础知识一(MySQL)

article/2025/10/22 1:01:00

数据库是研究数据管理的技术。即如何妥善地保存和科学地管理数据。

数据管理是指对数据进行分类、组织、编码、存储、检索和维护等操作。

数据管理技术好坏评判的标准:
(1)数据冗余
(2)数据共享
(3)数据独立性
(4)数据统一集中管理

数据库:
按一定结构组织存储的、集成的、可共享的数据的集合。

数据库有两种类型:关系型数据库与非关系型数据库。

关系型数据库:
存储格式能直观地反映实体间的关系,和创建的表格比较相似,表与表之间是有复杂的关联关系。

  • Oracle 、Mysql 、DB2 、Microsoft SQL Server、 Microsoft Access等

非关系型数据库:
指的是分布式、非关系型的、不保证遵循ACID原则的数据存储系统。

  • MongoDb 、 redis 、 HBase、 Cloudant等

使用场景:
1)海量数据存储
2)多格式的数据存储
3)对查询速度要求块的数据格式

关系型数据库

关系数据库是一个结构化的数据集合,这个结构要使用数据模型来描述显示世界中事物间的联系。
数据模型——是表示数据及联系的模型。
数据模型分类(按模型应用的不同目的的划分)

概念模型(也称语义模型)
常用E-R模型在这里插入图片描述
学生和课程是实体,菱形中对应的是实体之间的关系,椭圆中是对应的属性。

结构数据模型(简称数据模型)
1)层级模型
2)网状模型
3)关系模型等

关系型数据库的数据结构
关系
元组
属性
元数(度、目)
关系模式:关系结构的描述
R(A1,A2,A3,…,An)
R:关系名 括号中是属性名

在这里插入图片描述

操纵与完整性约束
1)数据操纵:
增、删、改、查

2)需满足关系的完整性约束条件:
实体完整性约束
参照完整性约束
用户自定义的完整性约束

在这里插入图片描述

关系型数据库中的一条记录中若干个属性,若其中某一个属性(组)能唯一表示一条记录,该属性(组)就可以成为一个主键。(primary key)

在这里插入图片描述

foreing key (外键)references参考课程的主键

关系数据库语言SQL

SQL(Structured Query Language)结构化查询语言:是通用的,功能极强的关系DB语言

作用:
SQL的数据定义
create database…
create table…

SQL的增删改查
SELECT, INSERT, UPDATE, DROP/DELETE

非关系型数据库

非关系型数据库,又称为NoSQL(Not Only SQL)

NoSQL数据库的特点:

1)模式自由
不需要定义表结构,数据表中的每条记录都可能有不同的属性和格式
2)逆规范化
不遵循范式要求,去掉完整性约束,减少表之间的依赖
3)弹性可扩展
可在系统运行的过程中,动态的删除和增加节点
4)多副本异步复制
数据快速写入一个节点,其余节点通过读取写入的日志来 实现异步复制。
5)弱事务
不能完全满足事务的ACID特性,但是可以保证事务的最终一致型。

MySQL基础

启动mysql:
cmd输入

net start mysql
mysql -uroot -p

标识符和关键字
1)标识符用来命名一些对象,如数据库、表、列、变量等,以便在脚本中其他地方引用。MySQL标识符命令规则稍微有点繁杂,其通过命名规则是:标识符由以字母或下划线(_)开头的字母、数字或下划线序列组成。

2)对于标识符是否区分大小写取决于操作系统,Windows下是不敏感的,但对于大多数linux/Unix系统,这些表示大小写是敏感的。

3)关键字,MySQL的关键字众多,不同版本的MySQL语言关键字也略有变化。所有关键字有自己特有的含义,应尽量避免作为标识符。

使用算术运算符进行加减乘除、求余运算。
在这里插入图片描述
使用比较运算符判断运算。
在这里插入图片描述
运用is null、is not null运算符。
在这里插入图片描述

运用“between and”运算符判断一个数是否在某范围。
在这里插入图片描述
运用“in”运算符判断某值是否在指定的范围内
在这里插入图片描述
运算符“like”,"like"用来匹配字符串,其中“%”匹配任意个字符,“_”匹配一个字符。表达式如下 x1 like s1
在这里插入图片描述

与运算:“&&”、“and”
或运算:“||”、“or”
非运算:“!”、“not”
异或运算:“xor”
在这里插入图片描述
位运算:|、&、^、~、<<、>>

在这里插入图片描述

数学函数:abs,acos,asin,atan,ceiling,cos,degree(弧度值转为角度值),floor,greatest(获得一组数中的最大值),least(获得一组数中最小值),log,log10,PI,pow,radians(角度值转换为弧度值),rand(返回0~1之间的随机float数),round(返回指定小数的位数的表达式的值),sign(返回某个数的符号),sin(返回以弧度为单位的角度的正弦值),sqrt,tan
在这里插入图片描述
show databases;语句查看MySQL服务器中的所有数据库
在这里插入图片描述
创建数据库:create database if not exists mysqltest;指定字符集为gb2312

在这里插入图片描述

当前所有存在的系统数据库:
在这里插入图片描述

打开数据库:use test;
在这里插入图片描述
修改数据库:alter database mytest;
在这里插入图片描述
显示数据库结构:show create database test;
在这里插入图片描述
删除数据库:drop database [if exists] db_name;
在这里插入图片描述

创建数据库表

create [temporary] table [if not exists] table_name

temporary:使用该关键字表示创建临时表
if not exists:如果不存在就创建,存在就不执行

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Float(3,1)表示精度为4,小数为一位

设置表的属性自动增加
MySQL中数据库表中,一个整数列可以有一个附加属性auto_increment,它是一个特殊的约束条件,主要用于为表中插入的新记录自动生成唯一的序列编码。
用法:
属性名 数据类型 auto_increment

创建选课表sc,选课号sn_no是自动增量,选课时间默认为当前时间,其他字段分别是学号、课程号和教师号。
在这里插入图片描述

查看已创建的表:show tables;

在这里插入图片描述

查看表结构:describe语句、show create table语句

在这里插入图片描述
在这里插入图片描述

修改数据库表,语法格式如下:
1)在student表的Email列后面增加一列address
在这里插入图片描述

操作完成后,可以执行describe语句查看一下

在这里插入图片描述

  1. 修改表名:将表sc重命名为se_course.
    在这里插入图片描述
    3)修改字段的数据类型:修改course表的type字段,使其取固定值,“必修”或“选修”默认为“必修”
    在这里插入图片描述

4)删除字段:删除student表的字段address
在这里插入图片描述
删除数据库中已存在的表,删除表会删除表中的所有数据,所以要慎重。
drop table table_name

在python数据库中创建表example,然后删除example表。
在这里插入图片描述

表记录的插入
1)利用insert命令向表student中插入一行数据
2)利用insert命令向表student中插入多行数据
在这里插入图片描述
利用replace命令向表course中插入多行数据
在这里插入图片描述
insert与replace的区别:

insert如果向表中插入已经存在的学号(主键)的记录,将出现主键冲突错误。
replace向表中插入数据时,首先尝试插入数据到列表中;若发现表中已有此行数据(根据主键或唯一索引判断),则先删除此行数据再插入新数据,否则直接插入新数据。

使用set子句插入数据
可以不按顺序插入数据,对允许空值的列可以不插入
利用set子句向se_course表插入数据。
在这里插入图片描述
用update…set…命令可以修改一个表的数据
将学号为210010的学生的课程号为c05103的期末成绩final修改为99分
在这里插入图片描述

利用delete…from…语句可以从单个表中删除指定表数据。
在这里插入图片描述

基本查询语句
select语句是SQL语句从数据库中获取信息的一个基本语句,可实现从一个或多个数据库中的一个或多个表中查询信息,并返回结果集。
在这里插入图片描述
all是默认值,distinct取消结果集中的重复行。
group by用于对查询结果根据grouping_columns的值进行分组。
having子句是应用于分组结果集的附加条件,与group by一起使用,用于在group by子句后选择行。
查询test数据库course表中的所有数据。
查询数据库中表中的前5条数据

select * from course limit 5;

在这里插入图片描述
查询student表中的studentNo、sname和phone数据
在这里插入图片描述

单表查询:
在student表中查询出生日期在2001年以后的学生的学号、姓名、电话,并为这些字段去别名。
在这里插入图片描述
在score表中查询期末成绩高于80 分的学生的学号,并按学号排序,不允许重复(distinct)
在这里插入图片描述

查询student中入学成绩在640分以上的学生的学号、姓名信息(where子句的使用)
在这里插入图片描述

带in关键字的查询:查询学号分别为210009、210010的学生学号、课程号、期末成绩。
在这里插入图片描述

between…and…
查询选修课程号为c05103的学生学号和期末成绩,要求平时成绩在80-95分之间
在这里插入图片描述

用is null关键字查询空值。se_course表添加成绩字段score,插入两条记录,查询se_course中成绩为null的学生学号、课程号和成绩。(一个字段值是否为空,要表示为“is null”或“is not null”),不能表示为=null或<>null。如果写成“字段=null”或“字段<>null”,系统直接处理为null值,按照false处理而不报错。
在这里插入图片描述

使用order by子句对结果集排序
在score表中查询期末成绩高于90分的学生学号、课程号和期末成绩,并先按课程号的升序、再按期末成绩的降序排列
在这里插入图片描述

使用group by子句
使用group by子句对score表数据分组,显示每个学生的学号和其所学各课程的平均期末成绩,并将结果按平均期末成绩的升序排列
在这里插入图片描述

group by和having子句一起使用
查询选课在2门以上且各门课程期末成绩均高于70 分的学生的学号及其各门课程期末成绩相加后的成绩,查询结果按总成绩降序列出。

在这里插入图片描述

多表连接

查询选修课程号为c05103的学生的学号、姓名和期末成绩
在这里插入图片描述
内连接inner join:通过比较数据源表键共享列的值,从多个源表检索符合条件的行

在这里插入图片描述

左外连接Left Outer Join,利用左外连接方式查询学生的学号、姓名、平时成绩和期末成绩。

在这里插入图片描述

左外连接left outer join:返回指定左表的全部行+右表中对应的行,如果左表中的数据在右表中没有与其匹配的行,则再查询结果集中相应位置显示为空值。

右外连接Right Outer Join
右外连接right outer join:返回指定右表的全部行+左表中对应的行,如果右表中的数据在左表中没有与其匹配的行,则再查询结果集中相应位置显示为空值。

select子句中的子查询
查询学号为210010的学生的姓名、入学成绩、所有学生的平均入学成绩及该学生成绩与所有学生的平均入学成绩的差。
在这里插入图片描述
where子句中的子查询:1、带比较运算符的字查询
查询期末成绩比选修该课程平均期末成绩低的学生的学号、课程号和期末成绩
在这里插入图片描述

where子句中的子查询:带in关键字的子查询
查询期末成绩高于90分的学生的学号、姓名、电话和Email
在这里插入图片描述


http://chatgpt.dhexx.cn/article/AhWpf2hA.shtml

相关文章

数据库基础知识汇总(一)

五个基本的关系代数操作 并、差、笛卡尔积、选择、投影 数据库语言四大类 DQL&#xff08;Data Query Language&#xff09;&#xff1a;数据库查询语言。DDL&#xff08;Data Definition Language&#xff09;&#xff1a;数据库定义语言。定义关系模式、删除关系、修改关系…

【MySQL】数据库基础知识

文章目录 一. 什么是数据库二. 为什么要有数据库三. 数据库分类四. 数据库的基本使用1. MySQL安装2. 检查MySQL后端服务器是否启动3. 连接MySQL服务器4. 服务器&#xff0c;数据库&#xff0c;表关系5. 数据存储逻辑 五. MySQL体系结构六. SQL语句分类七. 存储引擎 一. 什么是数…

【数据库系列】数据库基本知识点整理

文章目录 一.基本概念1.数据模型2.主键与外键3.事务4.索引5.视图 二.SQL语句1.数据定义1&#xff09;CREATE TABLE2&#xff09;ALTER TABLE3&#xff09;DROP TABLE 2.数据查询1&#xff09;SELECT2&#xff09;WHERE3&#xff09;ORDER BY4&#xff09;LIMIT5&#xff09;聚集…

数据库存储过程(全网最全)

一、存储过程的概念 存储过程是定义在服务器上的一段子程序代码&#xff0c;存储过程时数据库对象之一。 存储过程在服务器端运行&#xff0c;需要时调用&#xff0c;执行速度快&#xff0c;方便使用确保数据库的安全&#xff0c;存储过程可以完成所有的数据库操作降低网络负…

手把手教你轻松学会数据库存储数据类型(数据库入门必看)

数据库存储数据类型 目录 数据类型 1 numeric数字类型 2 string 字符串 3 date、time、datetime日期相关类型 4 enum set 复合类型 5 bit 布尔 6 json 7 binary 二进制 1 numeric数字类型 整数&#xff1a; tinyint smallint mediumint int bigint 小数&#xff1a; …

数据库服务器硬件运行环境,数据库存储服务器必须要满足的五大基本要求你知道几个?...

原标题&#xff1a;数据库存储服务器必须要满足的五大基本要求你知道几个&#xff1f; 说到这么多数据库的重要性&#xff0c;如何选择一个可靠稳定的数据库存储服务器呢&#xff1f;我们从五个方面入手&#xff0c;帮助您了解数据库服务器的服务器硬件需求。 选择数据库服务器…

数据库的存储过程

在数据库中建立存储过程主要是能更直观对数据库的表进行一系列操作&#xff0c;如增、删、查、改等。首先在创建的数据库中找到可编程性下的存储过程&#xff0c;右键新建存储过程&#xff1a; 将PROCEDURE后面的全部去除接[dbo].[存储名称]&#xff1a; 然后接as&#xff0c;a…

带你了解数据库的存储过程

目录 一. 存储过程概述 1.1.什么是存储过程 1.2.存储过程的优缺点 二. 存储过程语法 2.1.创建存储过程 2.2.调用存储过程 2.3.删除存储过程 2.4.查看存储过程 三. 存储过程实例 四. 数据库专栏 一. 存储过程概述 1.1.什么是存储过程 存储过程&#xff08;Stored P…

postgreSql 数据库存储目录

我的PostgreSql安装目录为&#xff1a;G:\Apps\PostgreSQL 数据库文件存储在&#xff1a;G:\Apps\PostgreSQL\14\data\base 执行sql查看数据库信息&#xff1a; select oid, datname from pg_database ; --pg_database表存储关于可用数据库的信息 结果如下&#xff1a;oid对应…

Mysql数据库存储emoji表情

一、起源 我想让我的新闻评论内容能更加丰富~话不多说。 &#xff08;1&#xff09;改变Navicat中的字段的字符集 然后发现还是没办法存进去正确的emoji表情嘞。&#xff08;失败了&#xff09; &#xff08;2&#xff09;找到mysql数据库配置文件 my.ini 增加&#xff…

达梦数据库存储过程

达梦数据库简单存储过程 文章目录 达梦数据库简单存储过程一、存储过程概述语法 二、达梦数据库简单存储过程编写 一、存储过程概述 存储过程数据库系统中&#xff0c;一组为了完成特定功能的SQL 语句集&#xff0c;它存储在数据库中&#xff0c;一次编译后永久有效&#xff0…

【学习笔记】25、关系数据库存储

关系数据库存储 一、关系数据库介绍 关系型数据库&#xff0c;是指采用了关系模型来组织数据的数据库&#xff0c;其以行和列的形式存储数据&#xff0c;以便于用户理解&#xff0c;关系型数据库这一系列的行和列被称为表&#xff0c;一组表组成了数据库。用户通过查询来检索数…

数据库存储图片路径并显示到前端

数据库存储图片路径并显示到前端 -为啥不直接存图片&#xff1a;因为图片本身太大了&#xff0c;虽然存取方便了程序员&#xff0c;但对数据库不友好。所以采取存取路径&#xff0c;再根据路径解析的方法。 一、数据库表设计&#xff1a; 从以上思想出发&#xff0c;需要存图…

SQL Server数据库基础知识——数据库存储过程怎么写

SQL Server数据库基础知识 存储过程概述 什么是存储过程&#xff1f; 存储过程的种类 如何创建、修改、删除、调用存储过程&#xff1f; 存储过程的优缺点 存储过程和触发器的区别? 存储过程和函数的区别? 存储过程的使用 1. 什么是存储过程&#xff1f; 存储过程是…

GaussDB数据库存储过程介绍

文章目录 一、前言二、GaussDB中的定义三、存储过程的使用场景四、存储过程的使用优缺点五、存储过程的示例及示例解析1、GaussDB存储过程语法格式2、GaussDB存储过程语法示例3、存储过程的调用方法 七、总结 一、前言 华为云数据库GaussDB是一款高性能、高安全性的云原生数据…

查看当前数据库存储引擎

一&#xff1a;查看当前数据库支持的存储引擎 show ENGINES; 二:查看指定数据库所有表使用的存储引擎 使用 show table status from dbname;命令&#xff0c;可以查看指定数据库所有表使用的存储引擎&#xff0c;其中“dbname”为数据库名。 show table status from 库名; 三…

数据库储存Excel表信息

目录 目标 实验背景 原理 具体实现 目标 以Java程序为中介&#xff0c;将Excel表中的信息储存到Mysql数据库中 实验背景 先需要将一张包含学生和老师信息的Excel表中的数据存储到Mysql数据库中 原理 先通过相关jar包的类从Excel表中读取到信息&#xff0c;接着对这些信息…

数据库之存储

无论是什么数据库&#xff0c;其本质还是以数据的形式存储在计算机的物理介质上的&#xff0c;所以&#xff0c;我们先来看看什么是物理存储介质。 物理存储介质:高速缓冲存储器->主存储器->快闪存储器->磁盘->光盘->磁带,从左到右性能由高到低&#xff0c;价格…

数据库存储介绍

数据存储在存储设备中&#xff0c;在实际应用中&#xff0c;有多种存储设备&#xff0c;下面我们一一介绍。同时在保存数据时&#xff0c;有特定的组织方式&#xff0c;在下面我也做简单介绍。 一 存储设备介绍 1.1 高速缓存 Cache&#xff0c;计算机拥有1M或跟多的高速…

Excel|给某一列添加同一个字

如图所示给新型冠状病毒肺炎数据中“武汉”这一列都加上“市”字&#xff1a; 先在D列打两行&#xff1a;“武汉市”、“孝感市” 然后在D3按CtrlE&#xff0c;即可全部填充 ps:如果删除某列同一个字的话用替换即可