1. 为什么说SQL是一种非过程型语言?
答案:SQL是一种所见既所得到的语言,在执行SQL语句中如果写好了SQL语句,就能按照需求写出或者查询出相应的数据信息,例如INSERT、DELETE、UPDATE决定了去做什么,一定会实现SQL的需求,这种特性在交叉平台和交叉语言开发环境中占有非常重要的优势。
2. 下列语句所返回的结果是否相同?
SELECT * FROM CHECKS;
select * from checks
答案:相同 ,在SQL查询语句中不区分大小写
3. 下列的查询中哪一个可以工作/
a. select *from checks;
b. select * from checks;
c. select * from checks
答案:都可以进行查询工作。
4. 在下边的查询中6是什么意思?
INPUT:SQL> SELECT COUNT(*) FROM TEAMSTATS;OUTPUT:COUNT(*)6
答案:统计在TEAMSTATS中的总行数为6行。
5. 此语句将是否会工作SQL> SELECT SUBSTR LASTNAME,1,5 FROM NAME_TBL;
答案:不会工作,如果想要执行成功的话,需要改成一下sql语句,需要别名的选择:
正确语句:SQL> SELECT SUBSTR (LASTNAME,1,5 ) NAME FROM NAME_TBL
6. 你可以使用在SELECT语句中没有出现的列进行排序吗?
答案:可以的,在一张表中,只要包含本字段就算是在select后面没有罗列出来也是可以执行的,例如:
Select username as '用户名',jop as '职务'
from tempTable
Order by score;
在本例子语句中,score在select……form之间没有出现,没有显示的列,但是在tempTable表中有score这个字段,当然可以根据这个进行排序。
7. 如果一个表有50000行而另一个表有100000行时联接的结果会有多少行?
答案:不确定,分以下几种情况:
1. left (outer) join on(左外连接):一个表满足条件的行,和另一个表的所有行。
2. cross join(交叉连接) : 笛卡尔乘积(所有可能的行对)。
3. inner join on(内连接):仅对满足连接条件的CROSS中的列的展现。
4. right (outer) join on(右外链接):右外链接与left相同,但两个表的角色互换,就是所要选择的标的主要对象互换。
5. Full outer join (全连接): left outer和 right outer中所有行的超集
8. 下边的查询语句能否工作
SELECT NAME, EMPLOYEE_ID, SALARY FROM EMPLOYEE_TBL E, EMPLOYEE_PAY_TBL EP WHERE EMPLOYEE_ID = EMPLOYEE_ID AND NAME LIKE '%MITH';
答案:不能工作,原因是EMPLOYEE_ID= EMPLOYEE_ID没有指明是哪一个表的EMPLOYEE_ID所以报错,需要执行的正确的语句是:
SELECT A.NAME,A.EMPLOYEE_ID, EP.SALARY
FROM EMPLOYEE_TBL AS A,
EMPLOYEE_PAY_TBL AS EP
WHERE A.EMPLOYEE_ID = EP.EMPLOYEE_ID
AND A.NAME LIKE '%MITH';
9. 此语句有什么错误DELETE COLLECTION?
答案:必须运用DELETE FROM COLLECTION;这样子写的语句将会删除所有的记录,一般情况下需要条件进行约束,删除复合条件的记录信息。
例如:DELETE FROM COLLECTION WHERE VALUE = 10 删除值为10的所有数据信息。
10. 如果执行此的语句会有什么结果SQL> DELETE * FROM COLLECTION;
答案:不能工作,在本次语句中没有删除任何记录信息,语法错误,不需要*号;
如果想执行本语句需要改成:
SQL> DELETE FROM COLLECTION; 删除了所有记录信息