1.UNION
集合查询UNION(并操纵),查询结果是元组的集合。
使用UNION将多个查询结果合并起来,系统会自动去掉重复元组。
使用UNION操作的各结果表的列数、数据类型必须相同。如果同一列的字段类型为CHAR和VARCHAR2,则将CHAR转化成VARCHAR2。
'' || CHAR类型字段 结果为VARCHAR2类型。
例:
查询计算机系学生及年龄不大于19的学生
SELECT * FROM student WHERE sdept = 'cs'
UNION
SELECT * FROM student WHERE sage <= 19
2.UNION ALL
和UNION功能相同,只是不去除重复行。
3.NVL
将字段为NULL的转换成指定值
例:
查询所有student的birthday字段,如birthday为空,默认输出'1980-01-01'
SELECT NVL(birthday, '1980-01-01') birthday FROM student
4.NOT EXISTS 和 NOT IN
例:
选出在malestudent中不存在,但在student中存在的所有记录
(1)SELECT * FROM student WHERE NOT EXISTS (SELECT * FROM malestudent WHERE malestudent.name = student.name);
(2)SELECT * FROM student WHERE name NOT IN (SELECT * FROM malestudent);
5.Statement 和 PreparedStatement
Statement:用于执行静态SQL语句并返回结果对象
PreparedStatement:用于执行预编译的SQL语句,SQL语句预编译且存储在PreparedStatement对象中,然后可使用此对象高效的多次执行该语句。
Connection.preparedStatement(String sql)创建一个PreparedStatement对象来讲参数化的SQL语句发送到数据库
例:
PreparedStatement pstmt = conn.preparedStatement("UPDATE employee SET salary=? WHERE id=?");
pstmt.setBigDecimal(1, 5000.00);
pstmt.setInt(2, 110592);
pstmt.executeQuery();
6.NULL
NULL +/- 任意值 结果为NULL 即对NULL进行算术运算结果为NULL
NULL || 任意值 结果为任意值
集合函数对NULL操作,结果为NULL 如SUM(NULL) 则结果为NULL
7.GROUP BY
用来进行分组,和分组函数使用。后面的字段不能使用别名。
8.BETWEEN...AND 包括边界值