Test 20

本文详细介绍了SQL查询语言的基础知识,包括选择特定列、使用条件查询、聚合函数、分组与排序以及表连接操作。讲解了如何利用SELECT、WHERE、FROM、GROUP BY和HAVING子句进行数据筛选和分析,同时也探讨了日期函数和连接条件如内连接、外连接等。内容适合数据库初学者和开发者学习。
摘要由CSDN通过智能技术生成
  • 查询语句
    1. select *|数据,数据... from 数据源
    2. 主外键约束关系:
      1. 主表|父表 : 具有主键字段
      2. 从表|子表 : 添加一个外键字段
      3. 外键字段关联主表的主键字段
      4. 外键字段中能够出现的值,必须在主表的主键字段中已有的值
    3. DML  DQL数据查询语言
      1. select *(全部列) from 数据源
      2. select * from emp; --查询emp表中的全部数据的所有列
    4. 查询指定列
      1. select 字段名1,字段名2,... from 数据源
    5. 伪列 (整数,表达式,字符串): 表中不存在的字段,但是可查询的内容
    6. 字符串 '字符',字符串连接符 ||
    7. 字段别名: 为查询的结果集中的列起别名(名字默认为字段名或者伪列的值)
      1. select 数据 (as) 别名,数据 别名,数据 别名... from 数据源
      2. 当别名名字内容比较特别,存在特殊符号,空格,小写名称...  可以在名字的前后添加一对""--->""中的内容原封不动显示
    8. 表的别名: select 数据 from 表名 别名 (表的别名不能添加as)
    9. 去重: distinct 对结果集中完全相同的数据进行去重
    10. 查询语句中查询数据的位置: *与字段名不能同时存在
    11. 虚表 dual
    12. Null
      1. null 一个字段没有赋值默认null
      2. null与数字运算结果为null
      3. null值与字符串拼接,结果字符串
      4. nvl(值1,值2) 当值1为null,结果为值2,当 值1不为null,结果为值1
  • 条件查询(select 数据字段 from 数据源 where 行过滤条件)
    1. 执行过程: from -->where-->select
    2. = 、 >、 <、 >=、 <=、 !=、 <>、 between and
    3. and 、or、 not
    4. 集合函数 union、  union all、 intersect 、minus
    5. null  :is null、  is not null、  --not is null
    6. like :模糊查询 % _ escape('单个字符')
      1. % 任意个任意字符
      2. _ 一个任意字符
    7. in(值列表) 判断指定的字段的值是否与in后面的值列表中的某个值相等,相等就满足
    8. exists(结果集) 存在即合理,存在即合法
      1. select 数据 from 数据源 where exists(结果集)
      2. 从from的数据源中拿出一条数据,执行where后的判断,判断是否满足条件,看到exists,就观察后面()中的结果集中是否存在数据,存在数据当前数据就满足条件,被保留,不存在不合法
  • 函数
    1. 单行函数 : 一行记录返回一个结果
      1. 当前时间
        • select distinct sysdate from emp;
        • select sysdate from dual;
        • select current_date from dual;
      2. 日期可以进行+-
      3. add_months(日期,月数)
        • select empno,ename,sal,hiredate,add_months(hiredate,3) from emp;
      4. 查询所有员工到目前为止一共工作了几个月
        • select empno,ename,hiredate,months_between(sysdate,hiredate) from emp;
      5. select em查询当前月的最后一天
        • select last_day(sysdate) from emp;from emp;
      6. 下一个星期三是几号
        • select next_day(sysdate,'星期四') from dual;
      7. 日期对象 与 字符串之间转换问题
        • to_char(日期对象,'模板')
        • to_date(日期字符串,'模板')
    2. 多行函数|组函数|聚合函数 : 多条记录返回一个结果  
      1. 聚合函数|组函数|多行函数
      2. count(*|字段|伪列)  sum()  max()   min()  avg()
      3. 注意:
        • 如果select后面出现组函数 的使用,只能和组函数或者分组字段一起使用
    3. 分组: group by 分组字段1,分组字段2
      1. 查询: select 数据 from 数据源 where 行过滤条件 group by 分组字段 having 组过滤信息 order by 排序字段;
      2. 流程: from-->where --> group by --> having --> select --> order by
      3. 注意 :
        •  一旦分组,分组之后的行为操作都是以组为单位,只能看到有多少组,每组的标签(分组字段的值),但是看不到组中的数据
        •  一旦分组,select后面只能查询分组字段或者组函数
        •  where中不能使用组函数
  • 表连接
    1. 连表查询
    2. 当要查询的数据来自与不同的表|数据源,就可以使用连表查询
    3. 语法: 92  99
    4. 92:
      1. 笛卡尔积 : 对乘
      2. select 数据 from 数据源1,数据源2...;
      3. 注意:
        • 查询同名字段需要指明出处
      4. 表连接条件
        • 等值连接:等值连接条件的字段一般为主外键关联关系或者同名字段,但是主要类型相同就可
        • 非等值连接
      5. 自连接
        • 一张包作为2个身份,自己与自己连接
      6. 内连接: 满足连接条件才保留,不满足连接条件不保留
      7. 外连接 : 主表中的数据无论是否满足连接条件都显示
      8. 左外连接: 左连接    表连接的位置,主表 在左边
      9. 右外连接: 右连接    表连接的位置,主表 在右边
      10. 在连接条件的位置,主表的对面添加(+)
      11. select * from emp e1,emp e2 where e1.mgr=e2.empno(+); -->  左连接
      12. select * from emp e2,emp e1 where e1.mgr=e2.empno(+); -->  右连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值