黑马程序员c语言教程:sql语言课堂强化(5篇)

时间:2019-05-12 21:03:40下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《黑马程序员c语言教程:sql语言课堂强化》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《黑马程序员c语言教程:sql语言课堂强化》。

第一篇:黑马程序员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语言教程:SQL函数

日期

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

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

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

日期的数学运算

日期函数

转换函数

隐式数据类型转换

显式数据类型转换

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

sql语言的类型

数据语言实现数据的crud

DML语句(Data Manipulation Language)数据库操作语言

insert update delete select DDL语言 data definition Lanaguage

create table

create view index sequence synonym同义词

truncate table DCL语言 data control language数据语言

commit rollback savetpointe

OCA认证 OCP(dba)一起考, 参加oracle的培训 2w Oracle数据库管理员认证专员(OCA):Oracle Certified Associate Oracle数据库管理员认证专家(OCP): Oracle Certified Professional Oracle数据库管理员认证大师(OCM): Oracle Certified Master

语法: INSERT INTO table [(column [, column...])] VALUES(value [, value...]);

--1 向表中插入所有列

insert into emp values(1, 'tom_111', 'enginerr', 7839, sysdate, 5000, 100, 10)--2 向表中插入部分列

insert into emp(empno, ename, job, hiredate)values(2, 'tom_2222', 'enginerr', sysdate)

--3 隐式插入空值: 没有写出的列,默认为null值--4 显示插入空值:--5 sql插入语言的地址符 & 取地址符后面相当于一个变量

mysql语言: preparedStatement语言 SQL> insert into emp(empno, ename, job, hiredate)values(&empno, &ename, &job, &hiredate);输入 empno 的值: 3

输入 ename 的值: 'tom_ccc' 输入 job 的值: 'job' 输入 hiredate 的值: '22-2月-81' 原值 1: insert into emp(empno, ename, job, hiredate)values(&empno, &ename, &job, &hiredate)新值 1: insert into emp(empno, ename, job, hiredate)values(3, 'tom_ccc', 'job', '22-2月-81')

&地址符, 可以在任何sql语言中使用.在select 语言中也可以使用地址符

SQL> select ename, job, &tt from emp;输入 tt 的值: deptno 原值 1: select ename, job, &tt from emp 新值 1: select ename, job, deptno from emp

--7 批量插入数据--创建一张表

create table emp10 as

select * from emp where 1=2;--一次性的将emp中所有10号部门的员工插入到emp10中

--在insert语言中使用子查询 子查询 不光用在查询套查询, 也可用在DML语句套select语句

insert into emp10--列完全一样,可以不写

select * from emp where deptno=10;delete from emp10;

有关update更新语句

UPDATE table SET column = value [, column = value,...] [WHERE condition];--列子

SQL> update emp10 set sal=2300 where empno=7934;

有关删除数据

DELETE [FROM] table [WHERE condition];

delete和truncate表区别

delete逐条删除 truncate先摧毁表再重建delete语言是DML语言 truncate是DDL

DML语言可以闪回 做错的并且提交了.可通过闪回,撤销操作

DDL语言不可以闪回 flashback

delete是逐条删除,会产生碎片, truncate不会产生碎片

行移动功能: 要开启闪回功能,必须要开启行移动功能delete不会释放空间 truncate会delete可以回滚 truncate不可以

oracle delete快 mysql truncate快.实验: 从文件中导入数据, 通过命名delete 和 truncate删除表数据 实验

从文件中导入数据

SQL> set timing off;SQL> set feedback off;SQL> drop table testdelete purge;SQL> @c:Sql.sql;SQL> SQL> set timing on;//最后删除数据表的时候,把时间打开,记录时间

SQL> delete from testdelete;已用时间: 00: 00: 00.03

从文件中导入数据

SQL> set timing off;@c:Sql.sql;

set timing off;

select count(*)from testdelete;set timing on;//最后删除数据表的时候,把时间打开,记录时间

truncate table testdelete;已用时间: 00: 00: 00.39

事务基本概念

概念

一个或者多个DML语言组成特点

要么都成功,要么都失败

特性

原子性 一致性 隔离性 持久性

事物的隔离性 多个客户端同时操作数据库的时, 要隔离他们的操作

否则:脏读 不可重复读 幻读

设置不同的搁置级别来解决oracle中的事务

事务起始标志 DML语言(oracle默认事务似是打开的)2 事务的结束标志

提交: 显示提交commit

隐式提交

1)执行DDL语言

eg create table语言 还有I个隐式的功能

提交之前的没有提交的DML语言(insert update)

2)正常退出

回滚: 显示 rollback

隐式 掉电/宕机/非正常退出==系统出错了 oracle事务控制--保存点

create table testsavepoint(tid number, tname varchar2(20));set feedback on

insert into testsavepoint values(1, 'tom1');insert into testsavepoint values(2, 'tom2');savepoint a;//创建一个保存点

insert into testsavepoint values(3, 'tom3a);rollback to savepoint a;

注意: 回退到savepoint a 前面插入的两条sql语句还没有提交;仍然还在一个事务里面;让事务结束的方法 显示 隐式 SQL> rollback / commit oracle数据的隔离级别问题

read only ,数据库几乎不做串行化操作,增加了read only SQL99

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

大小写控制函数

大小写控制函数

字符控制函数

数字函数

ROUND 函数

TRUNC 函数

MOD 函数

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

什么是分组函数

组函数类型

组函数语法

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

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

COUNT(计数)函数

DISTINCT(distinct)关键字

组函数与空值

在组函数中使用NVL函数

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

文档为doc格式


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

相关范文推荐