SQL -结构化查询语言的发展史
时间:2022-03-15 08:49
DDL:数据操作语言
INSERT
DELETE
SELECT
UPDATE
DML:数据定义语言
CREATE
DROP
ALTER
DCL:数据控制语言
GRANT
REVOKE
RDB对象:
库、表、索引、视图、用户、存储过程、存储函数、触发器、事件调度器。
约束:
域约束:数据类型约束
外键约束:引用完整性约束
主键约束:某字段能唯一标识此字段所属的实体,并且不允许为空一张表中可以有多个
检查性约束:age:int
关系型数据库:
表示层:表
逻辑层:存储引擎
物理层:数据文件
数据存储和查询
存储管理器:
权限机完整性管理
事务管理器
文件管理器
缓冲区管理器
查询管理器:
DML解释器
DDL解释器
DCL解释器
查询执行引擎
mysql是单进程多线程的系统;不会给多个进程启动多个进程!
线程复用
mysql不支持对称多处理器(smp),意思是不能在一个sql处理分摊到多个cpu上处理,因此在处理速度上面就慢。
关系运算:
投影:只输出指定的字段
选择:只输出符合条件的行
自然链接:具有相同名字的所有属性值上取值相同的行
笛卡尔积:
SQL查询语句:
sequel ---> SQL
SQL-86
SQL-89
SLQ-92
SQL-99
SQL-08
SQL语言的组成部分:
DDL:
DML:
完整性定义语言:DDL的一部分功能
视图定义:
事务控制:
嵌入式SQL和动态SQL:
授权:DCL
使用程序设计语言如何RDBMS交互:
嵌入式SQL:与动态SQL类似,但其语言必须程序编译时完全确定下来;
ODBC;针对的程序为 C
动态SQL:程序设计语言使用函数(mysql_conect())或者方法与RDBMS服务器建立连接,并进行交互;通过建立连接向SQL服务器发送查询语句,并将结果保存至变量中而后进行处理。
JDBC;针对的程序为 JAVA
MYSQL支持插件式存储引擎
mysql 5.5.8的之前的存储引擎是MyISAM,不支持事务。特别适合查询比较多但是修改比较少的场景。
mysql 5.5.8版本之后的存储引擎是InnoDB,
表管理器:负责创建、读取或修改表定义文件;维护表描述高速缓存;管理表锁。
表结构定义文件。
表修改模块:表创建、删除、重命名、移除、更新或插入之类的操作
表维护模块:;检查、修改、备份、恢复、优化(碎片整理)及解析;
文件中记录组织:
堆文件组织:一条记录可以放在文件中的任何地方。
顺序文件组织:根据”搜索码“值顺序存放;
散列文件组织:
表结构定义文件;表数据文件
表空间:table space