SQL系统复习

原创 2005年03月03日 18:13:00

简单查询

  1. 选择列
    1. 查询所有的记录
      select * from scott.emp
    2. 查询所有记录的某些字段
      select empno,ename,job from scott.emp
    3. 查询某些字段不同记录
      select distinct job from scott.emp
      这里的“distinct”保留字指在显示时去除相同的记录,与之对应的是“all”将保留相同的记录,默认为“all”。
  2. 选择行
    1. 单条件过滤
      select empno,ename,job from scott.emp where job ='MANAGER'
      select empno,ename,sal from scott.emp where sal<=2500
      单条件查询使用的比较运算符
      =(等于)
      != (不等于)
      ^=(不等于)
      <>(不等于)
      <(小于)
      >(大于)
      <=(小于等于)
      >=(大于等于)
      in(列表)
      not in(不在列表)
      between(介于之间)
      not between (不介于之间)
      like(模式匹配) (like和not like适合字符型字段的查询,%代表任意长度的字符串,_下划线代表一个任意的字符。)
      not like (模式不匹配)
      Is null (是否为空)
      is not null(是否为空)
    2. 组合条件过滤
      select empno,ename,job from scott.emp where job>='CLERK' and sal<=2000
      select empno,ename,job from scott.emp where not job='CLERK'
      逻辑比较符
      and(与) or (或) not(非)
    3. 排序结果
      select empno,ename,job from scott.emp where job<='CLERK' order by job asc,sal desc
      asc代表升序排列,desc代表降序排列,多个排序字段之间通过逗号分割。
    4. 分组结果
      分组查询是指将查询结果按照字段分组。
      下面列出留言本中留言超过十条的所有人,并按留言数递减排序。
      select guestbook.posterid,classmates.name,count(guestbook.postid) from guestbook inner join
      classmates on guestbook.posterid = classmates.id
      group by classmates.name,guestbook.posterid having count(guestbook.postid)>10 order by count(guestbook.postid) desc
      输出字段中的非聚合字段必须出现在group by子句里。输出结果:
      7 涛哥 38
      21 朱宇 35
      24 谢计可 23
      1 建文 21
      103 阚军伟 20
      11 1 19
      3 任龙 11
      where检查每条记录是否符合条件,having是检查分组后的各组是否满足条件。

联接查询

  1. 无条件联接
    无条件联接查询是将各表的记录以“笛卡尔”积的方式组合起来。
        如scott.dept表共有4条记录,scott.emp表共有14条记录,其“笛卡尔”积将有4*14=56条记录。
    select emp.empno,emp.ename,emp.deptno,dept.dname,dept.loc from scott.emp,scott.dept
  2. 条件联接
    1. Where子句联(下面的结果与内联结果是一样的)
      -- Join in WHERE clause.
      USE pubs
      SELECT t.title_id, t.title, s.qty
      FROM titles AS t, sales AS s
      WHERE t.title_id *= s.title_id
    2. From 子句联(就是Join联接)
      1. 内联接(INNER JION )
        SELECT t.title_id, t.title, s.qty FROM titles AS t INNER JION sales AS s ON t.title_id *= s.title_id
      2. 外联接(OUTER JOIN)
        SELECT a.au_fname, a.au_lname, p.pub_name
        FROM authors a LEFT OUTER JOIN publishers p
           ON a.city = p.city
        ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
        注:在内部连接中,参与连接的表的地位是平等的。在外部连接中,参与连接的表有主从之分,以主表的每行数据去匹配从表的数据列,符合连接条件的数据将直接返回到结果集中,对那些不符合连接条件的列,将被填上NULL 值后再返回到结果集中。
      3. 交叉联接(CROSS JOIN)
        多种联接形式不一,却可互换,不说了这个。

to be continued........

版权声明:本文为博主原创文章,未经博主允许不得转载。

数据库系统概论复习总结3 --- 第二章关系数据库标准语言SQL

3.1 SQL 概念 ===结构化查询语句 3.1.2 SQL的特点 1、综合统一 2、高度非过程化 3、面向集合的操作方式 4、以同一种语法结构提供多种使用方式 3.1.3 ...

大连理工大学软件学院数据库复习——SQL语句(《数据库系统概念第6版》)

相关子查询和非相关子查询 1.相关子查询:在主查询中,每查询一条记录,需要重新做一次子查询 2.非相关子查询:在主查询中,子查询只需要执行一次,子查询结果不再变化,供主查询使用 CSDN博客:h...
  • RUO__
  • RUO__
  • 2017年11月09日 19:33
  • 62

数据库系统概念(机械工业出版社,第六版)复习——第三章:SQL

第三章       SQL SQL功能及操作符 数据查询:select 数据定义:create  alter  drop 数据操纵:insert   update   delete 数据控制:gran...

spark sql 获取系统时间,计算时间后结果浮点型转整型

spark sql 获取当前系统时间  org.apache.spark.sql.AnalysisException: Undefined function: 'getdate'...
  • feloxx
  • feloxx
  • 2017年05月31日 13:38
  • 2163

win7系统安装sql server 2000 图解全过程

本文主要以截图的方式,讲解如何在win7操作系统上安装sql server 2000的全过程。在Java进一步的学习过程中,我们会接触到数据库的知识。那么何为数据库?简单来说,数据库(Database...

【牛腩新闻发布系统】——SQL注入

定义:        SQL注入攻击源于英文“SQL Injection Attack”(仅供参考)。目前还没有看到一种标准的定义。所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或...

jsp+sql server+html/css实现图书馆管理系统

期末,数据库老师让做一个用数据库结合任何一门语言做个小作品。刚好最近在学一点html/css,又会看了一点点jsp的视频,做出了个小东西,在此记录,共同进步。用到的软件:sql server,myEc...

SQL Server 性能调优(一)——从等待状态判断系统资源瓶颈

通过DMV查看当时SQL SERVER所有任务的状态(sleeping、runnable或running) 2005、2008提供了以下三个视图工详细查询: DMV 用处 Sys....

应用Profiler优化SQL Server数据库系统

本页内容 概述 Profiler trace文件性能分析的传统方法以及局限 Read80trace工具介绍以及它的Normalization 功能 ...

Sql时间函数和系统函数

一、sql server日期时间函数 Sql Server中的日期与时间函数  1.  当前系统日期、时间      select getdate()   2. dateadd  在向指定...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL系统复习
举报原因:
原因补充:

(最多只允许输入30个字)