Oracle数据库SQL ——Select 语句使用方法

    xiaoxiao2023-11-04  148

    Oracle数据库SQL ——Select 语句使用方法

    一、进入Oracle数据库

    1、切换数据库用户

    su - oracle cd $ORACLE_HOME cd rdbms/admin

    2、进入数据库(sqlplus 工具)

    SQL > sqlplus / as sysdba

    若出现提示最后一行有

    idle instance

    则数据库没有启动 输入如下命令,启动数据库

    SQL > start up

    最后一行出现Database opened ,表明数据库打开了。

    练习时,可连接一个数据库用户Scott,密码为tiger。

    SQL>conn Scott/tiger

    #显示connected,表示已经连接。 此时可以对此用户下的文件进行查询。

    二、编写SQL命令的书写规则

    ⚠️子句:如 select 和 from 子句,子句要求分行书写。

    三、select 语句

    select命令只是显示,查询,并不修改原数据表。

    1、 select语句书写格式

    语句的标准格式: 说明: 第一个代表【命令】,此处是select 星号 代表查询结果显示全部列 | 代表“或者” select 后边可以加*(所有列)、列名(不区分大小写) 或者 表达式 from [表名] ,表示从哪个表执行命令

    注意: #select 控制的是查看多少列,哪几列 #结尾必须有分号,表示命令结束 #多个列之间用“逗号”分开 #所有命令不区分大小写

    例子: 1、查询此用户下都有哪些表

    select * from tab;

    2、 显示dept表的全部列

    SQL > select * from dept ;

    3、查询dept表中的 deptno 和 dname 两列。

    SQL > select deptno ,dname from dept ;

    #输出的顺序是按照命令中的先后顺序输出两列的信息。

    例子: SQL 语句可以回车分行输入,以;分号结束命令。

    SQL > select * #此时可以继续输入命令 2 from dept 3 ;

    2、去重查询 select distinct

    语句的标准格式: select distinct 【列名】from 【表名】

    #去重是去掉这一列的信息中重复的,只留下不同的,查询结果显示出这一列去重后的信息。

    注意:

    select distinct 【列名,列名】from 【表名】 #如果是两列同时去重,去掉的是某行的两列信息同时重复的,只留下两列都不一样的,查询结果 显示这两列的去重后的数据。如果这列中有空值,去重后,也显示空值数据所在行。

    例子:查询员工(emp表)都有哪些岗位(job)。应该去重。

    四、算数表达式

    优先级:先乘除,后加减

    例子: 查询所有员工的工资,工资增长200后的工资。

    五、空值 Null

    Null是无效的,未指定的。 ⚠️Null不是0 ⚠️ 对空值进行运算,是无效的,还是空值。

    例子: 查看emp(员工信息表)中,员工的姓名,工资和年薪(月薪*12+奖金)。有的员工的奖金(comm)为空值。

    select enamel ,sal,sal*12+nvl(comm,0) from emp;

    因为,奖金可能为空值,就没有办法进行计算,因此用nvl函数进行空值转换。 如果comm列里有值,则输出原值;如果是空的,转换成0值。

    六、给列起别名

    两种方式: 1、空格隔开 :【原列名】【空格】【列别名】 2、用as :【原列名】 as “列的别名” ⚠️“”双引号只出现在给列起别名的命令中。

    例子: 1、将ename起别名为epm_name

    select ename emp_name ,sal from amp;

    2、

    select ename emp_name ,sal*12 as “Salary” from emp;

    七、连接符 ||

    例子: 1、

    select ‘My name is’,ename from epm;

    #输出两列,第一列是常量,第二列是ename列的值。 2、

    select ‘My name is’ || ' ' || ename from epm;

    #此时通过连接符将两列值合并,中间用空格隔开,合为一列

    3、合并的同时,起个别名:

    select ‘My name is’ || ename as “Ename” From emp;

    八、字符串

    ‘字符串’ 可以是字母,数字,日期

    例子:

    select ename|| ‘:year salary =’ || 12*sal as “Year_Sal” from emp;

    九、只显示表名(表结构)

    describe 【表名】 简写为 desc 【表名】 注意Type列 ⚠️区分字符类型:

    varchar是字符(长度为10,变长)——消耗性能,要判断长度再存——节省空间,但耗费时间

    char 是字符(长度为10,定长)——先存,场度超过10,报错——耗费空间,但节省时间

    最新回复(0)