赞
踩
例:计算不重复的记录总数
SELECT COUNT(DISTINCT department_id) FROM employees
----求出emp表中的各部门的平均工资,按照平均工资从高往低排序
select a.deptno,avg(a.sal) avg_sal from emp a group by a.deptno order by avg_sal desc;
----求出emp表中的不同部门,不同职位的平均工资
select a.deptno,avg(a.sal) avg_sal,a.job from emp a group by a.deptno,a.job;
①, 行已经被分组
②, 使用了组函数
③, 满足HAVING 子句中条件的分组将被显示
----求出emp表中的不同部门,不同职位的平均工资且平均工资大于1000
select a.deptno,avg(a.sal) avg_sal,a.job from emp a having avg(a.sal) > 1000 group by a.deptno,a.job;
----查询比ALLEN工资高的职工名字
select a.ename
from emp a
where a.sal > (select sal from emp where ename = 'ALLEN');
①,子查询要包含在括号内。
②, 将子查询放在比较条件的右侧。
③,单行操作符对应单行子查询,多行操作符对应多行子查询。
select department_id
from employees
group by department_id
having avg(salary) >= any (select avg(salary)
from employees
group by department_id);
---- 查看用户定义的表
SELECT table_name FROM user_tables;
---- 查看用户定义的各种数据库
SELECT DISTINCT object_type FROM user_objects;
---- 查看用户定义的表, 视图, 同义词和序列
SELECT * FROM user_catalog;
create table emp1 as select * from emp;
创建的emp2是空表:
create table emp2 as select * from emp where 1=2;
追加新的列:
alter table student add (sno varchar2(16));
修改现有的列:
alter table student modify (sno varchar2(30));
为新追加的列定义默认值:
alter table student modify (sno varchar2(30) default '000');
删除一个列:
alter table student drop column sno;
重命名表的一个列名:
alter table student rename column sno to sid;
①,数据和结构都被删除
②,所有正在运行的相关事务被提交
③,所有相关索引被删除
④,DROP TABLE 语句不能回滚
DROP TABLE STUDENT;
①,删除表中所有的数据
②,释放表的存储空间
TRUNCATE TABLE student;
RENAME student TO student1;
INSERT INTO student (stuid, sname, gender) VALUES (11, 'Tommey周', '男');
INSERT INTO student (stuid) VALUES ('&stuid');
INSERT INTO student
(id, name, age, sclass)
SELECT id, last_name, age, sclass FROM teacher
update student set sname = 'Tommey周1' where stuid='1'
DELETE FROM STUDENT WHRER STUID ='1'
①,确保数据完整性。
②,数据改变被提交之前预览。
③,将逻辑上相关的操作分组。
update student set sname = 'Tommey周1' where stuid='1';
SAVEPOINT update_done;
ROLLBACK TO update_done;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。