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不同的地方,感觉这些点还不是很熟悉
近期评论