数据库

数据库(一)

数据库现在已经成为数据管理的重要技术,也是计算机的重要分支。

SQL SELECT

在sql语句中最重要的就是select查询语句。

1.查询列

1)所有列

SELECT * FROM 表名; 查询某个表中所有的记录的所有字段信息

2)部分列

SELECT 列名 FROM 表名; 查询某个表中所有的记录的指定字段信息

SELECT 列名1,列名2 FROM 表名; 查询某个表中所有的记录的字段1 字段2

3)去除重复

SELECT distinct 列名 FROM 表名; 去除重复记录

4)别名

SELECT xxx as 别名 FROM 表名 表别名; 使用别名

5)伪列

伪列就是不存在的字段,可以是数字也可以是表达式

SELECT 表达式 FROM 表名; 查询表达式

6)虚表

虚表即没有数据,没有字段,没有表

select 1*2 from dual;dual即虚表

7)字符串

在sql语句中使用' '写字符串," "中的文字原样输出,字符串可以拼接使用||拼接两个字符串。

8)null

null表示空值,null和数字运算结果还是null;null 和字符串拼接,结果是原串;

处理null值,nvl(值1,值2) 当值1为null,函数的结果为值2;当值1不为null,函数的结果为值1

2.查询行

1)比较条件

= 、 >、 <、 >=、 <=、 !=、 <>、 between and

2)且或非

and、 or、 not

3)null

null不能使用条件判断,只能使用is

4)集合操作

Union,并集(去重) 对两个结果集进行并集操作,不包括重复行同时进行默认规则的排序;

Union All,全集(不去重) 对两个结果集进行并集操作,包括重复行,不进行排序 ;

Intersect,交集(找出重复) 对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;

Minus,差集(减去重复) 对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序 。

5)like模糊查询

模糊查询,使用通配符:

(1)%:零个及以上(任意个数的)的字符

(2)_:一个字符

(3)遇到内容中包含 % _使用escape(‘单个字符’)指定转义符

select ename,job,sal,deptno from emp where ename like '%a%%' escape('a');

6)in 与 exits

in相当于使用or的多个等值,定值集合 ,如果存在子查询,确保类型相同、字段数为1,如果记录多,效率不高,用于 一些少量定值判断上;

exists条件为true,存在记录则返回结果,后续不再继续比较查询,与查询的字段无关,与记录有关。

7)获取所有行的记录
select * from emp; 
select * from emp where  1=1  ; 
select * from emp where ename like '%';

3.排序

使用ORDER BY排序,排序不是真实改变存储结构的顺序,而是获取的集合的顺序。

顺序:asc 升序(默认)desc 降序

多字段:在前面字段相等时,使用后面的字段排序

空排序:降序为 desc,注意null为最后

4.单行函数

单行记录,每行都能返回一个结果

1)时间

(1)当前时间:sysdatecurrent_date

(2)日期可以直接加减,加月份要使用add_months(sysdate,2)

(3)当月的最后一天:last_day(sysdate)

(4)算下一个星期几是几号:next_day(sysdate,'星期五')

2)日期和字符串之间的转换

日期对象转为字符串:to_char(日期对象,日期格式字符串)

日期字符串转为日期对象:to_date(日期字符串,日期格式字符串)

将日期转为特定格式的字符串 to_char

to_char(sysdate,'yyyy-mm-dd hh24:mi-ss')

设定一个特定的时间(用一个特定的时间字符串转换为日期)

‘2019/8/23 16:49:44’

to_date('2017年8月23日 16:49:44','yyyy"年"mm"月"dd"日" hh24:mi:ss')

3)判断

decode 判断:

decode(判定字段,校验字段值1,结果1,校验字段2,结果2,……默认值)

case 判断:

case 判断字段 when 校验字段值1 then 结果1 else 结果n end可以写很多个when then组合

5.多行函数

多行记录返回一个结果

avg平均数 min最小值 max最大值 sum求和 count统计,确定结果集,对结果集的数据求组函数

group by 分组

1)select 出现分组函数,就不能使用非分组信息,可以使用 group by 字段

2)group by字段 可以不出现 select 中 ,反之select 除组函数外的,其他字段必须出现在group by 中

过滤组 having :

where:过滤行记录,不能使用组函数; having:过滤组,可以使用组函数

注意:

当select后使用了组函数,就不能出现非组函数,非分组字段的其他字段不能一起使用

where后面不能出现组函数

null 不参与运算

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值