oracle mysql 学习_Oracle数据库学习(一)

SQL语言是通用的数据库语言

SQL命令可分为数据定义语言、数据操纵语言、事务控制语言和数据控制语言

Oracle支持的数据类型包括字符、数值、日期时间、RAW和LOB等

伪列:ROWID、ROWNUM

数据完整性:实体完整性、域完整性、引用完整性、自定义完整性

1、选择无重复的行,使用distinct关键字

select  distinct  sclass  from  student;

2、给列指定别名

select  cid  as 课程号,cname  as  课程名 from course;

3、对查询结果进行排序   order by  排序字段  排序方式

select  * from score where sid='10011'  order  by  score  desc;

4、模糊查询:字段  like  匹配表达式

%:0个或多个字符

_:任意单个字符

select  * from  student  where  sname like '张%';

5、利用现有的表创建表

create  table  as  select column_names  from  ;

例如:create  table  stubak  as  select * from student;

create  table  stuclass  as  select  *  from  student  where  sclass=1;

create  table  stuemp   as   select  *  from  student   where  1=2;

联接查询(多表)

交叉联接(cross join)

select  列名列表  from T1  cross  join  T2;

一个交叉联接(cross join)接收两个分别有N行和M行的表T1和T2,然后返回一个包含交叉乘积N×M条记录的联接表

例如:知道学生与课程有多少可能的组合:select *  from student  cross join course;

也可以不适用join:select  *  from student,course;

内联接(等值联接)

例如:查询学生总体学习情况:学生姓名,课程名,成绩

select  sname,cname,score  from  t_student  join  t_score  on                t_student.sid=t_score.sid  join  t_course  on t_course.cid=t_score.cid;

或者:select sname,cname,score  from  t_student,t_score,t_coure where  t_student.sid=t_score.sid  and  t_coure.cid=t_score.cid;

外联接

例如:内联接查询教师和课程的对应情况

select  * from  teacher  join teachcourse  on  teacher.tid=teachcourse.tid;

查看所有教师的工作分配情况,即没有课程的教师也要出现在查询结果中,此时就用外联接

select  *  from  teacher  full  join  teachcourse  on  teacher.tid=teachcourse.tid;

左外联接left

右外联接right

全联接

分组聚合

SQL中提供得聚合函数  Min、Max、Sum、Avg、Count

对记录分组通过关键字group  by 实现

select sid, max(score) as maxscore, min(score) as minscore, sum(score) as totalscore, avg(score) as avgscore from t_score group by sid;

Having子句

Having子句主要用于聚合查询中,在group之后过滤那些不符合条件的组

例如:平均成绩超过75的学生的学号和平均成绩

select  sid,avg(score)  as avgscore  from  t_score  group  by  sid  having  avg(score)>=75;

子查询

例如:查询比大山老师年龄大的教师的信息

select * from  teacher  where  tage > (select  tage  from  teacher  where  tname='大山');

[not]in子查询适用于子查询中返回多个值时的情况

select  列名  from  表名  where  列名  [not] in (子查询)

例如:查询所有已经安排教师上课的课程信息

select  *  from  course  where  cid  in  (select  cid  from  teachcourse);

exists子查询:存在查询,子查询不返回任何结果,只产生逻辑真或逻辑假

select  列名  from  表名  where  [not] eaists (子查询)

例如:查询所有已经安排教师上课的课程信息

select  *  from  course  where  exists  (select  *  from  teachcourse where teachcourse.cid=course.cid);

在from里面的子查询

当子查询返回一个结果集时,那么它就相当于一个普通的表,所以,在from子句我们同样可以使用子查询

在成绩表中查询出所有学生的最高平均分

select max(avgscore) from (select avg(score) as avgscore from t_score group by sid);

分页查询:rownum伪列

select * from (select rownum as num,sid,sname,ssex,sclass from t_student) where num>=11 and num<=20;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle2: 1. 《Oracle8 优化技术》摘录 (第一章 安装) 2. 《Oracle8 优化技术》摘录 (第二章 内存-CPU) 3. 《Oracle8 优化技术》摘录 (第三章 输入-输出) 4. EXP、IMP 命令详解 5. Oracle Index 的三个问题 6. Oracle PL-SQL语言基础 7. Oracle的分布式管理 8. ORACLE的数据类型 9. Oracle数据库碎片整理 10.ORACLE性能调整1 11.ORACLE性能调整2 12.Oracle专家调优秘密 13.PL_SQL单行函数和组函数详解 14.PL-SQL 15.PLSQL异常处理初步 16.SQL语句性能调整原则 17.创建和使用分区的表 18.基于成本的优化器一般错误概念和问题 19.Delphi 3_0中连接数据库的三种方式 20.远程数据库的访问 21.监控数据库性能的SQL 22.简单实现数据库表空间的备份或迁移 23.简析REDO LOGFILE 24.理解和使用Oracle 8i分析工具-LogMiner 25.哪些初始化参数最影响Oracle系统性能 26.你的SQL语句在什么情况下使用全表扫描? 27.如何对CLOB行字段执行全文检索 28.如何让你的SQL运行得更快 29.如何使‘CREATE TABLE AS SELECT’能支持ORDER BY 30.删除表内重复记录的方法 31.数据库安全性策略 32.数据库的查询优化技术. 33.提高C-S系统性能的一些方法 34.提高ORACLE数据库系统import性能 35.外部联接的用法 36.性能调试的一般问题 37.优化 38.优化调整Oracle 8i数据库(从操作系统) 39.在Internet上运作公司是一项艰苦的任务--关键任务 40.在oracle中限制返回结果集的大小 41.在远端如何建立standby数据库 42.怎样分析你的SQL语句的效率 43.自动备份Oracle数据库 44.总结SQL语句中的优化提示 45.使用Database Configuration Assistant安装第二个数据库 46.Oracle 数据库向 MS SQL Server 7.0 的迁移 Oracle1: 1. Decode()函数使用技巧(NT+IIS+ASP+ORACLE) 2. Dual伪列 3. EXP、IMP 命令详解 4. Exp-Imp大量数据 5. Export-Import 使用技巧与常见错误 6. NULL 使用详解 7. Oracle for NT系统实用工具介绍 8. Oraclemysql 的一些简单命令对比参照 9. Oracle8i和Microsoft SQL Server7_0比较 10. Oracle8的不安全因素及几点说明 11. Oracle常见错误代码 12. Oracle常用Script 13. Oracle常用数据字典 14. ORACLE回滚段管理(上) 15. ORACLE回滚段管理(下) 16. Oracle基于Client-Server的性能调整 17. Oracle数据库的安全策略 18. ORACLE数据库简介 19. Oracle数据库密码文件的使用和维护 20. Oracle数据库碎片整理 21. Oracle特殊包 22. Oradim工具的用法 23. PB如何连接Oracle数据库 24. ROLLBACK不能回滚的命令 25. 安装Oracle后,经常使用的修改表空间的SQL代码 26. 比较SQL Server与Oracle、DB2 27. 多个数据库时,如何设置默认数据库 28. 各种数据类型的比较 29. 漫谈oracle中的空值 30. 没有备份、只有归档日志,如何恢复数据文件 31. 哪些初始化参数最影响Oracle系统性能 32. 如何查看数据库的字符集 33. 如何启动ARCHIVELOG模式 34. 如何使‘CREATE TABLE AS SELECT’能支持ORDER BY ? 35. 如何使用归

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值