ORACLE数据库sql语言、函数及常用命令

三、列的非空属性 NOT NULL: 如果一个列具有非空属性,则在给该表增加、修
改数据时必须保证该列有内容,否则会出错。 如果一个列允许为空,该列可以不放任何内容,
即空值(在 SQL 中书写为 NULL),空值不是空格, 如果一个列内容为空值,则该列不等于任何值(包括 空值)。例如:列 SAGE1、SAGE2 的内容为空,列 SAGE3 内 容 为 20 , 则 下 面 的 逻 辑 表 达 式 全 部 为 NULL : SAGE1=SAGE2 、 SAGE1<>SAGE2 、 SAGE1=SAGE3、SAGE3>SAGE1。下面的逻辑表达 式 全 部 为 真 : SAGE1 IS NULL 、 SAGE3 IS NOT NULL。下列表达式全为空:sage1+100,sage2+sage3 四、特殊约定: 1. 所有 SQL 语句以分号结束不是以回车换行结束。 2. 中扩号代表选项,就是其中的内容可有可无。 3. 下面讲的列名在很多情况下也可以是表达式。 4. 表名格式:[用户名.]表名,例如:user001.student,
WHERE 条件表达式 GROUP BY 列名、列名、……列名; 特别说明:SELECT 后面出现的列,如果没有使用集合 函数,必须出现在 GROUP BY 中。 Sno,sname,grade, 有数据 01 john 20 pascal 01 john 30 c 02 cathy 10 pascal 02 cathy 40 c 想要 01 john 50 02 cathy 50
查出平均分数在 75 以上的学生学号 T( NAME,BOOK)
张三 化学
张三 物理
李四 数学
SELECT NAME ,COUNT(*) FROM T GROUP BY
NAME HAVING COUNT(*)>1;
查询借书超过 1 本的人以及本数。 特别说明:集合函数可以作为条件出现在 having 中,但是
格式:SELECT 列名 [列别名],列名 [列别名],…… 列名 [列别名]
FROM 表名 [表别名],表名 [表别名],表名 [表别名] WHERE 条件表达式 ORDER BY 列名、列名、……列名; 例 如 : SELECT SNO,SNAME,SAGE FROM STUDENT ORDER BY SNO; 选出的记录按 SNO 排序(升序) SELECT SNO,SNAME,SAGE FROM STUDENT ORDER BY SSEX,SNO; 选出的记录先按 SSEX 排序后,再按 SNO 排序 九、集合函数 MAX,MIN,SUM,COUNT,AVG: 例如:SELECT MAX(SAGE) FROM STUDENT; 选择最大年龄。
SELECT DISTINCT SSEX FROM STUDENT; SELECT COUNT(DISTINCT SAGE) FROM STUDENT; 十一、 数据分组 GROUP BY 格式:SELECT 列名 [列别名],列名 [列别名],…… 集合函数(列名 [列别名] ) FROM 表名 [表别名],表名 [表别名],表名 [表别名]
Select sno,sname,sum(grade) from student Group by sno;//非法写法 Select sno,min(sname),sum(grade) from student Group by sno; Select sno,sname,sum(grade) from student Group by sno,sname;
例 如 : SELECT CNO,AVG(GRADE) FROM SC GROUP BY CNO;
查询每一门课的课程号和平均成绩。 SELECT SSEX,COUNT(*) FROM STUDENT GROUP BY SSEX;
按 SSEX 分组查出:不同性别,各性别的人数 十二、 数据分组深入 HAVING
ORACLE 结构查询语言 SQL 语言
(新增内容为红色)
一、概念介绍: 数据库 DATABASE、表 TABLE、列 COLUMN、行 ROW、关键字 PRIMARY KEY、索引 INDEX
二、列 的 类 型 : 字 符 CHAR 和 VARCHAR2 、 数 值 NUMBER、长整形 LONG、双浮点 FLOAT、超长大 型数据 LONG RAM(照片、图形、描述等不定长数 据)、日期 DATE(包含日期和时间)。 CHAR (5) 和 VARCHAR2(5)的区别是 CHAR 不足 5 位后面自动加上空格,VARCHAR2 不加。
and birthday<=to_date(‘19891231’,’yyyymmdd’); 逻辑上等价,不同是后面的一句能够使用上索引,提高查 询速度。 如果是列名就可能使用索引,表达式一定不能使用索引, 除非索引采用表达式建立。
IN、NOT IN 运算:SAGE IN (10,20,30) 、SAGE NOT IN (10,20,30) 八、有排序的 SELECT 语句:
集合函数如果要作为条件,只能出现在 HAVING 子 句中,不允许出现在 WHERE 中。
格式:SELECT 列名 [列别名],列名 [列别名],…… 集合函数(列名 [列别名] )
FROM 表名 [表别名],表名 [表别名],表名 [表别名] WHERE 条件表达式 GROUP BY 列名、列名、……列名 HAVING 集合函数() 表达式; 例如: SELECT NAME,COUNT(*) FROM STUDENT GROUP BY NAME HAVING COUNT(*)>1; Select name,count(*) from student //非法写法 Where count(*)>1 Group by name 查出重名的名和此姓名的总人数 Select * from student where name in (select name from student group by nane having count(*)>1) 进一步应用,将重名的所有信息全部显示出来。
SELECT COUNT(*) FROM STUDENT; 选择 student 表中学生的总人数。 特别注意:
Select count(ssex) from student; 选择 student 表中学生性别不为:SELECT DISTINCT SAGE FROM STUDENT; 如果有 100 名 18 岁的学生,不加 DISTINCT 18 在结 果返回 100 行 18,加 DISTINCT 18 返回 1 行 18。
SELECT * FROM STUDENT WHERE NOT SSEX=’女’;
选择性别不是女的所有记录(包括男与空)
SELECT * FROM STUDENT WHERE SSEX IS NOT NULL;
选择性别不为空的所有记录
LIKE 、 NOT LIKE 运 算 : SNAME LIKE ‘ 李 %’ 、 SNAME LIKE ‘%庆%’、 SNAME NOT LIKE ‘%华’
Person child_no child_name father_no father_name child_sex
2
1 张三
3
王五
f
2 李四
3
王五
m
3 王五
无父亲 m
4 姚六
3
王五
m
5 赵七
无父亲 f
Select fno,count(*) from p group by fno;
Selext max(count(*)) from p group by fno;
问题:找出所有父亲及他的孩子数量。
问题:找出孩子最多父亲有几个孩子(一数字)。
问题:找出孩子最多的那些父亲。
问题:找出兄弟姊妹最多的那些人。
问题:找出兄弟最多的那些人所有兄弟。
问题:找出兄弟最多的那些人所有兄弟姐妹。
SELECT SNO,AVG(GRADE) FROM SC
GROUP BY (SNO) HAVING AVG(GRADE)>=75;
不一定要出现在 select 提取数据中。就象条件中出现的列
比一定要出现在 select 中一样。
十三、 多个表连接查询:
例如:
SELECT STUDENT.SNO,NAME,CNO,GRADE
FROM STUDENT,SC
运行速度很快且不用提交 例如:Select table a_student as select * from student; Create table as 还可以用来复制表结构
假设目前有三张表 Student(sno,sname,ssex,sage,sdept) 学生表
Sno:学号 Sname:姓名 Ssex:性别 Sage:年龄 Sdept:所在系 Course(cno,cname,cpno,ccredit) 课程表 Cno:课程号 Cname:课程名 Cpno:先行课 Ccredit:学分 Sc(sno,cno,grade) 学生选课表 Sno:学号 Cno:课程号 Grade:分数 Create table student1 as select sno,name from student; 利用 student 创建一个仅仅有两个列的 student1。 六、简单 SELECT 语句: 格式:SELECT [表名.]列名 [列别名],[表名.]列名 [列 别名],…… FROM 表名 [表别名],表名 [表别名],表名 [表别 名], ……; SELECT * FROM 表名 [表别名],表名 [表别名], 表名 [表别名];//*代表所有列 例 如 : SELECT SNO,SNAME,SAGE FROM STUDENT; SELECT * FROM STUDENT; 七、有条件的 SELECT 语句: 常用的运算:=、<>、>=、<=、AND、OR、NOT、 LIKE、IN。 格式:SELECT 列名 [列别名],列名 [列别名],…… 列名 [列别名] FROM 表名 [表别名],表名 [表别名],表名 [表别名] WHERE 条件表达式; 例 如 : SELECT SNO,SNAME,SAGE FROM STUDENT WHERE ((SAGE>18 OR SAGE <25)AND SSEX=’男’) OR SSEX=’女’; 选择年龄大于 18 或小于 25 的性别为男的,或者性别为女 的记录
合集下载

oracle11g的基本SQL语句和函数

oracle11g的基本SQL语句和函数

GROUP BY
首先创建表
create table 成绩(sno number, km varchar2(13), score number); Insert into 成绩 values(1,‟语文’,60); Insert into 成绩 values(1,‟数学’,60); Insert into 成绩 values(1,‟英语’,60); Insert into 成绩 values(2,‟语文’,70); Insert into 成绩 values(2,‟数学’,70); Insert into 成绩 values(3,‟英语’,89); commit;
插入空值
Insert into student values(3,null, to_date(„19980311‟,‟yyyy-MMdd‟)); hh mm ss
insert into student(sno,birthday) values( 4,to_date('19880601','yyyy-MM-dd'));
月、日,小时、分钟、秒 数值数据类型的声明语法: 主要的日期时间类型有:
NUMBER [( p[, s])] DATE - 存储日期和时间部分,精确到整个的秒 P表示精度,S表示小数点的位数 TIMESTAMP - 存储日期、时间和时区信息,秒值精 确到小数点后6位 Select sysdate from dual; Select to_char(sysdate,‟yyyymmdd hh24:mi:ss‟) from dual; Select to_char(sysytimestamp,‟yyyymmdd hh24:mi:ssxff6‟) from dual;

oralce函数

oralce函数

oralce函数Oracle是一种关系数据库管理系统,它使用了一种名为Oracle数据库的数据库管理系统。

Oracle是一种强大的工具,提供了许多内置函数,可以用于在数据库中进行各种操作。

以下是一些常用的Oracle函数。

1.聚合函数-AVG:计算指定列的平均值。

-COUNT:计算指定列中非空数据的数量。

-SUM:计算指定列的总和。

-MAX:找到指定列的最大值。

-MIN:找到指定列的最小值。

2.字符串函数-CONCAT:将两个字符串连接成一个字符串。

-LOWER:将字符串转换为小写。

-UPPER:将字符串转换为大写。

-LENGTH:计算字符串的长度。

-SUBSTR:返回一个字符串的子字符串。

3.数值函数-ROUND:将一个数值四舍五入到指定的小数位数。

-CEIL:向上取整,返回不小于指定数值的最小整数。

-FLOOR:向下取整,返回不大于指定数值的最大整数。

-ABS:返回指定数值的绝对值。

-MOD:返回两个数值的余数。

4.日期和时间函数-SYSDATE:返回当前日期和时间。

-ADD_MONTHS:在指定日期上增加指定的月份。

-TRUNC:截断日期或时间到指定的精度。

-MONTHS_BETWEEN:计算两个日期之间的月数差。

-TO_CHAR:将日期转换为指定格式的字符串。

5.条件函数-DECODE:根据条件返回不同的值。

-CASE:根据条件执行不同的操作。

-NVL:如果给定的表达式为NULL,则将其替换为指定的值。

-NULLIF:如果两个表达式的值相等,则返回NULL。

6.分析函数-ROW_NUMBER:为每一行分配一个唯一的数字。

-RANK:为每一行分配一个排名,如果有并列的值,则排名相同。

-DENSE_RANK:为每一行分配一个排名,如果有并列的值,则排名可以重复。

-LEAD:返回指定行后的值。

-LAG:返回指定行前的值。

上述函数只是Oracle提供的一小部分功能,Oracle还提供了许多其他有用的函数。

ORACLE-SQL语句学习教程

ORACLE-SQL语句学习教程

目录概述 (2)第一章SQL*PLUS 工具软件的使用 (5)第二章基本查询 (9)第三章条件查询 (13)第四章单行函数 (16)第五章多表查询 (20)第六章组函数 (23)第七章子查询 (25)第八章运行期间指定变量 (29)第九章创建基表 (31)第十章ORACLE数据字典 (36)第十一章操纵数据 (38)第十二章修改基表及其约束 (42)第十三章创建序列 (45)第十四章创建视图 (47)第十五章创建索引 (50)概述20世纪70年代初,E.F。

Codd 在计算机学会(Association of Computer Machinery,简写为ACM)期刊Communications of the ACM(ACM 通讯)发表了题为”A Relational Model of Data for Large Shared Data Banks”(大型共享数据库的数据关系模型)的论文,该论文提出的关系数据库模型成为今天最为权威的关系型数据库管理模型.IBM公司首先使用该模型开发出了结构化英语查询语言SEQUEL(Structured English Query Language),作为其关系数据库原型System R的操作语言,实现对关系数据库的信息检索.SEQUEL后来简写为SQL,即Structured Query Language(结构化查询语言)的缩写.ORACLE公司于1997年推出了第一个商业应用的SQL软件.20世纪80年代初,美国国家标准化组织(ANSI)开始着手制订SQL标准,最早的ANSI 标准于1986年颁布,它也被称为SQL-86。

标准的出台使SQL作为标准的关系数据库语言的地位得到加强。

SQL标准几经修改和完善,目前SQL语言方面新的ANSI标准是1992年制定的ANSI X3.135—1992,“Database Language SQL”。

此标准也被国际电工委员会(International Electro technical Commission,即IEC)所属的国际标准化组织(International Standards Organization, 即ISO)所接受,并将它命名为ISO/IEC9075:1992, “Database Language SQL”。

oracle的sql分类

oracle的sql分类

Oracle的SQL可以分为以下几类:数据查询语言(DQL, Data Query Language):这是SQL中最常用的部分,用于从数据库表中查询数据。

主要命令包括:SELECT。

例子:SELECT first_name, last_name FROM employees WHERE department_id = 10;数据定义语言(DDL, Data Definition Language):用于定义或修改数据库结构,如表、索引、触发器等。

主要命令包括:CREATE, ALTER, DROP, TRUNCATE。

例子:创建表:CREATE TABLE employees (employee_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50));修改表:ALTER TABLE employees ADD (email VARCHAR2(100));删除表:DROP TABLE employees;数据操纵语言(DML, Data Manipulation Language):用于插入、更新、删除数据库中的数据。

主要命令包括:INSERT, UPDATE, DELETE, MERGE。

例子:插入数据:INSERT INTO employees (employee_id, first_name, last_name) VALUES (1, 'John', 'Doe');更新数据:UPDATE employees SET email = '********************'WHERE employee_id = 1;删除数据:DELETE FROM employees WHERE employee_id = 1;数据控制语言(DCL, Data Control Language):用于控制对数据和数据库的访问。

Oracle常用SQL命令

Oracle常用SQL命令

Oracle常⽤SQL命令创建表空间1.创建默认表空间WLP_DATCREATE TABLESPACE "MYSPACE" DATAFILE'D:\oracle\oradata\orcl\data/WLP_DAT.dbf' SIZE 32M REUSE AUTOEXTEND ON NEXT 32MLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;2.创建临时表空间WLP_TEMP(⽤于缓存,可以不建)ALTER TABLESPACE "TEMP" ADD TEMPFILE'D:\oracle\oradata\orcl\data/WLP_TEMP.dbf' SIZE 32m REUSE autoextend on next 32m;创建⽤户并授权1CREATE USER "WLPING" PROFILE "DEFAULT"2 IDENTIFIED BY "123456"3DEFAULT TABLESPACE "MYSPACE" //默认指定表空间4TEMPORARY TABLESPACE "TEMP" //指定缓存表空间5 ACCOUNT UNLOCK; //⽤户⾮锁定67GRANT EXECUTE ON dbms_comparison TO "WLPING";8GRANT UNLIMITED TABLESPACE TO "XIR_MD";9GRANT "CONNECT" TO "XIR_MD";10GRANT "RESOURCE" TO "XIR_MD";1112-- GRANT DBA TO XIR_MD;PROFILE:Oracle系统中的profile可以⽤来对⽤户所能使⽤的数据库资源进⾏限制,使⽤Create Profile命令创建⼀个Profile,⽤它来实现对数据库资源的限制使⽤,如果把该profile分配给⽤户,则该⽤户所能使⽤的数据库资源都在该profile的限制之内。

常用oracle数据库命令

常用oracle数据库命令

常用oracle数据库命令
1. 启动Oracle数据库
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
3. 创建表空间
创建表空间的命令是:
SQL> create tablespace 表空间名 datafile '路径名' size 大小;
6. 创建用户
7. 删除用户
删除用户的命令是:
8. 授权用户
SQL> grant 权限 to 用户名;
9. 撤销用户的权限
11. 查看表结构
查看表结构的命令是:
SQL> desc 表名;
SQL> create table 表名 (列名数据类型, 列名数据类型, …);
13. 删除表
14. 插入数据
插入数据的命令是:
SQL> update 表名 set 列名=新值 where 某条件;
18. 创建索引
20. 查看索引
21. 查询相关信息
查询相关信息的命令是:
SQL> select * from v$session; -- 查看会话 22. 查看数据库版本
24. 备份数据库
$ exp 用户名/密码 file=备份文件路径备注:以上命令均需要在Oracle登录后进行。

oracle sql常用函数

oracle sql常用函数Oracle SQL中有许多常用的函数,它们可以用于数据处理、计算和转换。

以下是一些常用的Oracle SQL函数:1. 字符串函数:`SUBSTR(str, start, length)`: 返回字符串str中从start位置开始的长度为length的子串。

`UPPER(str)`: 将字符串str转换为大写。

`LOWER(str)`: 将字符串str转换为小写。

`INSTR(str, substr)`: 返回子串substr在字符串str中第一次出现的位置。

2. 数值函数:`ROUND(num, decimal_places)`: 对num进行四舍五入,保留decimal_places位小数。

`TRUNC(num, decimal_places)`: 对num进行截断,保留decimal_places位小数。

`MOD(n, m)`: 返回n除以m的余数。

3. 日期函数:`SYSDATE`: 返回当前日期和时间。

`TO_CHAR(date, format)`: 将日期date按照指定的格式转换为字符串。

`MONTHS_BETWEEN(date1, date2)`: 返回date1和date2之间相差的月数。

4. 转换函数:`TO_NUMBER(str)`: 将字符串str转换为数值型。

`TO_DATE(str, format)`: 将字符串str按照指定的格式转换为日期型。

5. 聚合函数:`SUM(column)`: 计算指定列的总和。

`AVG(column)`: 计算指定列的平均值。

`COUNT(column)`: 计算指定列的行数。

6. 条件函数:`CASE WHEN condition THEN result1 ELSE result2 END`: 根据条件返回不同的结果。

以上列举的函数只是Oracle SQL中的一部分常用函数,还有许多其他函数可以根据具体的需求进行选择和应用。

Oracle常用命令大全(很有用,做笔记)

Oracle常⽤命令⼤全(很有⽤,做笔记)⼀、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下su - roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪⼏种启动⽅式说明:有以下⼏种启动⽅式:1、startup nomount⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。

2、startup mount dbname安装启动,这种⽅式启动下可执⾏:数据库⽇志归档、数据库介质恢复、使数据⽂件联机或脱机,重新定位数据⽂件、重做⽇志⽂件。

oracle常用sql函数

oracle常用sql函数Oracle是一款非常优秀的数据库管理系统,它提供了很多强大的功能与工具,其中最基本而实用的功能就是SQL函数了。

下面我们将重点介绍一些常用的Oracle SQL函数,帮助读者更好地了解和掌握这些常用的函数,从而更加有效地处理和管理数据。

一、数值型函数1. ABS()函数:用于计算数值的绝对值,比如ABS(-10)会返回10。

2. CEIL()函数:用于向上取整,比如CEIL(3.14)会返回4。

3. FLOOR()函数:用于向下取整,比如FLOOR(3.14)会返回3。

4. MOD()函数:用于求模,比如MOD(12,5)会返回2。

5. ROUND()函数:用于四舍五入,比如ROUND(3.49)会返回3,而ROUND(3.51)会返回4。

二、字符型函数1. CONCAT()函数:用于连接两个字符串,比如CONCAT('hello','world')会返回helloworld。

2. SUBSTR()函数:用于截取字符串,比如SUBSTR('hello',2,3)会返回ell。

3. UPPER()函数:用于将字符串转换成大写,比如UPPER('hello')会返回HELLO。

4. LOWER()函数:用于将字符串转换成小写,比如LOWER('HELLO')会返回hello。

5. TRIM()函数:用于去掉字符串首尾的空格,比如TRIM(' hello ')会返回hello。

三、日期型函数1. CURRENT_DATE函数:用于获取当前日期,比如SELECT CURRENT_DATE FROM DUAL会返回当前日期。

2. SYSDATE函数:用于获取系统当前时间,比如SELECTSYSDATE FROM DUAL会返回系统当前时间。

3. TO_CHAR()函数:用于将日期转换成字符型,比如TO_CHAR(SYSDATE,'yyyy-mm-dd')会返回当前日期的年月日格式。

(完整版)ORACLE函数大全

ORACLE函数大全SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL〉 select ascii('A')A,ascii(’a') a,ascii('0’) zero,ascii(' ') space from dual;A A ZERO SPACE————-——-— -—---———- ---—----- ---————-—65 97 48 322.CHR给出整数,返回对应的字符;SQL〉 select chr(54740) zhao,chr(65) chr65 from dual;ZH C—— -赵 A3.CONCAT连接两个字符串;SQL> select concat('010—’,'88888888')||'转23’高乾竞电话 from dual;高乾竞电话—-——-———-—--——-—010—88888888转234.INITCAP返回字符串并将字符串的第一个字母变为大写;SQL〉 select initcap('smith’) upp from dual;UPP—————Smith5.INSTR(C1,C2,I,J)在一个字符串中搜索指定的字符,返回发现指定的字符的位置;C1 被搜索的字符串C2 希望搜索的字符串I 搜索的开始位置,默认为1J 出现的位置,默认为1SQL> select instr(’oracle traning’,’ra',1,2) instring from dual;INSTRING—-—------96.LENGTH返回字符串的长度;SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;NAME LENGTH(NAME) ADDR LENGTH(ADDR) SALLENGTH(TO_CHAR(SAL))————-———---————-—- —--——---——----—- -———--—-—-—— ----———-————----—-——--—--—---高乾竞 3 北京市海锭区 6 9999.99 77。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档