您的位置:首页 > 数据库

sql 语句中 常用语法 以及优化方法

2018-01-19 10:24 465 查看

    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.内连接:利用内连接可获取两表的公共部分的记录,即图3的记录集C 语句如下:Select * from A JOIN B ON A.Aid=B.Bnameid 运行结果如下图4所示:其实select * from A,B where A.Aid=B.Bnameid与Select * from A JOIN B ON A.Aid=B.Bnameid的运行结果是一样的。



 2.外连接:外连接分为两种,一种是左连接(Left JOIN)和右连接(Right JOIN)
 (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]

往 表里循环插入测试数据declaremaxnumber 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 用法



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: