欢迎来到天天文库
浏览记录
ID:6384371
大小:80.22 KB
页数:48页
时间:2018-01-12
《部分常见oracle面试题以及sql注意事项》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、表的创建:一个通过单列外键联系起父表和子表的简单例子如下:CREATETABLEparent(idINTNOTNULL, PRIMARYKEY(id))CREATETABLEchild(idINT,parent_idINT, INDEXpar_ind(parent_id), FOREIGNKEY(parent_id)REFERENCESparent(id) ONDELETECASCADE)建表时注意不要用关键字当表名或字段名,
2、如insert,use等。CREATETABLEparent(idINTNOTNULL, PRIMARYKEY(id))TYPE=INNODB;InnoDB Tables 概述 InnoDB给MySQL提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。 InnoDB 提供了行锁(locking on row level),提供与 Oracle
3、 类型一致的不加锁读取(non-locking read in SELECTs)。这些特性均提高了多用户并发操作的性能表现。在InnoDB表中不需要扩大锁定(lock escalation), 因为 InnoDB 的列锁定(row level locks)适宜非常小的空间。 InnoDB 是 MySQL 上第一个提供外键约束(FOREIGN KEY constraints)的表引擎。 InnoDB 的设计目标是处理大容量数据库系统,它的CPU利用率是其它基于磁盘的关系数据库引擎所不能比的。从一个表中查询出数据
4、插入到另一个表中的方法:select*intodestTblfromsrcTbl;insertintodestTbl(fld1,fld2)selectfld1,5fromsrcTbl;以上两句都是将 srcTbl 的数据插入到 destTbl,但两句又有区别的。 第一句(selectintofrom)要求目标表(destTbl)不存在,因为在插入时会自动创建。 第二句(insertintoselectfrom)要求目标表(destTbl)存在,由于目标表已经存在,所以我们除了插入源表(srcTbl)的字段外,还可以插入常量,如例中的:5。如果只想要结构而不要数据。
5、 createtables_emp_42 as select*froms_emp where1=2;//永假式SQL查询练习题1. 表1:book表,字段有id(主键),name(书名); 表2:bookEnrol表(图书借出归还登记),字段有id,bookId(外键),dependDate(变更时间),state(1.借出 2.归还)。id name 1 English2 Math3 JAVA id bookId dependDate state1 1 2009-01-02 12 1 200
6、9-01-12 23 2 2009-01-14 14 1 2009-01-17 15 2 2009-02-14 26 2 2009-02-15 17 3 2009-02-18 18 3 2009-02-19 2 要求查询结果应为:(被借出的书和被借出的日期)Id Name dependDate1 English 2009-01-172 Math 2009-02-15Selecte.bookId,b.name,e.dependD
7、atefrombookb,bookEnrolewhere 第二个表是用来登记的,不管你是借还是还,都要添加一条记录。请写一个SQL语句,获取到现在状态为已借出的所有图书的相关信息。参考语句:selectbook.id,book.name,max(dependDate)frombookinnerjoinbookEnrolonbook.id=bookEnrol.bookidANDbooker.state=1groupbybook.id;2第(1)题练习使用groupby/having 子句。类似
此文档下载收益归作者所有