内连接,显示两个表中有联系的所有数据; 左链接,以左表为参照,显示所有数据,右表中没有则以null显示 右链接,以右表为参照显示数据,,左表中没有则以null显示
b-tree索引,如果不建立索引的情况下,oracle就自动给每一列都加一个B 树索引; normal:普通索引 unique:唯一索引 bitmap:位图索引,位图索引特定于只有几个枚举值的情况,比如性别字段; 基于函数的索引
1、选取适合的字段属性 为了获取更好的性能,可以将表中的字段宽度设得尽可能小。 尽量把字段设置成not null 执行查询的时候,数据库不用去比较null值。 对某些省份或者性别字段,将他们定义为enum类型,enum类型被当做数值型数据来处理,而数值型数据被处理起来的速度要比文本类型块很多。 2、使用join连接代替子查询 3、使用联合union来代替手动创建的临时表 注意:union用法中,两
1、查询重复的单个字段(group by) select 重复字段A, count(*) from 表 group by 重复字段A having count(*) > 1 2、查询重复的多个字段(group by) select 重复字段A, 重复字段B, count(*) from 表 group by 重复字段A, 重复字段B having count(*) > 1
区分度不高的字段不适合做索引,因为索引页是需要有开销的,需要存储的,不过这类字段可以做联合索引的一部分。
1、数据库设计最起码要占用这个项目开发的40%以上的时间 2、数据库设计不仅仅停留在页面demo的表面 页面内容所需字段,在数据库设计中只是一部分,还有系统运转、模块交互、中转数据、表之间的联系等等所需要的字段,因此数据库设计绝对不是简单的基本数据存储,还有逻辑数据存储。 3、数据库设计完成后,项目80%的设计开发都要存在你的脑海中 每个字段的设计都要有他存在的意义,要清楚的知道程序中如何去运用这
1、主键约束 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL); 2、唯一性约束 保证一个字段或者一组字段里的数据都与表中其它行的对应数据不同。和主键约束不同,唯一性约束允许为null,但是只能有一行; 3、唯一性索引 不允许具有索引值相同的行,从而禁止重复的索引和键值; 4、三者的区别 约束是用来检查数据的正确性; 索引是用来优化查询的; 创建唯一性约束会创建一个约束和一个唯一性
#不带排序的 SELECT * FROM ( SELECT ROWNUM AS rowno, t.* FROM worker t where ROWNUM <=20) table_alias WHERE table_alias.rowno > 10; #带排序的 SELECT * FROM ( SELECT tt.*, ROWNUM AS rowno FROM ( SELECT t.* FR
1、float 和 double 的区别是什么? (1)内存中占有的字节数不同 单精度浮点数在内存中占有4个字节; 双精度浮点数在内存中占有8个字节; (2)有效数字位数不同 单精度浮点数有效数字8位; 双精度浮点数有效数字16位; (3)数值取值范围不同 单精度浮点数的表示范围:-3.40E+38~3.40E+38 双精度浮点数的表示范围:-1.79E+308~-1.79E+308 (4)在程序
char的长度是固定的,varchar的长度的可变的; char的效率比varchar的效率高; char占用空间比varchar大,char在查询时需要使用trim;
ACID是数据库事务执行的四大基本要素,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 1、原子性 整个事务中的所有操作,要么全部完成,要不全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被roolback回滚到事务开始前的状态,就像这个事务从未执行过一样。 2、一致性 事务必须始终保持系统处于一
//MySQL,,mysql -v select version(); //Oracle select * from v$version;
一般情况下,我们创建的表类型是InnoDB。 不重启MySQL,如果新增一条记录,id是8; 重启,ID是6;因为InnoDB表只把自增主键的最大ID记录在内存中,如果重启,已删除的最大ID会丢失。 如果表类型是MyISAM,重启之后,最大ID也不会丢失,ID是8; InnoDB必须有主键(建议使用自增主键,不用UUID,自增主键索引查询效率高)、支持外键、支持事务、支持行级锁。 系统崩溃后,My
1、列不可再分; 2、每一行数据只做一件事,只与一列相关,主键; 3、每个属性都与主键有直接关系,而不是间接关系; 三大范式只是设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情结,当然要特殊对待,数据库设计最重要的是看需求和性能,需求>性能>表结构。 所以不能一味的追求三范式建立数据库。
Swagger是用于生成RestFul Web服务的可视化表示工具,它使文档和服务器可视化更新; 当定义好Swagger后,可以调用服务端接口,来查看接口的返回值,验证返回数据的正确性;