oracle sql &&,Oracle-18-select语句初步&SQL中用算术表达式&别名的使用&连接运算符%distinct&where子句...

一、一般SELECT语句的格式例如以下:

1.查询指定表的全部列

select * from 表名[where条件] [group by分组列名] [having聚合函数] [order by排序列名ASC| DESC]

在表名地方,能够写多个表

2.查询指定表的部分列:

select {[distinct]列名。列名,…}from表名[where条件] [group by分组列名] [having聚合函数] [order by排序列名ASC| DESC]

当中keyworddistinct表示去除部分列中反复数据,

仅仅是在查询的时候去除,而该表内部数据纹丝不动

二、查询指定的列

假设想查询某一个或是多个指定列。能够编写相似于以下的SQL语句。

例1:查询学生表部分列,如学号、姓名

select sno,snamefrom student

当中sno,sname分别为学生表的列名。student为学生表的表名,例如以下图:

a077e61980ff2da3bafc7a761e1bac77e9b.jpg

例2:查询学生表全部信息,例如以下图:

7c84e925711a945271a8b993c8304994295.jpg

三、在SQL语句中能够使用算术表达式:

+、-、*、/。

如:selectempno,ename,sal+500 from emp;

所以sal列能够做运算,然后在查询结果中显示

【注意】select后假设加*,那么*之后不能再加别的东西,比方

select *, sname from A是错误的。

例3:如查询学生表部分列。且age列各项数据加20。例如以下图:

ce2051175323829b2cd761e6a4fcc7f4554.jpg

【注意】尽管查询结果中将age列全部数据加20,可是实际表中的数据没有发生改变。

四、查询语句中别名的使用

在查询语句中,我们能够为表或者列加上别名

1.在列上加别名:

(1)第一种写法

select empno as “员工编号”,ename as “员工名称” from emp

(2)另外一种写法

select empno 员工编号,ename员工名称from emp

(3)第三种写法

select empno “员工编号”,ename “员工名称” from emp

例4:为学生表中的sno和sname加入别名,例如以下图:

e842bf7f4fd89dff2e5405281d8c755eb11.jpg

2.为表加别名

select empno, ename from empa

即将原表名emp改成别名a

例5:依据现有的student表和sc表,查询s001学号的学生成绩。

解:先查询student表和sc表信息。例如以下图:

23af87417bef99cea2e8a8192baf4b4ecb8.jpg

00fee853172b34ff7e27f78b21bf3e4b505.jpg

再两表联查。这个兴许会学到:

905111ed90a828fd5eb96d0ba46bd8780ca.jpg

对于命令:

SQL>selecta.sno,sname,score from student a, sc b

2 where a.sno = ‘s001’ and a.sno = b.sno;

当中a和b分别为student表和sc表别名。

所以为表定义别名的用处是简化代码书写,原来的student.sno如今简化成a.sno。

五、连接运算符

在SQL查询语句中能够将两列查询的结果连接在一起,通过“||”实现。

SQL>select empno || ename from emp;

例6:将student表中的sno和sname两列合并。

341052c49b431f5c314651ee73dd2e908c3.jpg

为了美观。能够为列加上别名:

8a00e2a34f64f18c4618c1394c3aa2e2284.jpg

拓展:能够为每列中的数据合并新的数据。比方把student表中sname和sno列合而且合并新数据。

e4e00e487ae39dc7c89f9f4d43534878acd.jpg

【注意】查询语句select再怎么操作都不会改变表中的数据。

六、DISTINCT使用

假设查询的结果中有反复的值,能够使用DISTINCT对反复值进行过滤。

语法结构:SQL>select distinct列名from表名;

例7:查询sc表中信息,去反复

解:首先查询sc表中全部数据

31adbce3f62d111d30ea3893e0b81fa042f.jpg

然后查询sc表的cno列数据

59410355c0f0ad9d6684d22c226ed5a7f14.jpg

利用distinct去反复

0be33c342494a1b78c2579fea0b8386f514.jpg

七、WHERE子句使用

在SELECT语句中使用WHERE子句来过滤查询出来的结果。

语法格式:

(1)where列名比較操作符数值;

(2)where列名比較操作符表达式;

(3)where列名比較操作符列名;

Oracle提供了例如以下经常使用的比較操作符:

(1)>

(2)<

(3)=

(4)<=

(5)>=

(6)<>或 != (这俩都表示不等于)

(7)between … and …

(8)in

(9)like

例8:利用where子句过滤出student表中姓名为3个字的学生信息。

解:查询student表全部数据

553a1d44cf5f8a5874c1f275a9e02c342f0.jpg

利用where过滤出姓名为3个字的学生信息

6a743bc3c606e7dd9bd8a93a6891b353d7a.jpg

事实上例如以下图中SQL语句也是where子句,两表联查兴许会具体解释。

5d55f234cce16616141649ee0cb1f486ef4.jpg

例9:查询工资大于1500元的员工编号和姓名

select empno,ename from emp where sal > 1500;

例10:查询职位不是“CLERK”的员工编号和姓名

select empno,ename from emp where job <> ‘CLERK’

例11:查询工资从1500到2900的员工信息

select empno,ename from emp where sal between 1500 and 2900

例12:查询工资是1500,3000。2000的员工信息

select empno,ename from emp where sal in (1500,3000,2000);

八、AND、OR、NOT使用

AND、OR、NOT是作为Oracle中的3个逻辑运算符(操作符)。它们能够把搜索条件中的各个部分组合起来。

比方:查询工资大于1500且职位为“SALESMAN”的员工信息

SQL>selectempno, ename from emp

2 where sal > 1500 and job =’SALESMAN’;

比方:查询“comm”这列非空的员工信息

SQL>selectempno, ename, comm from emp

2 where comm is notnull’;

例13:查询player表中game_id列的非空数据和空数据

解:首先查询player表全部数据

8f5aeb156894719e769feb909b1cf144e85.jpg

然后查询player表game_id列中非空数据

32f3d940f4f9be5b123fe15a59ce7456859.jpg

查询player表game_id列中空数据

55fc04175bb154c1d1806c24d3927836931.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值