前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle实操

Oracle实操

作者头像
葆宁
发布2019-04-19 10:12:16
8680
发布2019-04-19 10:12:16
举报
文章被收录于专栏:FREE SOLOFREE SOLO

什么是SQL语言

结构化查询语言(Structured Query Language)(发音ˈes kjuːˈ) SQL是最重要的关系数据库操作语言,是所有关系数据库管理系统的标准语言 许多数据库厂商在使用SQL的同时,都对SQL进行了扩展,比如ORACLE的PL/SQL语言,MS SQL-Server的T-SQL语言 SQL语言是一种非过程化语言,只需要提出”做什么”,而不需要指明“怎么做”

SQL可以做什么

数据库数据的增删改查操作(CRUD) 数据库对象的创建,修改和删除操作 用户权限/角色的授予和取消 事务控制

1974年,IBM的Ray Boyce和Don Chamberlin将E.F.Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了结构化查询语言(Structured Query Language,SQL)。 SQL语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。SQL集成实现了数据库生命周期中的全部操作,自产生之日起,SQL语言便成了检验关系数据库的试金石,而SQL语言标准的每一次变更都指导着关系数据库产品的发展方向。在SQL语言取得进展的同时,IBM研究中心于1973年开始着手System R项目。其目标是论证一个全功能关系DBMS的可行性。该项目结束于1979年,完成了第一个实现SQL的DBMS。 1986年,ANSI把SQL作为关系数据库语言的美国标准,同年公布了标准SQL文本。基本SQL定义是ANSIX3135-89,“Database Language - SQL with Integrity Enhancement”[ANS89],一般叫做SQL-89标准(也称为SQL1)。SQL-89定义了模式、数据操作和事务处理。SQL-89和随后的ANSIX3168-1989,“Database Language-Embedded SQL”构成了第一代SQL标准。 1992年,ISO 和 IEC 发布了 SQL 的国际标准,称为 SQL-92。ANSI 随之发布的相应标准是 ANSI SQL-92。ANSI SQL-92 有时被称为 ANSI SQL。ANSIX3135-1992[ANS92]描述了一种增强功能的SQL,现在叫做SQL-92标准(也称为SQL2)。SQL-92包括模式操作,动态创建和SQL语句动态执行、网络环境支持等增强特性。SQL Server 使用 ANSI SQL-92 的扩展集,称为 T-SQL,其遵循 ANSI 制定的 SQL-92 标准。 在完成SQL-92标准后,ANSI和ISO即开始合作在1999年发布了SQL-99标准(也称为SQL3)。SQL3的主要特点在于抽象数据类型的支持,为新一代对象关系数据库提供了标准。 目前SQL的最新标准是SQL-2003。 到目前为止,SQL共推出四代标准,分别是SQL-89、SQL-92、SQL-99、SQL-2003。

SQL语言的分类 DQL(数据查询语言) select DML(数据操作语言) insert、update、delete DDL(数据定义语言) create、alter、drop DCL(数据控制语言) grant、revoke TCL(事务控制语言) SAVEPOINT 、 ROLLBACK、SET TRANSACTION ,COMMIT 数据操作语言针对表中的数据,而数据定义语言针对数据库对象(表、索引、视图、触发器、存储过程、函数、表空间等)

关系数据库基本概念 关系:整个二维表 关系名:表格名称 元组:行数据(记录) 属性:列数据(字段) 属性名:列名称(字段名) 主键:唯一确定元组的属性组(关键字) 域:属性的取值范围

在这里插入图片描述
在这里插入图片描述

select * from emp; select * from emp order by sal desc ; select * from emp where ename like ‘S%’; select avg(sal), max(sal), min(sal), sum(sal) from emp; select deptno, avg(sal) from emp group by deptno;

insert into student (id,name,age) values(2,‘lkl’,45); update student set score=88 where id=2; delete from student where id=2;

CREATE USER bjsxt IDENTIFIED BY bjsxt; GRANT connect,resource TO bjsxt;

在这里插入图片描述
在这里插入图片描述

最简单的查询方式 select * from emp; select * from dept; select empno, ename,sal from emp;

使用算术表达式 select empno, ename,sal,sal1.08 from emp; select empno, ename,sal, sal12 from emp; select empno, ename,sal, sal*12 +1000 from emp; 注:在Select语句中,对数值型数据可以使用算术运算符创建表达式

使用字段别名 select empno as 员工编号, ename 员工姓名, sal12 年薪 from emp; select empno, ename “Ename”, sal12 “Anual Salary” from emp; select sal*12+5000 as “年度工资(加年终奖)” from emp;

字段别名 重命名查询结果中的字段,以增强可读性 别名如果含有空格或其他特殊字符或大小写敏感,需用双引号引起来。 AS可以省略

缺省情况下,查询结果中包含所有符合条件的记录行,包括重复行 select deptno from emp;

使用DISTINCT关键字可从查询结果中清除重复行 select distinct deptno from emp; select distinct job from emp;

DISTINCT的作用范围是后面所有字段的组合 select, distinct deptno job from emp;

使用order by 子句对查询结果进行排序

排序方式包括升序(asc,缺省)和降序(desc)两种: select empno, ename, sal from emp order by sal; select empno, ename, sal from emp order by sal desc ; 按多字段排序 select deptno, empno, ename, sal from emp order by deptno, sal;

使用字段别名排序 select empno, ename, sal*12 annsal from emp order by annsal;

指定查询条件使用where子句

用法举例 select * from emp where deptno=10; select * from emp where ename = ‘SMITH’; select * from emp where hiredate = ‘02-4月-81’; 注意: 字符串和日期值要用单引号扩起来 字符串大小写敏感 日期值格式敏感,缺省的日期格式是’DD-MON-RR‘

查询条件中可以使用比较运算符 select * from emp where sal > 2900; select * from emp where deptno <> 30;

select * from emp where sal between 1600 and 2900; select * from emp where ename in(‘SMITH’,‘CLARK’,‘KING’);

在这里插入图片描述
在这里插入图片描述

使用LIKE运算符执行模糊查询(通配查询) % 表示零或多个字符 _ 表示一个字符 对于特殊符号可使用ESCAPE 标识符来查找 用法举例 select * from emp where ename like ‘S%’; select * from emp where ename like ‘_A%’; select * from emp where ename like ‘%_%’ escape ‘’;

使用IS NULL运算符进行空值判断 用法举例 select * from emp where comm is null; select * from emp where comm is not null;

查询条件中可以使用逻辑运算符 select * from emp where deptno = 10 and sal > 1000; select * from emp where deptno = 10 or job = ‘CLERK’; select * from emp where sal not in (800, 1500, 2000); SQL优化问题: AND: 把检索结果较少的条件放到后面 OR: 把检索结果较多的条件放到后面

共计四种运算符:算术>连接>比较>逻辑

在这里插入图片描述
在这里插入图片描述

可使用小括号强行改变运算顺序 select * from emp where job=‘SALESMAN’ or job=‘CLERK’ and sal>=1280; select * from emp where (job=‘SALESMAN’ or job=‘CLERK’) and sal>=1280;

使用函数可以大大提高SELECT语句操作数据库的能力; 它给数据的转换和处理提供了方便。 函数只是将取出的数据进行处理,不会改变数据库中的值。

Oracle函数分为单行函数和多行函数两大类 单行函数分类 字符函数 数值函数 日期函数 转换函数 通用函数 多行函数 sum() avg() 仅适用数值型 count() max() min() 适用任何类型数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年03月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是SQL语言
  • SQL可以做什么
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档