0.内连接、左连接、右连接的区别是什么?
连接类型
INNER JOIN (内连接)
LEFT OUTER JOIN (左外连接)
RIGHT OUTER JOIN (右外连接)
FULL OUTER JOIN (完全外连接)
连接类型分成内连接和外连接两种。内连接是等值连接,外连接又分成左、右、完全外连接三种。连接类型中INNER、OUTER字样可不写。
内连接,也被称为自然连接,只有两个表相匹配的行才能在结果集中出现。返回的结果集选取了两个表中所有相匹配的数据,舍弃了不匹配的数据。由于内连接是从结果表中删除与其他连接表中没有匹配的所有行,所以内连接可能会造成信息的丢失。
内连接只显示符合连接条件的记录,外连接除了显示符合条件的记录外,还显示表中的记录,例如,如果使用左外连接,还显示左表中的记录。
1.如何对数据库表PRODUCT中的字段MARKET_PRICE的平均值四舍五入,并保留一位小数?
SELECT ROUND(AVG(MARKET_PRICE),1) FROM PRODUCT;
SQL AVG 函数
定义和用法
AVG 函数返回数值列的平均值。NULL 值不包括在计算中。
SQL AVG() 语法
SELECT AVG(column_name) FROM table_name
ROUND()
函数 ROUND 函数用于把数值字段舍入为指定的小数位数。
SQL ROUND() 语法
SELECT ROUND(column_name,decimals) FROM table_name
参数 描述
column_name 必需。要舍入的字段。
decimals 必需。规定要返回的小数位数。
2.如何实现查询第n行到第m行记录?
MySQL实现:
SELECT * FROM TABLE1 LIMIT N-1,M-N+1;
Oracle实现:
SELECT *
FROM (SELECT TT.*, ROWNUM AS ROWNO
FROM ( SELECT T.*
FROM TABLE1 T) TT
WHERE ROWNUM <= M) TABLE_ALIAS
WHERE TABLE_ALIAS.ROWNO>= N;
3.索引的优缺点分别是什么?
优点:您可以在表中创建索引,以便更加快速高效地查询数据。用户无法看到索引,它们只能被用来加速搜索/查询。
缺点:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。
因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
4.数据库清空WF.TABLE_WF表中的数据分别有哪几种方法?请写出SQL语句,并说明语句区别是什么?
DELETE FROM WF.TABLE_WF;
TRUNCATE TABLE WF.TABLE_WF;
区别
1.delete from后面可以写条件,truncate不可以。
2.delete from记录是一条条删的,所删除的每行记录都会进日志,而truncate一次性删掉整个页,因此日至里面只记录页释放,简言之,delete from更新日志,truncate基本不,所用的事务日志空间较少。
3.delete from删空表后,会保留一个空的页,truncate在表中不会留有任何页。
4.当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。truncate始终锁定表和页,而不是锁定各行。
5.如果有identity产生的自增id列,delete from后仍然从上次的数开始增加,即种子不变,而truncate后,种子会恢复初始。
6.truncate不会触发delete的触发器,因为truncate操作不记录各个行删除。
SQL Delete 语句(删除表中的记录)
DELETE语句用于删除表中现有记录。
SQL DELETE 语句
DELETE 语句用于删除表中的行。
SQL DELETE 语法
DELETE FROM table_name WHERE condition;
请注意
删除表格中的记录时要小心!
注意SQL DELETE 语句中的 WHERE 子句!
WHERE子句指定需要删除哪些记录。如果省略了WHERE子句,表中所有记录都将被删除!
SQL TRUNCATE TABLE 命令
SQL TRUNCATE TABLE 命令用于删除现有数据表中的所有数据。
你也可以使用 DROP TABLE 命令来删除整个数据表,不过 DROP TABLE 命令不但会删除表中所有数据,还会将整个表结构从数据库中移除。如果想要重新向表中存储数据的话,必须重建该数据表。
语法:
TRUNCATE TABLE 的基本语法如下所示:
TRUNCATE TABLE table_name;
5.SQL中有一个单表查询,性能差,消耗高,在硬件无法升级、不修改条件语句、不分页的情况下,如何优化?
从索引方面入手:
1.在作为查询条件的字段上添加索引,即跟在where后面的字段
2.索引最好不要添加在查询条件为某个范围的字段上