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]

其中关键字distinct表示去除部分列中重复数据,

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

二、查询指定的列

如果想查询某一个或是多个指定列,可以编写类似于下面的SQL语句。

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

select sno,snamefrom student

其中sno,sname分别为学生表的列名,student为学生表的表名,如下图:

例2:查询学生表所有信息,如下图:

三、在SQL语句中可以使用算术表达式:

+、-、*、/。

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

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

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

select *, sname from A是错误的。

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

【注意】虽然查询结果中将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添加别名,如下图:

2.为表加别名

select empno, ename from empa

即将原表名emp改成别名a

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

解:先查询student表和sc表信息,如下图:

再两表联查,这个后续会学到:

对于命令:

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两列合并。

为了美观,可以为列加上别名:

拓展:可以为每列中的数据合并新的数据。比如把student表中sname和sno列合并且合并新数据。

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

六、DISTINCT使用

如果查询的结果中有重复的值,可以使用DISTINCT对重复值进行过滤。

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

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

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

然后查询sc表的cno列数据

利用distinct去重复

七、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表所有数据

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

其实如下图中SQL语句也是where子句,两表联查后续会详解。

例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表所有数据

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

查询player表game_id列中空数据

时间: 2024-10-07 18:07:05

Oracle-18-select语句初步&SQL中用算术表达式&别名的使用&连接运算符%distinct&where子句的相关文章

Oracle-18-select语句初步&amp;amp;SQL中用算术表达式&amp;amp;别名的使用&amp;amp;连接运算符%distinct&amp;amp;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] 当中ke

Oracle 查询(SELECT)语句(二)

?  简介 在前面的 Oracle 查询 SELECT 语句(一) 中介绍了 SELECT 常用的一些基本查询语法,接下来再来看 SELECT 更深入的一些查询功能和技巧,包括以下内容: 1.   All 与 Any 运算符 2.   分页查询(rownum) 3.   集合操作符(UNION.UNION ALL.INTERSECT.MINUS) 1.   All 与 Any 运算符 1)   All 运算符,表示满足给出列表中的所有值.通常用于以下场景: 1.   查出大于30号部门所有员工最

Oracle中Select语句完整的执行顺序

oracle Select语句完整的执行顺序: 1.from 子句组装来自不同数据源的数据: 2.where 子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函数进行计算: 5.使用having子句筛选分组: 6.计算所有的表达式: 7.使用order by对结果集进行排序.

Oracle数据库select语句

select * from EMp--all data in EMP table select * from EMP where ename in('SMITH')--the data where ename is SNITH in the EMP table select ename||'is a' as INAME from EMP where eNAME = 'SMITH'--rename ENAME pius 'is a' to INAME select sal || '_'||enam

SQL Fundamentals: Basic SELECT statement基本的select语句

Basic SELECT statement基本的select语句 The basic syntax for a SELECT statement is presented below. SELECT语句的基本语法如下. |:多选一 []:可选择的内容 {}:多选一 没有被{}括起来的是必选 SELECT [DISTINCT | ALL] {* | select_list} FROM {table_name [alias] | view_name}     [{table_name [alias

Sqlserver中使用Select语句给变量赋值的时候需要注意的一个问题

我们知道在SqlServer中可以用Select语句给变量赋值,比如如下语句就为int类型的变量@id赋值 1 declare @id int=-1; 2 3 select @id=id from 4 ( 5 select 1 as id 6 union all 7 select 2 as id 8 union all 9 select 3 as id 10 ) as t 11 12 select @id 执行上面的代码会显示下面的查询结果,结果显示最后@id的值为3,那么意味着上面第3行的se

程序架构探讨—001 多段select语句的方案

有时候,我们需要做多条件查询,多个条件为"或"的关系,分类查询等,一般会用到多段select语句,然后用union或者union all进行连接,进而查出需要的结果. 例如, select a.id as id, a.name as name, a.age as age from scama.table_name2 a where 1=1 union all select b.sn as id, b.name as name, b.age as age from scama.table

程序架构探讨—001 查询语句中多段select语句的方案

有时候,我们需要做多条件查询,多个条件为"或"的关系,分类查询等,一般会用到多段select语句,然后用union或者union all进行连接,进而查出需要的结果.例如,select a.id as id,a.name as name,a.age as agefrom scama.table_name2 awhere 1=1 union all select b.sn as id,b.name as name,b.age as agefrom scama.table_name2 bw

Openjudge-计算概论(A)-简单算术表达式求值

描述: 两位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算:-,减法运算:*,乘法运算:/,整除运算:%,取余运算. 算术表达式的格式为(运算符前后可能有空格):运算数 运算符 运算数 请输出相应的结果. 输入一行算术表达式.输出整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位). 样例输入 32+64 样例输出 96思路:使用字符串,从前往后扫,直至结束,把符号提出来,进行运算.注意:输入时一定要用gets(char)库函数,否则会报错的!代码如下: 1 #