目录
数据库面试题总结一(范式、视图、索引、授权、事务、触发器、连接方式)
https://blog.youkuaiyun.com/zhsihui429/article/details/86530609
char 和 varchar区别、numeric
- char(n):固定长度的字符串,用户指定长度n
- varchar(n):可变长度的字符串,用户指定最大长度n
例子:属性A的类型是char(10),若为此属性存入“Avi”,那么该字符串后会追加7个空格来使其达到10个字符的串长度。反之,如果属性B的类型是varchar(10),在属性B中存放字符串“Avi”,则不会增加空格。
当比较两个char类型的值时,如果它们的长度不同,在比较之前会自动在短值后加上额外的空格以使它们的长度一致。
但当比较一个char类型和一个varchar类型时,不一定会在varchar后加上额外的空格以使长度一致,取决于数据库系统,因此,即使都存放“Avi”,A = B的比较也可能返回假。
建议使用varchar类型来存放字符串。
- numeric(p,d):定点数,精度由用户指定。这个数有p位数字(加上一个符号位,即不含符号位)其中d位数字在小数点右边
delete、drop 和 truncate 区别
【1】delete
- delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间(日志)中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,事务需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。如果有相应的 tigger,执行的时候将被触发。
- delete 可对 table 和 view 操作。只删除数据。delete 操作不会减少表或索引所占用的空间。
- delete可根据条件删除表中满足条件的数据,如果不指定where子句,那