(笔记)位运算

1.按位与 ── &

(1)格式:x&y
(2)规则:对应位均为1时才为1,否则为0。

例如,3&9=1:       0011
               &   1001   
               ----------- 
                   0001   

(3)主要用途:取(或保留)1个数的某些位,其余各位置0。

2.按位或 ── |

(1)格式:x|y
(2)规则:对应位均为0时才为0,否则为1:3|9=11。

例如,3|9=11:     0011 
                | 1001    
              ----------- 
                  1011  

(3)主要用途:将1个数的某(些)位置1,其余各位不变。

3.按位异或 ── ^

(1)格式:x^y
(2)规则:对应位相同时为0,不同时为1。
(3)主要用途:使1个数的某些位翻转,其余各位不变。

交换A B的值,在不使用第三个变量的情况下:
1.  A = A + B
    B = 
<think>我们注意到用户的上一个问题是在询问关于据库运算的笔记或资料,而当前对话历史中用户之前的问题是关于大整运算的据结构。同时,用户提供的三个引用都是关于据库知识的(SQL、触发器和事务隔离级别)。因此,我们需要将据库运算的相关知识整理成笔记形式,并结合引用内容。根据引用内容,我们可以总结以下关于据库运算的笔记1.引用[1]介绍了SQL语言,它是关系据库的标准语言,包括据查询、据操纵、据定义和据控制。同时提到了关系据库的三级模式(基本表和视图)。2.引用[2]介绍了触发器的优势,包括预编译、效率高、可重复使用、封装业务逻辑以及安全性(避免SQL注入)。3.引用[3]介绍了据库事务隔离级别中的读已提交(readcommitted)级别。因此,我们可以将据库运算的笔记分为以下几个部分:-SQL语言概述-触发器-事务隔离级别我们将按照这些主题组织笔记,并在每个部分后添加相关引用标识。同时,我们还需要生成相关问题。注意:用户要求使用中文回答,并且行内学表达式用$...$,独立公式用$$...$$。由于据库运算中学表达式可能较少,但如果有关系代等内容,会使用学符号。不过,当前引用中并没有直接涉及关系代等运算,因此我们主要根据引用内容进行整理。我们这样组织回答:###据库运算笔记####1.SQL语言SQL(结构化查询语言)是关系据库的标准语言,支持关系据库的三级模式结构。它包含以下功能:-据查询(SELECT)-据操纵(INSERT,UPDATE,DELETE)-据定义(CREATE,ALTER,DROP)-据控制(GRANT,REVOKE)在关系据库中,基本表是独立存在的表,而视图是从基本表或其他视图导出的虚表。据库中只存放视图的定义,而不存放视图对应的据。用户可以使用SQL对视图和基本表进行查询等操作[^1]。####2.触发器触发器是一种特殊的存储过程,它在指定的据库事件发生时自动执行。触发器的优势包括:-**预编译和优化**:触发器在创建时进行编译和优化,执行效率较高,避免了SQL语句在网络上传输后再解释的低效率问题。-**可重用性**:触发器可以被多次使用,减少了开发人员的工作量(相比每次使用都要编写的SQL语句)。-**业务逻辑封装**:将业务逻辑放在据库中处理,使得逻辑更加清晰,便于后期维护和二次开发。-**安全性**:使用触发器可以避免SQL注入攻击[^2]。####3.事务隔离级别事务隔离级别是据库管理系统(DBMS)用于控制并发访问的重要机制。其中,读已提交(readcommitted)隔离级别的特点是:-事务只能读取到其他事务已经提交的据。-在该级别下,同一个事务内两次相同的查询可能会得到不同的结果(不可重复读)。例如,事务A第一次查询得到3条据,之后事务B提交了新的据,事务A再次查询可能会得到5条据。-读已提交隔离级别可以保证每次读到的据都是绝对真实的(即已提交的据)。Oracle据库默认采用此隔离级别[^3]。注意:这里我们只根据引用内容整理了读已提交隔离级别,实际上还有其他隔离级别(如读未提交、可重复读、串行化),但引用未提及,故不展开。然后,生成相关问题:§§相关问题§§1.SQL语言中视图和基本表有什么区别?2.触发器的执行时机有哪些?3.据库事务隔离级别有哪些?各自解决了什么问题?</think> ### 据库运算笔记与资料整理 #### 一、SQL语言基础 SQL是**结构化查询语言**的核心组件,包含四大功能模块: 1. **据查询(SELECT)**:检索据库中的特定据 ```sql SELECT * FROM employees WHERE department = 'Finance'; ``` 2. **据操纵(DML)**:增删改操作(INSERT/DELETE/UPDATE) 3. **据定义(DDL)**:创建/修改结构(CREATE/ALTER/DROP) 4. **据控制(DCL)**:权限管理(GRANT/REVOKE) 支持关系据库**三级模式结构**: - **基本表**:物理存储的实际据表 - **视图**:虚表(Virtual Table),基于查询逻辑的动态映射 ```sql CREATE VIEW finance_employees AS SELECT id, name FROM employees WHERE dept='Finance'; ``` 视图仅存储定义,不存储实际据,通过SQL操作实现据访问[^1]。 --- #### 二、触发器与编程优势 触发器(Trigger)是**事件驱动型**据库对象,核心优势: 1. **预编译优化**:执行效率高于动态SQL(省去语法解析和优化环节) 2. **逻辑封装**:将业务规则内置于据库 ```sql CREATE TRIGGER salary_audit AFTER UPDATE ON employees FOR EACH ROW BEGIN INSERT INTO audit_log VALUES (OLD.salary, NEW.salary, NOW()); END; ``` 3. **安全防护**:避免SQL注入攻击(参化执行) 4. **可重用性**:一次定义多次调用[^2] --- #### 三、事务隔离与并发控制 事务隔离级别确保据一致性: | 级别 | 脏读 | 不可重复读 | 幻读 | 说明 | |------|------|------------|------|------| | **读已提交(READ COMMITTED)** | ❌ | ✔️ | ✔️ | Oracle默认级别,读取已提交的据[^3] | | 可重复读(REPEATABLE READ) | ❌ | ❌ | ✔️ | MySQL默认级别 | | 串行化(SERIALIZABLE) | ❌ | ❌ | ❌ | 高隔离级别 | > **读已提交示例**: > 事务A首次查询→返回3条记录 > 事务B提交新据→事务A二次查询→返回5条记录 > 每次读取的都是新**已提交**据[^3] --- #### 四、据库运算优化技术 1. **索引优化**: ```sql CREATE INDEX idx_dept ON employees(department); -- 加速WHERE筛选 ``` 2. **查询重写**: ```sql -- 优化前 SELECT * FROM orders WHERE total > (SELECT AVG(total) FROM orders); -- 优化后(避免子查询重复执行) WITH avg_order AS (SELECT AVG(total) as avg FROM orders) SELECT * FROM orders, avg_order WHERE total > avg; ``` 3. **分区表**: 按时间/范围分区提升大表查询性能: ```sql CREATE TABLE sales PARTITION BY RANGE (sale_date) ( PARTITION p2023 VALUES LESS THAN ('2024-01-01'), PARTITION p2024 VALUES LESS THAN ('2025-01-01') ); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值