首页 > 数据库 >2、Oracle Select语句

2、Oracle Select语句

时间:2024-04-15 21:12:39浏览次数:35  
标签:语句 name employees select Select SQL Oracle SELECT

最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。
视频链接:
【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用
如果有侵权,请联系删除,谢谢。

1、SQL 基础介绍

SQL 的全程是:structure query language

SQL语句分为以下三种类型:

  • DML: Data Manipulation Language 数据操纵语言。其中查询语句使用最多,也有单独分出来的,称作DQL
  • DDL: Data Definition Language 数据定义语言
  • DCL: Data Control Language 数据控制语言

1.1、DML

DML用于查询与修改数据记录,包括如下SQL语句:

  • INSERT:添加数据到数据库中
  • UPDATE:修改数据库中的数据
  • DELETE:删除数据库中的数据
  • SELECT:选择(查询)数据

SELECT是SQL语言的基础,最为重要。

1.2、DDL

DDL用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句:

  • CREATE TABLE:创建数据库表
  • ALTER TABLE:更改表结构、添加、删除、修改列长度
  • DROP TABLE:删除表
  • CREATE INDEX:在表上建立索引
  • DROP INDEX:删除索引

1.3、DCL

DCL用来控制数据库的访问,包括如下SQL语句:

  • GRANT:授予访问权限
  • REVOKE:撤销访问权限
  • COMMIT:提交事务处理
  • ROLLBACK:事务处理回退
  • SAVEPOINT:设置保存点
  • LOCK:对数据库的特定部分进行锁定

2、select 语句

2.1、基本 SELECT 语句

SELECT	*|{[DISTINCT] column|expression [alias],...}  FROM	table;
  • SELECT 标识 选择哪些列。
  • FROM 标识从哪个表中选择。

1、其中使用 * 表示选择全部列.

select * from departments;

2、选择特定的列

select department_id, location_id from departments;

注意:

  • SQL 语言大小写不敏感。
  • SQL 可以写在一行或者多行
  • 关键字不能被缩写也不能分行
  • 各子句一般要分行写。
  • 使用缩进提高语句的可读性。

2.2、算术运算符

数字和日期使用的算术运算符。

2.2.1、使用数学运算符
SELECT last_name, salary, salary + 300FROM   employees;  // 成功


SELECT employee_id, HIRE_DATE, HIRE_DATE -1 FROM EMPLOYEES ;  // 成功

// 失败,ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 DATE
SELECT employee_id, HIRE_DATE, HIRE_DATE * 1 FROM EMPLOYEES e ;  

数字类型(number)可以使用 +、-、*、/
日期类型只能使用 +、-

2.2.2、操作符优先级
  • 乘除的优先级高于加减。
  • 同一优先级运算符从左向右执行。
  • 括号内的运算先执行。
SELECT last_name, salary, 12*salary+100 FROM   employees;

使用括号

SELECT last_name, salary, 12*(salary+100) FROM   employees;

2.3、定义空值

  • 空值是无效的,未指定的,未知的或不可预知的值
  • 空值不是空格或者0。
SELECT last_name, job_id, salary, commission_pct
FROM   employees;
2.3.1、空值在数学运算中的使用

包含空值的数学表达式的值都为空值

2.4.1、列的别名

将一个列重新命名。便于计算、识别等。

列的别名使用方式: 紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。

方式一:
SELECT last_name name, commission_pct comm FROM   employees;

方式二:
SELECT last_name AS name, commission_pct AS comm FROM   employees;

方式三:
SELECT last_name AS "Name", commission_pct AS "COMM" FROM   employees;

方式二和方式三的区别在于,方式三得到的列的名称,和双引号中的字符一模一样。而方式二则默认会将列名称转换为大写的方式。

2.5、连接符

连接符:

  • 把列与列,列与字符连接在一起。
  • 用 ‘||’表示。
  • 可以用来‘合成’列。
2.5.1、连接符应用举例

2.5.2、使用连接符连接 字符串

2.6、重复行

默认情况下,查询会返回全部行,包括重复行。

SELECT department_id FROM   employees;

1、删除重复行
在 SELECT 子句中使用关键字 ‘DISTINCT’ 删除重复行。

3、SQL 和 SQL*Plus

3.1、SQL 语句与 SQL*Plus 命令

3.2、SQL*Plus

使用SQL*Plus可以:

  • 描述表结构。
  • 编辑 SQL 语句。
  • 执行 SQL语句。
  • 将 SQL 保存在文件中并将SQL语句执行结果保存在文件中。
  • 在保存的文件中执行语句。
  • 将文本文件装入 SQL*Plus编辑窗口。

3.3、显示表结构

使用 DESCRIBE 命令,表示表结构

DESC[RIBE] tablename

desc departments;

注意:
只有在 SQL*Plus 环境中才可以使用此命令查询,否则报错。

那如果通过SQL查询得到表结构呢?

select * 
from user_tab_columns 
where table_name='JOBS';

扩展:

select table_name from user_tables; //当前用户的表        
  
select table_name from all_tables; //所有用户的表    
  
select table_name from dba_tables; //包括系统表  
  
select table_name from dba_tables where owner='xxx'  

标签:语句,name,employees,select,Select,SQL,Oracle,SELECT
From: https://www.cnblogs.com/huageyiyangdewo/p/18135076

相关文章

  • MySQL 中 DELETE 语句中可以使用别名么?
    1情境deletefromtest1t1wherenotexists(select1fromtest2t2wheret1.id=t2.id);以上sql报错:ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtouse......
  • Oracle数据表如何保留一条重复数据
    1使用rowid使用rowid,rowid是Oracle中每一行的唯一标识符,可以使用以下语句来删除重复数据,保留一条:deletefromyour_tablewhererowidnotin(selectmin(rowid)fromyour_tablegroupbyduplicate_columns);--其中,your_table是表名,duplicate_columns是用于判断......
  • Oracle中产生各种随机数的方法
    使用dbms_random包中的函数生成随机数--生成一个0~1之间的随机小数selectdbms_random.valueasrandom_numberfromdual;--生成一个0到100之间的整数随机数selectfloor(dbms_random.value(0,101))asrandom_numberfromdual;--生成一个由10个字符组成的随机字符串,字......
  • oracle 解锁和密码重置
    通过登录服务器的命令行工具首先,管理员需要登录服务器的命令行工具,执行以下命令:sqlplus/nolog这将启动SQL*Plus工具,即可以通过该工具连接Oracle数据库。在SQL*Plus中,管理员应该输入以下命令:connect/assysdba进行用户解锁,执行以下命令:ALTERUSERuser_nameACC......
  • layUI select下拉框动态赋值和设置选中值
    layUIselect下拉框动态赋值和设置选中值<script>layui.use(['form','layedit','laydate'],function(){var$=layui.jquery;$.ajax({url:'../api/SysType/GetArticleType?parentId=1',//json文......
  • Ubuntu20.04开机黑屏左上角光标闪烁,以及移除Nvidia驱动后造成的无法启动docker容器问
      这几天系统更新,显卡驱动由525.147.05升级到了535.171.04(tested),终端运行watch-n1nvidia-smi实时显示显卡占用情况时,偶尔出现FailedtoinitializeNVML:Driver/libraryversionmismatch问题,于是将驱动切换成openkernal版本,重启后黑屏左上角光标闪烁,于是尝试使用命令......
  • [C#] LINQ之SelectMany
    [C#]LINQ之SelectMany 声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢!一、第一种用法:publicstaticIEnumerable<TResult>SelectMany<TSource,TResult>(thisIEnumerable<TSource>source,Func<TSource,IEnumerable<TResult>>selector);官方释义:将序列的每个......
  • Enumerable.SelectMany 方法
    Enumerable.SelectMany方法参考反馈定义命名空间:System.Linq程序集:System.Linq.dll将序列的每个元素投影到 IEnumerable<T> 并将结果序列合并为一个序列。重载展开表SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>,Func<TSour......
  • 2.3.3 程序基本语句——for 语句、while 语句、do while 语句
    循环语句是三种基本语句中最重要的,也是相比有一定难度的。如果一段动作要多次执行,那么就要知道执行多少次或者满足什么条件之后结束循环。这里我们用一个循环控制量i来表示(多层循环可能还会使用j、k等)。C++中,通常有如下三种循环结构:for语句、while语句、dowhile语句一......
  • 在MyBatis中,可以使用以下动态SQL标签来编写灵活的SQL语句
    一、<if>:条件判断标签,用于在SQL语句中添加条件判断。通过判断给定的条件是否成立,决定是否包含相应的SQL片段。示例:<selectid="getUserList"resultType="User">SELECT*FROMuser<where><iftest="username!=null">ANDusername=#{userna......