黑马程序员c语言教程:SQL函数(7)(精选5篇)

时间:2019-05-12 20:20:37下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《黑马程序员c语言教程:SQL函数(7)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《黑马程序员c语言教程:SQL函数(7)》。

第一篇:黑马程序员c语言教程:SQL函数(7)

什么是分组函数

组函数类型

组函数语法

AVG(平均值)和 SUM(合计)函数

MIN(最小值)和 MAX(最大值)函数

COUNT(计数)函数

DISTINCT(distinct)关键字

组函数与空值

在组函数中使用NVL函数

第二篇:黑马程序员c语言教程:SQL函数

日期

Oracle 中的日期型数据实际含有两个值: 日期和时间。默认的日期格式是 DD-MON-RR.函数SYSDATE 返回: 日期 时间

在日期上加上或减去一个数字结果仍为日期。两个日期相减返回日期之间相差的天数。

可以用数字除24来向日期中加上或减去小时。

日期的数学运算

日期函数

转换函数

隐式数据类型转换

显式数据类型转换

第三篇:黑马程序员c语言教程:SQL函数

大小写控制函数

大小写控制函数

字符控制函数

数字函数

ROUND 函数

TRUNC 函数

MOD 函数

第四篇:黑马程序员c语言教程:sql语言课堂强化

sql语言课堂强化 select a, b, c select.....(多个列)from.....一个表(多个表)where....(条件)group by...(分组)--难点 having......(分组过滤)order by 1(排序)

SQL语言是数据库的“键盘”,请大家重视基本功的训练

课堂考试 9:10 左右 学员到我笔记本上 上机操作 求所有部门的平均奖金

select avg(nvl(comm, 0))from emp;

select avg(sal)from emp;求各部门的平均薪水

select deptno, avg(sal)from emp group by deptno

====>错误案例

select deptno, ename, avg(sal)from emp group by deptno /

select d from emp group by a, b, c 求各部门每个工种的平均薪水, 并显示部门编号、工种、平均薪水

select deptno, job, avg(sal)

from emp group by deptno, job--先按deptno、job分组,出来n组数据,在这个基础之上,再进行计算求各部门每个工种大于2000的薪水 select sal from emp where sal>2000

4-1 求各部门每个工种,平均薪水大于2000的薪水

select deptno, job, avg(sal)from emp group by deptno, job having avg(sal)>2000 求10号部门的平均工资(2种写法)select deptno, avg(sal)from emp where deptno=10 group by deptno

select deptno, avg(sal)from emp group by deptno having deptno = 10 创建一个学生表

sid sname

email sex age 7 并向表中插入一条数据

create table student(sid number, sname varchar2(20), email varchar2(64), sex number,age number)insert into student(sid, sname, email, sex, age)values(1, 'tom11', '11@163.com', 1, 20)

//只显示大于4个人的部门信息

select deptno, count(*)from emp group by deptno having count(deptno)> 4 /

--创建表

--1 查询 员工号 姓名 月薪 年薪 年收入 部门名称

select e.deptno, e.ename, e.sal, e.sal*12 yearsal,(e.sal*12+nvl(e.comm,0))incoming , d.dname from emp e, dept d where e.deptno = d.deptno

====>

---2 创建一个表, 把第一步骤查询的信息,存放在另外一张表中 create table s1 as(select e.deptno, e.ename, e.sal, e.sal*12 yearsal,(e.sal*12+nvl(e.comm,0))incoming , d.dname from emp e, dept d where e.deptno = d.deptno)

create view myview1 as(select e.deptno, e.ename, e.sal, e.sal*12 yearsal,(e.sal*12+nvl(e.comm,0))incoming , d.dname from emp e, dept d where e.deptno = d.deptno)

create table empincome as

select e.empno, e.ename, e.sal, e.sal*12 annalsal, sal*12+nvl(comm, 0)income, d.dname from emp e, dept d where e.deptno = d.deptno;

--创建表的同时copy数据

第五篇:黑马程序员c语言教程:Oracle概念(7)

十六、控制用户访问 1.权限的类别

系统级权限: 针对整个系统操作的权限 如: 用户名/密码, 使用表空间的限额等

对象级权限: 针对某个具体object操作的权限

如: 针对某个表, 视图, 表的某个字段的select, update, delete权限 23

J2EE @ zxw 2.查看当前数据库的用户信息

SQL>select username,default_tablespace,temporary_tablespace from dba_users;查看在线用户信息 SQL>select count “number”,username “current username” from v$session group by username;用户查看自己的缺省表空间SQL>select username,default_tablespace from user_users;3.创建新用户

SQL> create user username identified by password default tablespace tablespace_name temporary tablespace temp quota unlimited on tablespace_name quota 1k on system [quota 1k on other_tablespace_name „„];给用户赋权限

SQL> grant connect, resource to username;查看当前用户的权限角色

SQL> select * from user_role_privs;查看当前用户的系统权限和表级权限

SQL> select * from user_sys_privs;SQL> select * from user_tab_privs;4、常用的角色及其权限

CONNECT 8 privs 连上Oracle,做最基本操作 RESOURCE 8 privs 具有程序开发最的权限 DBA 114 privs 数据库管理员所有权限

EXP_FULL_DATABASE 5 privs 数据库整个备份输出的权限 IMP_FULL_DATABASE 64 privs 数据库整个备份输入的权限 查看角色明细的系统权限

SQL> select * from role_sys_privs;

5、改变老用户 可以改变老用户的密码, 缺省表空间, 临时表空间, 空间限额.SQL> alter user username identified by password default tablespace tablespace_name temporary tablespace temp quota unlimited on tablespace_name quota 1k on system

[quota 1k on other_tablespace_name „„];撤销用户的角色或权限

SQL> revoke role_name or priv_name from username;注意事项

撤消用户的角色dba时, 同时撤消了用户unlimited tablespace的系统权限, 切记要再次赋予resource角色给此用户 SQL> grant resource to username;

6、删除用户

如果用户下没有任何数据对象 SQL> drop user username;如果用户下有数据对象

SQL> drop user username cascade;注意事项

如果用户下有含clob,blob字段的表, 应该先删除这些表后,才能用cascade选项完全删除.7、角色的概念和管理 24

J2EE @ zxw 角色是命名多个相关权限的组合.能把它赋于其它的用户或角色我们能创建角色, 使权限管理更容易一些.8、赋于系统的权限语法和例子 语法: SQL> GRANT sys_priv TO {user|role|PUBLIC} [WITH ADMIN OPTION];例子: SQL> GRANT create session TO sue, rich;SQL> GRANT create table To scott, manager;注意: 如果用WITH ADMIN OPTION通过中间用户赋于的系统权限中间用户删除后, 系统权限仍然存在.9、赋于数据对象级的权限语法和例子 语法: SQL> GRANT object_priv [(columns)] ON object TO {user|role|PUBLIC} [WITH GRANT OPTION];例子: SQL> GRANT select ON s_emp TO sue, rich;SQL> GRANT update(name, region_id)ON s_dept TO scott, manager;注意: 如果用WITH GRANT OPTION通过中间用户赋于的对象权限 中间用户删除后,对象权限就不存在了.-------------

----------------------------完--------------------------补充:

rownum表中的行号,自动生成的,只能用<,<=操作符 rowid用来唯一表示数据库表中的一行(1)在oralce上的分页需要用到伪列,只所以这么做,是因为oralce不支持rownum比较 比如说找出第三行纪录,那就是 select last_name, salary from(select rownum a, b.* from s_emp b)where a=3 如果找出第10行到第20行的数据的话,那就必须用到 select last_name, salary from(select rownum a, b.* from s_emp b)where a > 10 and a < 2;这是sql级别的分页,优点是速度快,缺点是可移植性差;(2)COURSEID COURSENAME SCORE------------------------------1 java 70 2 oracle 90 3 xml 40 4 jsp 30 5 servlet 80 25

J2EE @ zxw SQL> select courseid, coursename ,score ,decode(sign(score-61),-1,'fail','pass')as mark from course_v;COURSEID COURSENAME SCORE MARK----------------------------------1 java 70 pass 2 oracle 90 pass 3 xml 40 fail 4 jsp 30 fail 5 servlet 80 pass

(3)已经知道原表

year salary---------------------------------------2000 1000 2001 2000 2002 3000 2003 4000 显示查询结果

year salary---------------------------------------2000 1000 2001 3000 2002 6000 2003 10000 即salary为以前年的工资的和; 解答过程如下:

select b.year,sum(a.salary)from test a,test b where a.year<=b.year group by b.year order by year

/*============================== *Author: MartriWang@gmail.com *Date: 09/05/2007 *Description:ORACLE Summary

*============================*/ 汇总:

set autotrace on set autotrace traceonly explain set timing on 或通过SQL*PLUS trace,然后查看user_dump_dest下的跟踪文件,使用tkprof工具格式化后阅览。

alter session set events '10046 trace name context forever,level 12';alter session set events '10046 trace name context off';SELECT p.spid,s.username FROM v$session s,v$process p WHERE s.audsid=USERENV('sessionid')AND s.paddr = p.addr;使用方法示例:

DBserver% sqlplus perf/perf

SQL*Plus: Release 9.2.0.6.064bit Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.6.0-Production SQL> set timing on SQL> set autotrace on SQL> select count(*)from perf_sdcch_nn where start_time =(select max(start_time)from perf_sdcch_nn);COUNT(*)----------638 Elapsed: 00:00:00.80 Execution Plan---------------------------0 SELECT STATEMENT Optimizer=CHOOSE(Cost=1 Card=1 Bytes=8)1 0 SORT(AGGREGATE)2 1 INDEX(RANGE SCAN)OF 'IDX02_PERF_SDCCH_NN'(NON-UNIQUE)(Cost=2 Card=1495 Bytes=11960)3 2 SORT(AGGREGATE)4 3 INDEX(FULL SCAN(MIN/MAX))OF 'IDX02_PERF_SDCCH_NN'(NON-UNIQUE)(Cost=1 Card=3852090 Bytes=30816720)Statistics---------------------------0 recursive calls 0 db block gets 15 consistent gets 0 physical reads 0 redo size 492 bytes sent via SQL*Net to client 656 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts(memory)0 sorts(disk)1 rows processed SQL> 从上面的示例我们可以看到,该SQL语句执行花了0.8秒,select语句和inline view,都使用了名为'IDX02_PERF_SDCCH_NN'的索引

物理读为0,redo log size为0,没有生成REDO日志。

下载黑马程序员c语言教程:SQL函数(7)(精选5篇)word格式文档
下载黑马程序员c语言教程:SQL函数(7)(精选5篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    黑马程序员c语言教程:Oracle简介

    9. 通过子查询建表 通过子查询建表的例子 SQL>CREATE TABLE emp_41 AS SELECT id, last_name, userid, start_date FROM s_emp WHERE dept_id = 41; SQL> CREATE TABLE A as......

    黑马程序员c语言教程:DML语言强化

    sql语言的类型 数据语言实现数据的crud DML语句 (Data Manipulation Language) 数据库操作语言insert update delete select DDL语言 data definition Lanaguage create ta......

    黑马程序员c语言教程:Oracle概念(推荐)

    七、在执行SQL语句时绑定变量 1. 接收和定义变量的SQL*PLUS命令 ACCEPT DEFINE UNDEFINE & 2. 绑定变量SQL语句的例子 SQL> select id, last_name, salary from s_emp wh......

    黑马程序员c语言教程:多表查询

    1 笛卡尔积 部门表 笛卡尔积产生结果: 行数 两个表相乘列数: 行数相加 原因 条件等值连接select **** from tab1, tab2 where tab1.a = tab2.a 1 select count(e.ename)......

    黑马程序员c语言教程:Oracle指令大全

    ------------------------- --order by的用法 --员工信息按照姓名正序排列 select * from emp order by ename asc; --员工信息按照倒叙排列 select * from emp order by en......

    黑马程序员c语言教程:Oracle指令大全

    --sql structured query language --DML--Data Manipulation Language--数据操作语言 query information (SELECT), add new rows (INSERT), modify existing rows (UPDAT......

    黑马程序员c语言教程:Oracle概念

    一、选择行 1. 简单的SELECT 语句 SELECT 字段名1 [AS] '字段名1 解释' FROM table; 2. 处理NULL NVL函数可把NULL转换成其它类型的符号 编程技巧: NVL函数在多条件模糊查询......

    黑马程序员c语言教程:Oracle指令大全

    --什么时候用外连接呢?比如领导向你要所有学生的列表,顺便把所属的班级也列出来,就需要外连接 --在Where语句中使用子查询 --- --雇员中最高薪水的人员名称 --1,先求出最高......