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

相关推荐
IT 青年3 天前
网络工程师 (35)以太网通道
网络工程师·软考
韩曙亮7 天前
【系统架构设计师】操作系统 - 进程管理 ② ( 进程状态 | 三态模型 | 五态模型 | 进程状态 划分依据 | PCB 程序控制块 的 组织方式 )
系统架构·操作系统·进程·软考·进程管理·程序控制块·进程阻塞
rockmelodies7 天前
信息安全工程师-快速记忆GB17859中的五个安全保护等级
安全·信息安全·软考
IT 青年9 天前
网络工程师 (31)VLAN
网络工程师·软考
IT 青年9 天前
网络工程师 (30)以太网技术
网络工程师·软考
韩曙亮10 天前
【系统架构设计师】操作系统 - 进程管理 ① ( 进程概念 | 进程组成 | 进程 与 程序 | 进程 与 线程 | 线程 可共享的资源 - ☆考点 )
操作系统·线程·进程·软考·进程管理·程序·系统架构设计师
it技术分享just_free12 天前
软考教材重点内容 信息安全工程师 第15章 网络安全主动防御技术与应用
运维·web安全·网络安全·信息安全·系统安全·软考
HCIE考证研究所13 天前
软考通过率仅有10% ?或许2025年更难?
运维·服务器·网络工程师·软考
IT 青年14 天前
网络工程师 (20)计算机网络的概念
网络工程师·软考
IT 青年14 天前
网络工程师 (22)网络协议
网络工程师·软考