sql注入原理与实战(四)数据表操作

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: sql注入原理与实战(四)数据表操作

数据表操作是指对关系型数据库中的数据表进行创建、修改、删除等操作的过程。以下是一些常见的数据表操作及其示例:

创建数据表

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
   .....
);

修改数据表

-- 添加列
ALTER TABLE table_name ADD column_name datatype;
-- 删除列
ALTER TABLE table_name DROP COLUMN column_name;
-- 修改列名和数据类型
ALTER TABLE table_name CHANGE old_column_name new_column_name new_datatype;

删除数据表

DROP TABLE table_name;

克隆数据表

-- 克隆表结构
CREATE TABLE new_tbl LIKE orig_tbl;
-- 克隆表结构并拷贝数据
CREATE TABLE new_tbl LIKE orig_tbl;
INSERT INTO new_tbl SELECT * FROM orig_tbl;

修改表中数据

-- 更新数据
UPDATE table_name SET column_name = new_value WHERE some_column = some_value;
-- 删除数据
DELETE FROM table_name WHERE some_column = some_value;

创建数据表

image.png

创建数据表

mysql> CREATE TABLE qiuzhi_test(

查看此数据库所有表

mysql> show tables; 查看此数据库所有表

查看此数据表

mysql> desc qiuzhi_test; 查看此数据表

查看创建此表的配置文件  

mysql > show create table sectest; 查看创建此表的配置文件

多表查询

内连接

隐式内连接:select * from emp e1, dept d1 where e1.deptno = d1.deptno;

显示内连接:select * from emp e1 inner join dept d1 on e1.deptno = d1.deptno;

外连接

左外连接

隐式左外连接:select * from emp e1,dept d1 where e1.deptno = d1.deptno(+);

显示左外连接:select * from emp e1 left outer join dept d1 on e1.deptno = d1.deptno;

右外连接

隐式右外连接:select * from emp e1,dept d1 where e1.deptno(+) = d1.deptno;

显示右外连接:select * from emp e1 right outer join dept d1 on e1.deptno = d1.deptno;

全外连接:select * from emp e1 full outer join dept d1 on e1.deptno = d1.deptno;

交叉连接

隐式交叉连接:select * from emp, dept;

显示交叉连接:select * from emp e1 cross join dept d1;

数据列操作

image.png

删除列

image.png

删除数据

image.png


数据操作  

数据库数据操作主要包括增加、删除、修改和查询四种类型。以下是每种类型的简要介绍:

1.增加数据:使用INSERT语句向数据库中插入新的数据。例如,下面的SQL语句可以向名为“students”的表中插入一条新的学生记录:

INSERT INTO students (name, age, gender) VALUES ('Tom', 18, 'male');

2.删除数据:使用DELETE语句从数据库中删除数据。例如,下面的SQL语句可以删除名为“students”的表中所有年龄小于18岁的学生记录:

DELETE FROM students WHERE age < 18;

3.修改数据:使用UPDATE语句修改数据库中的数据。例如,下面的SQL语句可以将名为“Tom”的学生的年龄修改为20岁:

UPDATE students SET age = 20 WHERE name = 'Tom';

4.查询数据:使用SELECT语句从数据库中查询数据。例如,下面的SQL语句可以查询名为“students”的表中所有学生的姓名和年龄:

SELECT name, age FROM students;

image.png

简单查询

数据库查询操作是指从数据库中检索所需数据的过程。常见的查询操作包括简单查询、条件查询、排序查询、分组查询和分页查询等。以下是一些常见的数据库查询操作及其示例:

简单查询

简单查询是指从数据库中检索所有数据的操作。例如,以下SQL语句将从名为“students”的表中检索所有数据:

SELECT * FROM students;

条件查询

条件查询是指从数据库中检索符合特定条件的数据的操作。例如,以下SQL语句将从名为“students”的表中检索年龄大于18岁的学生数据:

SELECT * FROM students WHERE age > 18;

排序查询

排序查询是指从数据库中检索数据并按照特定顺序排序的操作。例如,以下SQL语句将从名为“students”的表中检索所有数据,并按照年龄从小到大的顺序排序:

SELECT * FROM students ORDER BY age ASC;

分组查询

分组查询是指从数据库中检索数据并按照特定分组方式进行分组的操作。例如,以下SQL语句将从名为“students”的表中检索所有数据,并按照性别进行分组:

SELECT sex, COUNT(*) FROM students GROUP BY sex;

分页查询

分页查询是指从数据库中检索数据并按照特定分页方式进行分页的操作。例如,以下SQL语句将从名为“students”的表中检索第2页的数据,每页显示10条数据:

SELECT * FROM students LIMIT 10 OFFSET 10;

image.png

进阶操作

以下是关于分组查询和联合查询的介绍和演示:

分组查询

分组查询是指将数据按照某个字段进行分组,并对每个分组进行聚合操作,例如求和、平均值等。常用的关键字包括GROUP BY和HAVING。

例如,我们有一个学生表,其中包含学生的姓名、班级和成绩三个字段。现在我们想要按照班级对学生进行分组,并计算每个班级的平均成绩,可以使用如下SQL语句:

SELECT class, AVG(score) as avg_score
FROM student
GROUP BY class;

上述SQL语句中,我们使用了GROUP BY关键字对class字段进行分组,并使用AVG函数计算每个班级的平均成绩。最终的结果将会按照班级分组,并显示每个班级的平均成绩。

联合查询

联合查询是指将多个查询结果合并成一个结果集。常用的关键字包括UNION和UNION ALL。

例如,我们有两个学生表,分别为学生表A和学生表B,其中包含学生的姓名、班级和成绩三个字段。现在我们想要将这两个表的数据合并,并按照成绩进行排序,可以使用如下SQL语句:

SELECT name, class, score
FROM student_A
UNION
SELECT name, class, score
FROM student_B
ORDER BY score DESC;

上述SQL语句中,我们使用了UNION关键字将学生表A和学生表B的数据合并,并使用ORDER BY关键字按照成绩进行降序排序。最终的结果将会是一个包含所有学生信息的结果集,并按照成绩从高到低排序

image.png

image.png

image.png
























相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
5月前
|
SQL 安全 关系型数据库
SQL注入之万能密码:原理、实践与防御全解析
本文深入解析了“万能密码”攻击的运行机制及其危险性,通过实例展示了SQL注入的基本原理与变种形式。文章还提供了企业级防御方案,包括参数化查询、输入验证、权限控制及WAF规则配置等深度防御策略。同时,探讨了二阶注入和布尔盲注等新型攻击方式,并给出开发者自查清单。最后强调安全防护需持续改进,无绝对安全,建议使用成熟ORM框架并定期审计。技术内容仅供学习参考,严禁非法用途。
711 0
|
6月前
|
SQL 运维 监控
SQL查询太慢?实战讲解YashanDB SQL调优思路
本文是Meetup第十期“调优实战专场”的第二篇技术文章,上一篇《高效查询秘诀,解码YashanDB优化器分组查询优化手段》中,我们揭秘了YashanDB分组查询优化秘诀,本文将通过一个案例,助你快速上手YashanDB慢日志功能,精准定位“慢SQL”后进行优化。
|
4月前
|
SQL 存储 自然语言处理
SQL的解析和优化的原理:一条sql 执行过程是什么?
SQL的解析和优化的原理:一条sql 执行过程是什么?
SQL的解析和优化的原理:一条sql 执行过程是什么?
|
5月前
|
SQL 人工智能 自然语言处理
Text2SQL圣经:从0到1精通Text2Sql(Chat2Sql)的原理,以及Text2Sql开源项目的使用
Text2SQL圣经:从0到1精通Text2Sql(Chat2Sql)的原理,以及Text2Sql开源项目的使用
Text2SQL圣经:从0到1精通Text2Sql(Chat2Sql)的原理,以及Text2Sql开源项目的使用
|
6月前
|
SQL 缓存 Java
框架源码私享笔记(02)Mybatis核心框架原理 | 一条SQL透析核心组件功能特性
本文详细解构了MyBatis的工作机制,包括解析配置、创建连接、执行SQL、结果封装和关闭连接等步骤。文章还介绍了MyBatis的五大核心功能特性:支持动态SQL、缓存机制(一级和二级缓存)、插件扩展、延迟加载和SQL注解,帮助读者深入了解其高效灵活的设计理念。
|
9月前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
10月前
|
SQL 数据库 UED
SQL性能提升秘籍:5步优化法与10个实战案例
在数据库管理和应用开发中,SQL查询的性能优化至关重要。高效的SQL查询不仅可以提高应用的响应速度,还能降低服务器负载,提升用户体验。本文将分享SQL优化的五大步骤和十个实战案例,帮助构建高效、稳定的数据库应用。
732 3
|
11月前
|
SQL 关系型数据库 数据库
SQL数据库:核心原理与应用实践
随着信息技术的飞速发展,数据库管理系统已成为各类组织和企业中不可或缺的核心组件。在众多数据库管理系统中,SQL(结构化查询语言)数据库以其强大的数据管理能力和灵活性,广泛应用于各类业务场景。本文将深入探讨SQL数据库的基本原理、核心特性以及实际应用。一、SQL数据库概述SQL数据库是一种关系型数据库
336 5
|
10月前
|
SQL 缓存 监控
SQL性能提升指南:五大优化策略与十个实战案例
在数据库性能优化的世界里,SQL优化是提升查询效率的关键。一个高效的SQL查询可以显著减少数据库的负载,提高应用响应速度,甚至影响整个系统的稳定性和扩展性。本文将介绍SQL优化的五大步骤,并结合十个实战案例,为你提供一份详尽的性能提升指南。
720 0

热门文章

最新文章