8.4.数据库基础技术-SQL

news/2024/9/24 15:17:24/

大数据

特点:大量化(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


http://www.ppmy.cn/news/1508948.html

相关文章

RUST实现远程操作电脑手机

简介: Rust Desk 是一个开源的远程桌面软件,能够完全替代向日葵和ToDesk的功能,包括电脑控制电脑、电脑控制手机、手机控制电脑等。它是完全免费的。 下载: 需要下载 Rust Desk 的服务端和客户端安装包。 安装: 服务…

CUDA Programming - (1) CUDA简介

1. GPU 简介 处理器一般包含以下几部分:Cache 缓存,ALU 计算单元,Control 控制中心,RAM 内存。 CPU(Central Processing Unit):中央处理器。适合进行逻辑,ALU计算核心较少。适合控…

UE开发中的设计模式(二) —— 中介者模式

上一篇文章介绍了观察者模式如何降低观察者和目标之间的耦合,并通过一个实例具体实现了观察者模式,本篇文章从上篇文章的实例继续,介绍中介者模式是如何带来对象间进一步的松耦合。 文章目录 问题提出概述问题解决总结优点缺点模式应用 参考资…

几个常用脚本

系统初始化 #!/bin/bash # 定义颜色常量 RED\033[0;31m GREEN\033[0;32m NC\033[0m # No Color #功能菜单 menu() {clearecho "请选择要执行的操作:"echo "1. 检查网络"echo "2. 关闭防火墙和SELinux"echo "3. 替换YUM源"echo "…

基于NXP i.MX8M Mini+FPGA医疗超声诊断设备

医疗超声诊断设备 超声诊断仪,又称超声医疗影像设备,是利用超声波的反射、折射和衍射,对人体内部结构进行探查的仪器。由于超声诊断的无损伤、非介入、经济实用、应用范围广等特点,超声诊断仪也成为目前医疗领域普遍使用的医疗器…

血缘系统 datahub + Sqllineage

1.说明 业界比较主流的数据血缘系统,目前还没能达到与调度系统耦合,最大难点在于代码解析。当某张表下游太多时(特别是维度表),展示也失去了意义,所以多用于排查某张应用表的上游从哪里开。使用方一般为对数仓表结构不太熟悉的业务…

2024最新互联网大厂 Java 面试八股文合集(附权威答案)

最近感慨面试难的人越来越多了,一方面是市场环境,更重要的一方面是企业对Java的人才要求越来越高了。 基本上这样感慨的分为两类人,第一,虽然挂着3、5年经验,但肚子里货少,也没啥拿得出手的项目&#xff0c…

基于gtids的主从复制搭建

slave服务器不小心写入数据的解决方案 如果数据⽐较少,可以通过跳过当前语句的⽅式解决,但是如果从服务器写⼊的数据⽐较多,架构必须重新搭建 可通过变量sql_slave_skip_counter临时跳过事务进⾏处理 mysql> set GLOBAL sql_slave_skip…