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)窃取用户口令等机密信息
(C)攻击用户浏览器,以获得访问权限
(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
(C)WITH GRANT OPTION
(D)WITH CHECK OPTION

答案C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yoyo勰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值