码迷,mamicode.com
首页 > 数据库 > 详细

数据库-第四章 SQL语句查询

时间:2016-06-16 09:13:17      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                SQL查询的基本结构
                集合运算
                空值
                聚集函数
                嵌套子查询
                数据库的修改
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
SQL查询的基本机构
  SQL查询的基本机构由三个子句构成:select,from,where
    select A1,A2,A3
    fron r1,r2,r3
    where P
 技术分享
 
 select子句
   注意:SQL不允许在属性名称中,使用字符‘-‘,使用dept_name代替dept-name
       SQL不区分字母的大小写,因此可以使用大写字母、小写字母命令表,属性等。
   SQL允许在关系以及SQL表达式结果中出现重复的元祖
    若要强行去除重复,可在select后加入关键词distinct
    例:查询instructor关系中的所有系名,并去除重复
        select distinct dept_name
        fron instructor;
    SQL也可以使用关键词all来显式指明不去除重复(SQL默认就是all)
        select all dept_name
        from instructor;
    星号*在select子句中,可以用来表示“所有的属性”
        select *
        from instructor;
    select子句中还可带含有+、-、/运算符的算术表达式,运算对象可以是常数或元组的属性。
        select ID,name,salary*1.05
        from instructor;
 where子句
    where子句允许我们只选出那些在from子句的结果关系中满足特定谓词的元祖。
   
    例:找出在Computer Science系并且工资超过7万美元教师的姓名
    select name
    from instructor
    where dept_name = ‘Com.science‘and salary > 70000;
    上述SQL查询语句,对应的关系代数表达式为:
    技术分享
   
    SQL允许在where子句中使用逻辑连词and,or和not,也可以使用between指定范围查询。逻辑连词的运算对象可以是包含比较运算符<,<=,>,>=,=和<>的表达式
    例:找出工资在90000到100000教师的名字
    select name
    from instructor
    where salary > 90000 and salary > 100000;
    或
    select name
    from instructor
    where salaty between 90000 and 100000;
    
 from子句
    from子句是一个查询求值中需要访问的关系列表,通过from子句定义了一个在该子句中所列出关系上的笛卡尔积。
    找出instructor和teacher的笛卡尔积
        select *
        from instructor,teacher;
 更名运算  
    SQL提供可为关系和属性重新命名的机制,使用as子句,as语句可以出现在select子句中,也可以出现在from子句中
    使用更名运算,对关系进行更名,
    例:找出所有教师,以及他们所讲授课程的标识
        select T.name, S.course_id
        from instructor as T, teachers as S
        where T.ID = S.ID 
    例:找出所有教师名,他们的工资至少比 biology系某一个教师的工资高
        select distinct T.name
        from instructor as T, instructor as S
        where T.salary > S.salary and S.dept_name = ‘biology‘; 
 字符串运算
    对字符串进行的最常见的操作就是使用操作符like的模式匹配,使用两个特殊的字符来描述模式:
        百分号(%):匹配任意的子串
        下划线(_):匹配任意一个字符
    例:找出所有建筑名称中包含子串‘ryan‘的所有系名
        select dept_name
        from department
        where building like ‘%ryan%‘; 
  
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

数据库-第四章 SQL语句查询

标签:

原文地址:http://www.cnblogs.com/ryanhang/p/5589738.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!