SQL:IBM的圣约瑟(SanJose),SEQUEL 2(也就是现在的SQL语言)

1979.Oracle首先提出提供了商用的SQL语言

1986.10美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3.135-1986),后来被ISO采纳为国际标准

目前大部分数据库都遵守ANSI SQL 89标准(99-最高)

SQL语言分类:

DQL(数据查询语言):SELECT

DML(数据操作语言):INSERT UPDATE DELETE

TCL(事务控制语言):COMMIT ROLLBACK SAVEPOINT

DDL(数据定义语言):CREATE ALTER DROP

DCL(数据控制语言):GRANT REVOKE

用户模式

模式:数据库对象的集合,是一个数据库用户所有,并且有与该用户相同的名称。在一个模式内部不可以直接访问其他模式的数据库对象,即使在具有访问权限的情况下,也需要指定模式名称才可以访问其他模式的数据库对象

模式对象是由用户创建的逻辑结构,用以存储或引用数据。

SCOTT模式:Oracle提供的实例模式,连接密码:tiger

伪列:ROWID,长度18位,包含了该行数据在Oracle数据库中的物理地址

LIKE:_(代表任意一个字符)  %(任意数量的字符)

GROUP BY:当用户指定 GROUP BY时,选择列表中任一非聚集表达式内的所有列都应包含在GROUP BY列表中,或者GROUP BY 表达式必须与选择列表表达式完全匹配。

HAVING:子句是对GROUP BY 选择出来的结果进行筛选,类似于 WHERE 但是,它可以使用聚集函数

多表关联查询

  1.内连接

    select e.empno 员工编号,e.ename 员工姓名,d.dname 部门 from emp e inner join dept d on e.deptno=d.deptno;

  所有记录行都是满足连接条件的(结果集较小)

  2.外连接

外连接扩展了内连接的结果集,还会返回一部分或全部不匹配的行,这主要取决于外链接的种类:

左外连接:LEFT OUTER JOIN/LEFT JOIN  列出左表所有

右外连接:RIGHT OUTER JOIN/RIGHT JOIN  列出右表所有

完全外连接:FULL OUTER JOIN/FULL JOIN  两个表所有

左外连接:

  select e.empno,e.ename,e.job,d.deptno,d.dname from emp e left join dept d on e.deptno=d.deptno;

  3.自然连接

两个表中有相同名称的列   

select empno,ename,job,dname from emp natural join dept where sal>2000;

  由于自然连接强制要求表之间必须具有相同的列名称,这样容易在设计表时出现不可预知的错误,所以在实际应用系统开发中很少用到。但在特殊情况下还是有一定的使用价值。 另外,不能为列指定限定词(表名、表的别名),否则Oracle系统会弹出“ORA-25155:NATURAL连接中不能使用的列不能有限定词"的错误提示。

  4.自连接

对自身表的一种引用

select em2.ename 上层管理者,em1.ename 下属员工 from emp em1 left join emp em2 on em1.mgr=em2.empno order by em1.mgr

  5.交叉连接

select count(*) from dept cross join emp;  不需要任何连接条件,交叉连接的执行结果是一个笛卡尔积。

最新文章

  1. XE版本 InputQuery 可以同时填多个输入值
  2. LibSVM for Python 使用
  3. WCF分分钟入门
  4. Metro-UI系统-1-tile标签
  5. Memcached 笔记与总结(2)编译 php-memcache 扩展
  6. Android中focusable属性的妙用——底层按钮的实现
  7. poj 3185 The Water Bowls(反转)
  8. c++中string::function集合
  9. Gradle 1.12 翻译——第十六章. 使用文件
  10. Day4:T3搜索 T4数学题排列组合
  11. 在win7/8/10鼠标右键添加带管理员权限的“在此处打开命令窗口”
  12. 安装pip工具
  13. HTML Element 与 Node 的区别
  14. java数据结构与算法(一)
  15. SQL语句 (一)
  16. vuejs小白入门
  17. effective java——32用EnumSet代替位域
  18. python工具使用笔记
  19. express中session的使用
  20. EntityFramWork(3 code First 约定)

热门文章

  1. ichunqiu在线挑战--网站综合渗透实验 writeup
  2. 8786:方格取数 (多线程dp)
  3. BZOJ 1040 [ZJOI2008]骑士 (基环树+树形DP)
  4. 67.Task Scheduler(任务规划)
  5. Can't determine basedir from my_print_defaults mysqld
  6. 分页插件 Bootstrap Paginator
  7. Nginx环境部署
  8. windows平台搭建Mongo数据库复制集(类似集群)(一)
  9. find按照文件大小查找
  10. Oracle12c RAC数据导出至Oracle11g