网络安全之数据库基础篇(基础入门)

news2026/4/3 14:58:26

目录

一,操作数据库

1,查询所有数据库

2,创建数据库

3,查看数据库是否被创建

4,查看数据库的字符集

5,修改数据库的字符集

6,删除数据库

7,使用数据库

8,查看当前使用的数据库

二,操作数据表

1,查看当前库中有那些表

2,查看表的结构

3,查看数据库中表的字符集

4,修改表的字符集

5,修改表,列的数据类型

6,修改列名

7,删除表中的一列

8,创建数据表

9,修改表名

10,为表添加一列

11,为表格新增数据

12,修改表中的数据

13,删除表中的数据

14,查询表中的数据

15,条件查询

16,聚合函数查询:

17,排序查询:

18,分组查询

19,分页查询

20,主键约束

21,主键自增约束

22,唯一约束

23,非空约束

24,外键约束

25,外键级联

26,表关系一对一

27,表关系一对多

28,表关系多对多

29,内连接查询

30,外连接查询

31,多表子查询


一,操作数据库

1,查询所有数据库

【1】show databases;

【2】select table_schema from information_schema.tables group by table_schema;

2,创建数据库

【1】create database db1;

【2】create database if not exists db1;//判断是否存在db1数据库,不存在就创建它

【3】create database db1 character set utf8;//创建db1数据库并设置它的字符集为utf8

3,查看数据库是否被创建

【1】show create database db1;

4,查看数据库的字符集

【1】show create database db1;

5,修改数据库的字符集

【1】alter database db1 character set utf8;

6,删除数据库

【1】drop database db1;

【2】drop database if exists db1; //如果存在db1数据库就删除它

7,使用数据库

use db4;

8,查看当前使用的数据库

select database();

二,操作数据表

1,查看当前库中有那些表

show tables;

2,查看表的结构

desc user;

3,查看数据库中表的字符集

show table status from db1 like 'user';

4,修改表的字符集

alter table user character set utf8;

5,修改表,列的数据类型

格式:

alter table 表名 modify 列名 修改为的类型

例如:

alter table user modify score float;

6,修改列名

格式:

alter table 表名 chname 要修改的列名 修改为的列名 数据类型;

例如:

alter table user chname id num int;

7,删除表中的一列

格式:

alter table 表名 drop 列名;

例如:

alter table user drop name;

8,创建数据表

格式:

create table 表名(

列名 数据类型 约束,

列名 数据类型 约束,

....

列名 数据类型 约束

);

例如:

create table user(

id int primaty key, //id列为int类型和主键约束(唯一)

name varchar(20), //name列字符类型

age int,

gender varchar(20)

);

9,修改表名

格式:

alter table 旧表名 rename to 新表名;

例如:

alter table user rename to student //将user表名字改为student

10,为表添加一列

格式:

alter table 表名 add 要添加的列名 数据类型;

例如:

alter table user add score int;

11,为表格新增数据

格式1(全部添加):

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

例如:

insert into user values(1"goud",19,"male");

要注意的是列名要与values中的值一一对应

格式2(指定列添加数据):

insert into 表名(列名1,列名2....) values(值1,值2);

例如:

insert into user(age,gender) values(19,"male");

格式3(批量添加数据):

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

例如:

insert into user values(1,"goud",19,"male"),(2,"lis",18,"famale");

12,修改表中的数据

格式:

update 表名 set 修改为的值1,修改为的值2,... where 条件;

例如:

update user set age=99 where name='lis';

update user set id=5,age=100 where name="goud";

13,删除表中的数据

格式:

delete from 表名 where 条件;

例如删除名字是lis这一行:

delete from user where name='lis';

14,查询表中的数据

格式1(查询所有列):

select * from 表名;

例如:

select * from user;

格式2(查询指定列):

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

例如:

select id,name from user;

格式3(去重查询):

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

例如:

select distinct name from user;

格式4(筛选的同时计算列的值):

select name,score+10 from user;

表中的内容并不会加10,只是显示出来的值加了10

格式5(如果内容是null):

select name,ifnull(score,0)+10 from user;

如果score的内容是null就利用ifnull 将其转换为0再进行运算

15,条件查询

格式:

select 列名 from 表名 where 条件;

例如(查询name是lisi的全部数据):

select * from user where name='lisi';

格式2(and):

select 列名 from 表名 where 条件1 and 条件2;

例如(查询age是30到40之间的name):

select name from user where age>30 and age<40;

格式3(or):

select 列名 from 表名 where 条件1 or 条件2;

例如(查询age大于30或age小于10的name):

select name from user where age>30 or age<10;

格式4(in):

select 列名 form 表名 where 列名 in(要满足的数据);

例如(查询age是in中数据的name):

select name from user where age in(10,20,30);

格式5(模糊查询):

‘-’:代表一个任意字符

select * from user where name like '小_';

格式6(模糊查询):

‘%’:代表任意字符

select * from user where name like '%红%' //查询出name有红的所有数据

16,聚合函数查询:

格式:

select 函数名(列名) from user [where 条件];

例如:

select count(*) from user; #user表中有多少列

select max(score) from user; #求user表中score的最大值

select min(score) from user; #求user表中score的最小值

select sum(score) from user; #求user表中score的总数

select avg(score) from user; #求user表中score的平均值

select sum(id) from user where score=100; #求user表中score等于100的id总数

17,排序查询:

格式:

select 列名 from 表名 [where 条件] order by 列名1 排序方式1,列名2 排序方式2;

例如(asc降序排序):

select * from user order by score asc; #user表中的score降序排序

例如(desc升序排序):

select * from user where age<20 order by score desc; #user表中的score升序排序

例如(desc和asc联合使用):

select * from user order by score asc,id desc; #user表中的score降序排如果相同就按id升序排序

18,分组查询

格式:

select 列名

from 表名 [where 条件]

group by 要分组的列名

[having 过滤出来的条件]

[order by 排序列名 排序方式];

1,例如:

select class,sum(score)

from user

group by class; //按班级分组,算出每组总分

2,例如:

select class,sum(score)

from user

where score>80

group by class; //通过班级分组,筛选出成绩大于80的人的总分。

3,例如

select class,sum(score) total

from user

where score>80

group by class

having total>800

//对计算成绩大于80的人的总分并按班级分组筛选大于800的class(total是别名)

4,例如

select class,sum(score) total

from user

where score>80

group by class

having total>800

order by total desc; #降序排序

//对计算成绩大于80的人的总分并按班级分组筛选出大于800的class(total是别名)

19,分页查询

格式:

select 列名 from 表名

[where 条件]

[group by 要分组的列名]

[having 要满足的条件]

[order by 要排序的列名 升或减序]

limit 当前的页数,显示的条数(当前的页数=(页数-1)*显示的条数)

例如:

select * from user limit 0,3; #第一页

select * from user limit 3,3; #第二页

20,主键约束

创建一个用户表(编号,姓名,年龄)编号设为主键

create table user(

id int primary key,

name varchar(30),

age int

);

alter table user drop primary key; //建表后删除主键

alter table user modify id int primary key; //建表后添加主键

21,主键自增约束

创建一个用户表(编号,姓名,年龄)编号设为主键自增

create table user(

id int primary key auto_increment,

name varchar(30),

age int

);

alter table user modify id int; //建表后删除主键自增约束

alter table user modify id int auto_increment; //建表后添加主键自增约束

22,唯一约束

创建一个用户表(编号,姓名,年龄)编号设为唯一

create table user(

id int unique,

name varchar(30),

age int

);

alter table user drop index id; //建表后删除唯一约束

alter table user modify id int unique; //建表后添加唯一约束

23,非空约束

创建一个用户表(编号,姓名,年龄)编号设为主键,并设name为非空

create table user(

id int primary key

name varchar(30) not null,

age int

);

alter table user modify nmae varchar(30); //建表后删除非空约束

alter table user modify name varchar(30) not null; //建表后添加非空约束

24,外键约束

格式:

constraint 外键名 foreign key (本表外键列名)references 主表名(主表主键名)

创建一个用户表(编号,姓名,年龄)编号设为主键

create table user(

id int primary key auto_increment,

name varchar(30) not null,

age int

);

创建一个订单表(id,编号,外键列)id设为主键,

create table orderlist(

id int primary key not auto_increment,

number varchar(30) not null,

uid int,

constraint out_k foreign key (uid) references user(id)

);

alter table orderlist drop foreign key out_k; //建表后删除外键约束

alter table orderlist add constraint out_k foreign key (uid) references user(id); //建表后添加外键约束

25,外键级联

格式1(添加级联更新):

alter table 表名 add constraint 外键名 foreign key (本表外键列名) references 主表名(主键列名)

on update cascade;

格式2(添加级联删除):

alter table 表名 add constraint 外键名 foreign key (本表外键列名) references 主表名 (主键列名)

on delete cascade;

格式3(同时添加级联更新和级联删除):

alter table 表名 add constraint 外键名 foreign key (本表外键列名) references 主表名 (主键列名)

on update cascade on delete cascade;

例如:

alter table orderlist add constraint out_k foreign key (uid) references user(id)

on update cascade on delete cascade;

26,表关系一对一

用户表

create table user( id int primary key auto_increment, NAME varchar(30), age int );

订单表

create table orderlist( id int primary key auto_increment, product varchar(20), uid int, constraint out_key foreign key (uid) references user(id) );

27,表关系一对多

用户表--订单表--价格表

用户表

create table user( id int primary key auto_increment, NAME varchar(30), age int );

订单表

create table orderlist( id int primary key auto_increment, product varchar(20), uid int, constraint out_key foreign key (uid) references user(id) );

价格表

create table price( id int primary key auto_increment, money varchar(20), pid int, constraint out_price foreign key (pid) references orderlist(id) );

28,表关系多对多

创建三个表一student,course,center

student表:

create table student(
id int primary key auto_increment,
NAME varchar(20),
class varchar(20)
);

course表:

create table course(
id int primary key auto_increment,
book varchar(20)
)

center表:

create table center(
id int primary key auto_increment,
studentid int,
courseid int,
constraint out_kk1 foreign key (studentid) references student(id),
constraint out_kk2 foreign key (courseid) references course(id)
);

student表中插入数据:

insert into student values(1,'zhansan','100'),(2,'lis','150'),(3,'wanwu','200')

course表中的数据:

insert into course values(1,'math'),(2,'chinese'),(3,'physics')

center表中插入数据:

insert into center(studentid,courseid) values(1,1),(1,2),(2,1),(3,2)

查看lis选了什么书
SELECT c.book  
FROM student s  
JOIN center ct ON s.id = ct.studentid  
JOIN course c ON ct.courseid = c.id  
WHERE s.NAME = 'lis';

29,内连接查询

这里就用上面哪个表了哈,查看学生信息对应的课程信息

select * from student inner join course on student.id=course.id

30,外连接查询

【1】左外连接(left outer join):返回左表的全部记录和右表满足条件的记录

例如查询学生所对应的课程:
SELECT
student.*,
course.book
FROM
student 
LEFT OUTER JOIN
course 
ON
course.id=student.id;

【2】右外连接(right outer join):返回右表的全部记录和左表满足条件的记录(这里不做演示了,一样的格式)

【3】全外连接(right outer join):返回两表的全部记录,没有匹配的项用null补齐

31,多表子查询

用户表

create table user( id int primary key auto_increment, NAME varchar(30), age int );

订单表

create table orderlist( id int primary key auto_increment, product varchar(20), uid int, constraint out_key foreign key (uid) references user(id) );

查看张三和李四的订单信息

select  * from orderlist where uid in (1,2)

select id from user where name in ('张三','李四');

select * from orderlist where uid in(select id from user where name in ('张 三','李四'))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1632687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于51单片机智能窗帘仿真设计( proteus仿真+程序+设计报告+讲解视频)

基于51单片机智能窗帘仿真设计( proteus仿真程序设计报告讲解视频&#xff09; 基于51单片机智能窗帘仿真设计 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真设计4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单资料下载链接&#xff1a; 仿真图proteus8.9及以上…

学习周报:文献阅读+Fluent案例+有限体积法理论学习

目录 摘要 Abstract 文献阅读&#xff1a;基于物理信息神经网络的稀疏数据油藏模拟 文献摘要 文章讨论|结论 各方程和原理简介 PINN简介 域分解 实验设置 单相油藏问题 油水两相问题 Fluent实例&#xff1a;Y型弯管中的流体混合分析 几何建模部分 网格划分 求解器设…

举个栗子!Tableau 技巧(272):学做曲线面积图(Sigmoid area charts)

曲线面积图&#xff08;Sigmoid area charts&#xff09;是区域图的一种创新变形&#xff0c;呈现数据随时间变化的情况&#xff0c;也可用于对数据总值趋势的洞察。 如何在 Tableau 中具体实现呢&#xff1f;今天的栗子&#xff0c;一睹为快吧&#xff01; 本期《举个栗子》…

相关运算及实现

本文介绍相关运算及实现。 相关运算在相关检测及数字锁相放大中经常用到&#xff0c;其与卷积运算又有一定的联系&#xff0c;本文简要介绍其基本运算及与卷积运算的联系&#xff0c;并给出实现。 1.定义 这里以长度为N的离散时间序列x(n),y(n)为例&#xff0c;相关运算定义如…

2024 年 6 款最佳高清屏幕录像机,用于录制和共享

为了获得令人惊叹和详细的视频&#xff0c;一个优秀的高清屏幕 录像机是必不可少的。高清录像机广泛用于录制研讨会、会议、培训课程&#xff0c;甚至视频游戏。顶屏摄像头通常包含视频编辑、动画和 4K 录制等尖端功能和高端效果。 市场上有大量适用于 Windows 和 Mac 的屏幕录…

冯喜运:4.29黄金原油多空争夺,今日操作建议走势分析

【黄金消息面分析】&#xff1a;周一&#xff08;4月29日&#xff09;亚市早盘&#xff0c;现货黄金窄幅震荡&#xff0c;目前交投于2328美元/盎司。金价上周五反弹受阻&#xff0c;收报2337.36美元/盎司&#xff0c;此前数据显示美国物价升幅符合预期&#xff1b;随着中东危机…

认识及创建线程(Thread)

1 概念 1.1线程是什么 线程是CPU调度的基本单位&#xff0c;它是在进程内部运行的执行流&#xff0c;线程比进程粒度更细&#xff0c;调度成本更低 一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多…

git 命令怎么回退到指定的某个提交 commit hash 并推送远程分支?

问题 如下图&#xff0c;我要回退到 【002】Babel 的编译流程 这一次提交 解决 1、先执行下面命令&#xff0c;输出日志&#xff0c;主要就是拿到提交 commit 的 hash&#xff0c;上图红框即可 git log或者 vscode 里面直接右击&#xff0c;copy sha 2、执行下面命令回退 g…

AOMEI Partition Assistant傲梅分区助手技术员版:专业级的硬盘分区利器

在数字化时代&#xff0c;数据存储和管理变得愈发重要。对于电脑技术员而言&#xff0c;一款功能强大、操作简便的分区工具无疑是提高工作效率的得力助手。而傲梅分区助手技术员版&#xff08;AOMEI Partition Assistant&#xff09;正是这样一款备受赞誉的专业级硬盘分区软件。…

9种单片机常用的软件架构

长文预警&#xff0c;加代码5000多字&#xff0c;写了4个多小时&#xff0c;盘软件架构&#xff0c;这篇文章就够了! 可能很多工程师&#xff0c;工作了很多年&#xff0c;都不会有软件架构的概念。 因为我在做研发工程师的第6年&#xff0c;才开始意识到这个东西&#xff0c;在…

【Linux】对信号产生的内核级理解

一、键盘产生信号 键盘产生信号这里就要涉及一个重要的概念了&#xff0c;叫硬件中断。我这里会粗粒度地说一下键盘产生信号&#xff0c;以及信号被上层软件读到的过程&#xff0c;只是说一下我自己的理解。 1.1、硬件中断 硬件中断是计算机中的一种机制&#xff0c;它允许硬件…

Python 自定义日志输出

Python 有着内置的日志输出模块&#xff1a;logging 使用也很方便&#xff0c;但我们今天不说这个&#xff0c;我们用文件读写模块&#xff0c;实现自己的日志输出模块&#xff1b;这样在项目中&#xff0c;可以存在更高的自由度及更高的扩展性&#xff1b; 先来看看日志输出…

道路积水检查与报警

文章目录 模型训练积水图像数据集yolo训练流程 图像采集图像预处理模型训练参数设置积水检测与分类数据存储界面制作 模型训练 积水图像数据集 收集积水图像&#xff0c;制作数据集。每张图像对应的标注信息&#xff0c;通常包括目标的类别、边界框坐标等。标注数据可以通过标…

SAP的生成式AI

这是一篇openSAP中关于SAP生成式AI课程的笔记&#xff0c;原地址https://open.sap.com/courses/genai1/ 文章目录 Unit 1: Approaches to artificial intelligence概念三种范式监督学习非监督学习强化学习 Unit 2: Introduction to generative AI生成式AI基础模型关系基础模型有…

软件物料清单(SBOM)生成指南 .pdf

如今软件安全攻击技术手段不断升级&#xff0c;攻击数量显著增长。尤其是针对软件供应链的安全攻击&#xff0c;具有高隐秘性、追溯难的特点&#xff0c;对企业软件安全威胁极大。 同时&#xff0c;软件本身也在不断地更新迭代&#xff0c;软件内部成分安全性在持续变化浮动。…

报错:测试报错postman(测试接口)

报错如下 c.e.exception.GlobalExceptionHandler : 异常信息&#xff1a; Content type multipart/form-data;boundary--------------------------952399813172082093419475;charsetUTF-8 not supported 解决&#xff1a; 异常信息 Content type multipart/form-data;boundary…

STM32使用PWM控制舵机

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 舵机简介 2. 硬件连接 3. 代码实现 3.1 PWM.c 3.2 PWM.h 3.3 Servo.c 3.4 Servo.h 3.5 main.c 3.6 完整工程文件 PWM和OC输出详解&#xff1a; STM32定时器的OC比较和PWM​​​​​​​ 1. …

树莓派学习笔记--树莓派终端基本操作与系统备份(全卡备份,压缩备份)

树莓派终端基本操作 sudo su #切换为超级用户身份 su lyh #切换回普通用户lyh&#xff08;用户名&#xff09;#目录切换命令 pwd #显示当前所在目录 cd ~ #切换到主目录&#xff08;/home/用户名&#xff09;,~也可省略不写 cd dir …

python程序设计语言超详细知识总结

Python 首先 python 并不是简单&#xff0c;什么语言都有基础和高级之分&#xff0c;要想掌握一门语言&#xff0c;必须把高级部分掌握才行。 HelloWorld helloWorld.py print(hello, world)数据类型与变量 变量的数据类型数据类型描述变量的定义方式整数型 (int)整数&…

OpenVINO安装教程 Docker版

从 Docker 映像安装IntelDistribution OpenVINO™ 工具套件 本指南介绍了如何使用预构建的 Docker 镜像/手动创建镜像来安装 OpenVINO™ Runtime。 Docker Base 映像支持的主机操作系统&#xff1a; Linux操作系统 Windows (WSL2) macOS(仅限 CPU exectuion) 您可以使用预…