Q:数据库启动失败,提示找不到pid文件 A:1、之前的数据库服务未释放,导致3306端口处于占用状态 2、数据库初始化失败 3、数据目录位置错误 4、数据目录权限问题

SQL模型: ANSI QUOTES IGNORS_SPACE STRICT_ALL_TABLES STRICT_TRANS_TABLES RADITIONAL

MYSQL服务器变量: 作用域:分为两类 全局变量 SHOW GLOBAL VARIABLES 会话变量 SHOW [SESSION] VARIABLES

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

数据字典:Data Dictionary;mysql初始化,即mysql的数据字典

		关系的元数据:
						关系的名字
						字段的名字
						字段的类型和长度
						视图
						约束
						
						用户名字、授权、密码

缓冲区管理器: 缓存置换策略: