1. 子查询(子查询是将一个查询语句嵌套在另外一个查询语句中,内层查询语句的查询结果,可以为外层查询语句提供查询条件。)
举个栗子① ~IN
SELECT * FROM employee
WHERE d_id IN
(SELECT d_id FROM department);
举个栗子② ~比较运算符
SELECT id ,name, score FROM computer_stu
WHERE score>=
(SELECT score FROM scholarship
WHERE level=1);
二 内连接,外连接
1.内连接(查找A,B表中的公共集)
(1)左连接(Left JOIN):即图3公共部分记录集C+表A记录集A1。
语句如下:select * from A Left JOIN B ON A.Aid=B.Bnameid ( 进行左连接查询时,可以查出表A的表中所有记录,而表B所指的表中,只能查询出匹配的记录)
运行结果如下图5所示
(2)右连接(Right JOIN):即图3公共部分记录集C+表B记录集B1。
语句如下:select * from A Right JOIN B ON A.Aid=B.Bnameid 运行结果如下图6所示:
(进行右连接查询时,可以查出表B的表中所有记录,而表A所指的表中,只能查询出匹配的记录)
几个简单的基本的sql语句:
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)—like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count(*) as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1[separator]
往 表里循环插入测试数据
declare
maxnumber constant int := 1000; (循环的次数)
i int := 1;
begin
for i in 1 .. maxnumber loop
INSERT INTO SYS_KEMU t
(ID, KEMU, FENSHU, IDMUNBER)
VALUES
(i, '语文', 50 + i, i);
end loop;
dbms_output.put_line(' 成功录入数据! ');
commit;
end;
几个高级查询的运算词:
① sql 语句中的 case when 用法