大数据
特点:大量化(Volume)、多样化Variety)、价值密度低Value)、快速化(Velocity)。
大数据和传统数据的比较如下:
比较维度 | 传统数据 | 大数据 |
---|---|---|
数据量 | GB或TB级 | PB级或以上 |
数据分析需求 | 现有数据的分析与检测 | 深度分析(关联分析、回归分析) |
硬件平台 | 高端服务器 | 集群平台 |
要处理大数据,一般使用集成平台,称为大数据处理系统,其特征为:
高度可扩展性、高性能、高度容错、支持异构环境、较短的分析延迟、易用且开放的接口、较低成本、向下兼容性。
SQL语言
不了解的需要花其他时间自学一下,学MySQL即可,选择题一般1分,下午也有题目
SQL(Structured Query Language):是关系数据库管理系统的标准查询语言,用于存取数据以及查询、更新和管理关系数据库
主要功能
SQL的主要功能包括:
- 数据定义语言(DDL):用于定义数据库对象,如表、视图、索引等。包括CREATE、ALTER、DROP等语句。
- 数据操作语言(DML):用于对数据库中表的数据进行增删改操作。包括INSERT、UPDATE、DELETE等语句。
- 数据查询语言(DQL):用于查询数据库中表的记录。主要是SELECT语句及其子句
- 事务控制语言(TCL):用于管理数据库事务。包括COMMIT、ROLLBACK、SAVEPOINT等语句。
- 数据控制语言(DCL):用于管理数据库的权限和安全性。主要是GRANT(授权)和REVOKE(回收权限)语句。
常见的DDL操作
不怎么考
- 创建操作:create database/table/index/vie名称;
- 修改操作:alter table表名add/drop/modify列名,
- 删除操作:drop database/table/index/view名称;
常见的DML操作
考的比较多
- 数据库插入:insert into values0:insert into t1 values('a',66)
- 数据库删除:delete from.where:delete from t1 where sno=4
- 数据库修改:update.set...where:update t1 set sname='aa'where sno=3
常见的DQL操作
select...from...where...group by...having...order by...limit...
- 排序order by,默认为升序(ASC),降序要加关键字DESC:select*from t1 order by sno
- 分页limit, limit startlndex,pageSize,startlndex代表从第几项开始,pageSize代表展示多少项数据,startlndex从0开始算:select*from t1 limit 0,10
- 分组查询group by,分组时要注意select后的列名要适应分组,having为分组查询附加条件:select sno,avg(score)from student group by sno having(avg(score)>60)
- 更名运算as:select sno as"学号"from table
5.字符串匹配:Iike,%匹配多个字符串,匹配任意一个字符串:select*from t1 where sname like'a_a'
常见的TCL操作
- 开启事务:start transaction
- 事务提交:commit
- 事务回滚:rollback
- 设置保存点:save point
- 回滚至保存点:rollback to savepoint
常见的DCL操作:
-
创建用户(CREATE USER):用于创建新的数据库用户。
-
删除用户(DROP USER):用于删除已存在的数据库用户。
-
修改用户密码(ALTER USER):用于修改数据库用户的密码。
-
授予权限(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':指定授予权限的用户和主机。
-
撤销权限(REVOKE):用于撤销用户或角色已获得的对数据库对象的权限。考过
REVOKE privileges ON database_name.* FROM 'username'@'host';
-
创建角色(CREATE ROLE):用于创建新的数据库角色。
-
删除角色(DROP ROLE):用于删除已存在的数据库角色。
-
授子角色(GRANT ROLE):用于将角色授予给用户或其他角色。
-
撤销角色(REVOKE ROLE):用于撤销用户或角色已获得的角色。
其他的表操作
- 指定主键(primary key()):用于设置某个表的字段为主键。
- 指定外键(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