数据库=======多个模式===========多个表?
模式与数据库啥关系????
数据类型:我经常忽视
clob:字符串大对象
blob:二进制大对象
int,samllint,bigint
time:hh:mm:ss
data\e:yyyy-mm-dd
timestamp:时间戳
float(n) double
boolean
decimal(p,d)==numeric(p,d):定点数
如果想了解某个数据库,首先就需要知道,它的数据字典信息的存放,这样就可以查看到一些操作对数据库字典信息的更改,如果创建一索引,查看索引的类型等其他信息。
1、常用字典表
mysql的字典信息都存放在information_schema库中,常用的字典表有:
INFORMATION_SCHEMA.SCHEMATA --数据库中所有数据库信息
INFORMATION_SCHEMA.TABLES --存放数据库中所有数据库表信息
INFORMATION_SCHEMA.COLUMNS --所有数据库表的列信息
INFORMATION_SCHEMA.STATISTICS --存放索引信息
INFORMATION_SCHEMA.USER_PRIVILEGES --
INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
INFORMATION_SCHEMA.TABLE_PRIVILEGES
INFORMATION_SCHEMA.COLUMN_PRIVILEGES
INFORMATION_SCHEMA.CHARACTER_SETS
INFORMATION_SCHEMA.COLLATIONS
INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
INFORMATION_SCHEMA.KEY_COLUMN_USAGE ---存放数据库里所有具有约束的键信息
INFORMATION_SCHEMA.ROUTINES
INFORMATION_SCHEMA.VIEWS --存放所有视图信息
INFORMATION_SCHEMA.TRIGGERS --触发器信息
而对于学习源码的码农来讲,可能经常使用的是其中的tables、statistics,之所以这两张常用,是因为在查看执行计划时,需要用到什么索引,以及索引的类型,这对于数据库的优化来讲,非常重要,而我也主要学习查询优化这部分。对于其他一些模块的学习,如安全等,可能使用的字典表信息则是其他表。
完整性约束明明字句:constraint constraint_name not null/ check(id>0) unique/primary key()/foreign key()
触发器是用户定义在关系表上的ui类有事件驱动的特殊过程。。。。