8.4.数据库基础技术-SQL

大数据

特点:大量化(Volume)、多样化Variety)、价值密度低Value)、快速化(Velocity)。

大数据和传统数据的比较如下:

比较维度 传统数据 大数据
数据量 GB或TB级 PB级或以上
数据分析需求 现有数据的分析与检测 深度分析(关联分析、回归分析)
硬件平台 高端服务器 集群平台

要处理大数据,一般使用集成平台,称为大数据处理系统,其特征为:

高度可扩展性、高性能、高度容错、支持异构环境、较短的分析延迟、易用且开放的接口、较低成本、向下兼容性。

SQL语言

不了解的需要花其他时间自学一下,学MySQL即可,选择题一般1分,下午也有题目

SQL(Structured Query Language):是关系数据库管理系统的标准查询语言,用于存取数据以及查询、更新和管理关系数据库

主要功能

SQL的主要功能包括:

  1. 数据定义语言(DDL):用于定义数据库对象,如表、视图、索引等。包括CREATE、ALTER、DROP等语句。
  2. 数据操作语言(DML):用于对数据库中表的数据进行增删改操作。包括INSERT、UPDATE、DELETE等语句。
  3. 数据查询语言(DQL):用于查询数据库中表的记录。主要是SELECT语句及其子句
  4. 事务控制语言(TCL):用于管理数据库事务。包括COMMIT、ROLLBACK、SAVEPOINT等语句。
  5. 数据控制语言(DCL):用于管理数据库的权限和安全性。主要是GRANT(授权)和REVOKE(回收权限)语句。

常见的DDL操作

不怎么考

  1. 创建操作:create database/table/index/vie名称;
  2. 修改操作:alter table表名add/drop/modify列名,
  3. 删除操作:drop database/table/index/view名称;

常见的DML操作

考的比较多

  1. 数据库插入:insert into values0:insert into t1 values('a',66)
  2. 数据库删除:delete from.where:delete from t1 where sno=4
  3. 数据库修改:update.set...where:update t1 set sname='aa'where sno=3

常见的DQL操作

select...from...where...group by...having...order by...limit...

  1. 排序order by,默认为升序(ASC),降序要加关键字DESC:select*from t1 order by sno
  2. 分页limit, limit startlndex,pageSize,startlndex代表从第几项开始,pageSize代表展示多少项数据,startlndex从0开始算:select*from t1 limit 0,10
  3. 分组查询group by,分组时要注意select后的列名要适应分组,having为分组查询附加条件:select sno,avg(score)from student group by sno having(avg(score)>60)
  4. 更名运算as:select sno as"学号"from table
    5.字符串匹配:Iike,%匹配多个字符串,匹配任意一个字符串:select*from t1 where sname like'a_a'

常见的TCL操作

  1. 开启事务:start transaction
  2. 事务提交:commit
  3. 事务回滚:rollback
  4. 设置保存点:save point
  5. 回滚至保存点:rollback to savepoint

常见的DCL操作:

  1. 创建用户(CREATE USER):用于创建新的数据库用户。

  2. 删除用户(DROP USER):用于删除已存在的数据库用户。

  3. 修改用户密码(ALTER USER):用于修改数据库用户的密码。

  4. 授予权限(GRANT):用于为用户或角色授予对数据库对象的权限。考过

    复制代码
    GRANT privileges ON database_name.* TO 'username'@'host';
    • privileges:所需的权限,如 ALL PRIVILEGES、SELECT、INSERT、UPDATE、DELETE 等。
    • database_name.:表示对某个数据库或表授予权限。database_name. 表示对整个数据库的所有表授予权限,database_name.table_name 表示对指定的表授予权限。
    • TO 'username'@'host':指定授予权限的用户和主机。
  5. 撤销权限(REVOKE):用于撤销用户或角色已获得的对数据库对象的权限。考过

    复制代码
    REVOKE privileges ON database_name.* FROM 'username'@'host';
  6. 创建角色(CREATE ROLE):用于创建新的数据库角色。

  7. 删除角色(DROP ROLE):用于删除已存在的数据库角色。

  8. 授子角色(GRANT ROLE):用于将角色授予给用户或其他角色。

  9. 撤销角色(REVOKE ROLE):用于撤销用户或角色已获得的角色。

其他的表操作

  1. 指定主键(primary key()):用于设置某个表的字段为主键。
  2. 指定外键(foreign key()):用于设置某个表的某个字段为外键,后面还需要接关联哪个表的主键字段

练习题

【2023】如果将Students表的插入权限赋予用户User1,并允许其将该权限授予他人,那么正确的SQL语句如下:GRANT(55)TABLE Students TO User1(56)

(55)

A.INSERT

B.INSERT ON

C.UPDATE

D.UPDATE ON

(56)

A.FOR ALL

B.PUBLIC

C.WITH GRANT OPTION

D.WITH CHECK OPTION

答案B C

【2021】SQL是一种数据库结构化查询语言,SQL注入攻击的首要目标是()。

(A)破坏Web服务

(B)窃取用户口令等机密信息

©攻击用户浏览器,以获得访问权限

(D)获得数据库的权限

答案D

SQL注入:假设有一个登录系统,用户通过输入用户名和密码进行身份验证

复制代码
SELECT * FROM users WHERE username = 'input_username' AND password = 'input_password';

如果没有正确的输入验证和防范措施,攻击者可以输入类似于以下内容的用户名:

' OR '1'='1'; --

在这种情况下,SQL 查询会变成:

复制代码
SELECT * FROM users WHERE username = '' OR '1'='1'; --' AND password = 'input_password';

这会使查询返回所有用户,因为 1=1 总是为真,注释符号 -- 用于注释掉原始查询的其余部分,以确保语法正确。

这样会在未授权的情况下就能访问数据库

【2019】要将部门表Dept中name列的修改权限赋予用户Ming,并允许Ming将该权限授予他人。实现该要求的SQL语句如下:GRANT UPDATE(name)ON TABLE Dept TO Ming ()

(A)FOR ALL

(B)CASCADE

©WITH GRANT OPTION

(D)WITH CHECK OPTION

答案C

相关推荐
一叶飘零_sweeeet14 小时前
备战 2025 软考系统架构师
系统架构·软考·系统架构师
要开心吖ZSH3 天前
软件设计师备考-(十四)数据库设计
java·数据库·软考·软件设计师
CodingSir聊软考6 天前
【系规伴学】云资源规划核心知识点解析
软考
奔跑吧邓邓子1 个月前
【软考中级网络工程师】知识点之网关协议深度剖析
网络工程师·软考·网关协议·中级
奔跑吧邓邓子1 个月前
【软考中级网络工程师】知识点之 STP 协议,网络的 “交通协管员”
网络工程师·软考·中级·stp协议
奔跑吧邓邓子1 个月前
【软考中级网络工程师】知识点之 RIP 协议
网络工程师·软考·rip协议·中级
奔跑吧邓邓子1 个月前
【软考中级网络工程师】知识点之级联
网络工程师·软考·级联·中级
奔跑吧邓邓子1 个月前
【软考中级网络工程师】知识点之堆叠
网络工程师·软考·中级
moton20172 个月前
【软件系统架构】系列七:系统性能——路由器性能深入解析
系统架构·路由器·软考·吞吐量·软件系统架构·并发连接数·转发延迟
学习菌子2 个月前
第11章:【系统架构设计师】项目管理
系统架构·项目管理·软考高级·软考·软考系统架构设计师