基础知识
一、SQL语言
• 定义:
• SQL是结构化查询语言(Structured Query Language)的简称,是一种在关系型数据库中定义和操纵数据的标准语言。
• 特点:
• 非过程化语言,没有分支、循环结构,通过几个命令动词就可以实现对数据库以及数据的查询和管理。
• 统一的语言,为许多任务提供了统一的命令,如查询数据使用select from关键字,在表中插入、修改、删除数据使用insert into、update、delete from关键字等。
• 是所有关系型数据库的公共语言,可与数据库程序协同工作,比如MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase等。
• 功能:
• 数据定义(DDL):定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
• 数据操纵(DML):对数据库中的数据进行添加、修改、删除、查询等操作。
• 数据查询(DQL):从数据库中检索数据。 *数据控制(DCL):对用户访问数据的控制有基本表和视图的授权及回收。
• 事务控制(TCL):包括事务的提交与回滚。
二、数据库
• 定义
数据库是存放数据的一个容器,可以理解为它是用来存放数据的地方。
• 类型
关系型数据库,如MySQL、Oracle、SQL Server等。
• 基础
RDBMS(关系数据库管理系统)是SQL的基础,同样也是所有现代数据库系统的基础。RDBMS中的数据存储在被称为表(tables)的数据库对象中,表是相关的数据项的集合,它由列和行组成。
SQL语言的基本语法
1. 数据定义语言(DDL)
DDL用于定义和管理数据库结构,包括表、索引、视图等。
• 创建表
CREATE TABLE 表名 (
列名1 数据类型 约束条件,
列名2 数据类型 约束条件,
列名3.......
);
• 删除表
DROP TABLE 表名;
• 修改表
添加列:
ALTER TABLE 表名 ADD 列名 数据类型 约束条件;
删除列:
ALTER TABLE 表名 DROP COLUMN 列名;
修改列的数据类型或约束:
ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型 新约束条件;
2. 数据操纵语言(DML)
DML用于对数据库中的数据进行增删改查操作。
• 插入数据
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
• 更新数据
UPDATE 表名 SET 列名1 = 新值1, 列名2 = 新值2, ... WHERE 条件;
• 删除数据
DELETE FROM 表名 WHERE 条件;
• 查询数据
SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件 ORDER BY 列名 ASC|DESC;
3. 数据查询语言(DQL)
DQL实际上是DML的一个子集,主要用于查询数据。
• 基本查询
SELECT 列名1, 列名2, ... FROM 表名;
• 带条件的查询
SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件;
• 排序查询结果
SELECT 列名1, 列名2, ... FROM 表名 ORDER BY 列名 ASC|DESC;
• 聚合函数
如COUNT(),SUM(),AVG(),MAX(),MIN()等。
SELECT COUNT(*) FROM 表名;
• 分组查询
SELECT 列名, 聚合函数(列名) FROM 表名 GROUP BY 列名;
• 多表查询
包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)等。
SELECT a.列名1, b.列名2 FROM 表a a INNER JOIN 表b b ON a.公共列 = b.公共列;
4. 数据控制语言(DCL)
DCL用于设置或更改数据库用户或角色的权限。
• 授予权限
GRANT 权限类型 ON 对象 TO 用户;
• 撤销权限
REVOKE 权限类型 ON 对象 FROM 用户;
5. 事务控制语言(TCL)
TCL用于管理数据库事务。
• 开始事务
大多数数据库默认每条SQL语句都是一个事务,但可以通过显式命令开始一个事务。
• 提交事务
COMMIT;
• 回滚事务
ROLLBACK;
• 设置保存点
SAVEPOINT 保存点名称;
• 回滚到保存点
ROLLBACK TO SAVEPOINT 保存点名称;
SQL注入漏洞
• 定义:
SQL注入漏洞是一种常见的网络安全漏洞,它允许攻击者通过在应用程序的输入字段中插入恶意的SQL代码,从而执行未经授权的数据库操作。
• 成因:
主要存在于未正确验证和过滤用户输入的Web应用程序中,特别是那些使用动态生成SQL查询的应用程序。
• 原理:
应用程序在处理用户输入时未对数据进行充分的检查和过滤,导致攻击者可以构造特定的恶意SQL查询语句,这些语句在到达数据库前未被正确处理,从而导致数据库执行了非预期的指令。
• 危害:
攻击者可以绕过身份验证、盗取数据、修改数据、执行拒绝服务攻击等,对数据库和应用程序的安全构成严重威胁。
标签:入门,列名,SQL,第三周,查询,表名,数据,数据库 From: https://blog.csdn.net/2403_88364403/article/details/143631641