20201203_陈宇_

日志

学习总结:

values和value区别:

​ mysql:

​ value存单条数据

​ values存多条数据

​ oracle:

​ value不能存数据

​ values不是存多条数据,而只是存入数据

check(检查性约束):

​ check (检查):用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal 列值在1000~2000之间,如果不在1000~2000之间就会提示出错。可以为Null (MySQL 没有)

delete命令和truncate命令:

​ 区别:

​ 1.delete是数据操作语言(DML)命令;而truncate是数据定义语言(DDL)命令

​ 2.delete命令根据指定的SQL语句从表中删除单个,多个或所有记录;而truncate命令从数据库中删 除所有记录和表结构

​ 3.delete命令支持WHERE子句,可以使用带有DELETE的where子句来过滤和删除特定记录;而, truncate命令不支持WHERE子句

​ 4.delete命令采用行级锁定,表中的每一行都被锁定以进行删除;truncate命令采用表级锁定,锁 定了整个表以删除所有记录

​ 5.delete命令可以与索引视图一起使用;而,truncate命令不能与索引视图一起使用

​ 6.由于delete命令维护日志,因此速度很慢。但是,由于truncate命令在事务日志中维护最少的日 志记录,因此执行速度更快

​ 7.delete命令不会影响表结构,而truncate命令会从数据库中删除表结构

​ 8.delete命令比truncate命令使用更多的事务空间

序列:

​ 在很多数据库中都存在一个自动增长的列,如果现在要想在 oracle 中完成自动增长的功能,则只能依靠序 列完成,所有的自动增长操作,需要用户手工完成处理

​ 序列中的可以升序生成,也可以降序生成

​ 语法:

+:

​ 使用(+)表示左连接或者右连接, 这个+号可以这样来理解: + 表示补充,即哪个表有加号,这个表就是匹配表。所以加号写在右表,左表就是全部显示,故是左连接

伪列:

​ ROWID:

​ 表中的每一行在数据文件中都有一个物理地址,ROWID 伪列返回的就是该行的物理地址。使用 ROWID 可以快速的定位表中的某一行,ROWID 值可以唯一的标识表中的一行

​ 由于 ROWID 返回的是该行的物理地址,因此使用 ROWID 可以显示行是如何存储的。在oracle内部通常就是使用它来访问数据的。rowid需要10个字节的存储空间,并用18个字符来显示。该值表明了该行在oracle数据库中的物理具体位置

​ ROWNUM:

​ 在查询的结果集中,ROWNUM 为结果集中每一行标识一个行号,第一行返回 1,第二行返回 2,以此类推。通过 ROWNUM 伪列可以限制查询结果集中返回的行数。ROWNUM可以在每张表中出现

​ ROWNUM 与 ROWID 不同,ROWID 是插入记录时生成,ROWNUM 是查询数据时生成。ROWID 标识的是行的物理地址。ROWNUM 标识的是查询结果中的行的次序

​ 分页查询:根据 rownum 来对结果集进行操作来进行分页查询

​ 第一种写法:

​ 第二种写法:

学习心得:

​ 今天学习了Oracle数据库,感觉语法和mysql差不多,sql语句有很多都忘了,通过学习Oracle数据库可以达到复习sql的效果,需要练习一下Oracle和mysql不同的地方,感觉这些点还不是很熟悉

标签

评论


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1