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