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;  不需要任何连接条件,交叉连接的执行结果是一个笛卡尔积。

SQL语言基础-基本概念的更多相关文章

  1. SQL语言基础和数据库操作

    Sql语言基础: 核心思想:我们自己构造一段查询的代码,然后添加到语句后,从而得到想要的某些数据. Mysql是一种开源数据库 APP Serv:Apache+php+mysql,相当于phpstud ...

  2. PL/SQL语言基础

    PL/SQL语言基础 进行PL/SQL编程前,要打开输出set serveroutput on 1.创建一个匿名PL/SQL块,将下列字符输出到屏幕:"My PL/SQL Block Wor ...

  3. orcale 之 SQL 语言基础

    SQL 全称是结构化查询语句(Structure Query Language),是数据库操作的国际化语言,对所有的数据库产品都要支持. SQL 语言的分类 我们按照其功能可以大致分为四类: 数据定义 ...

  4. 浅谈PL/SQL语言基础

    在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下 ...

  5. 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式

    目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...

  6. .NET面试题解析(11)-SQL语言基础及数据库基本原理

      系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念.数据优化等.抱砖引玉,权当一个综合复习! ...

  7. .NET面试题解析(9)-SQL语言基础及数据库基本原理

    见面试题 1. 索引的作用?她的优点缺点是什么? 2. 介绍存储过程基本概念和 她的优缺点? 3. 使用索引有哪些需要注意的地方? 4. 索引碎片是如何产生的?有什么危害?又该如何处理? 5. 锁的目 ...

  8. OCP认证之Oracle的SQL语言基础(一)

    一.Oracle命令类别 数据操纵语言(DML):select;insert;delete;update;merge 数据定义语言(DDL):create;alter;drop;truncate 事物 ...

  9. SQL语言基础

    主要学习链接1 http://www.cnblogs.com/anding/p/5281558.html 搜索学习链接2 http://www.cnblogs.com/libingql/p/41342 ...

随机推荐

  1. HTML5-Classlist样式操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Navicat 破解方法

    一.介绍 Navicat是一套快速.可靠的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开发人员及中小企业的需要.Navicat 是以直觉化的图形用户界面而建的 ...

  3. 《JAVA设计模式》之迭代器模式(Iterator)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述迭代子(Iterator)模式的: 迭代子模式又叫游标(Cursor)模式,是对象的行为模式.迭代子模式可以顺序地访问一个聚集中的元素而不 ...

  4. Java数组模拟栈

    一.概述 注意:模拟战还可以用链表 二.代码 public class ArrayStack { @Test public void test() { Stack s = new Stack(5); ...

  5. BZOJ 1937 (luogu 4412) (KM+LCA)

    题面 传送门 分析 根据贪心的思想我们得到几条性质: 1.生成树上的边权减小,非树边的边权增加 2.每条边最多被修改一次 设改变量的绝对值为d 对于一条非树边\(j:(u,v)\),树上u->v ...

  6. P3773 [CTSC2017]吉夫特

    传送门 看到组合数在模 $2$ 意义下的乘积,考虑用 $lucas$ 定理把组合数拆开 $lucas$ 告诉我们,$C(n,m)$ 在模 $k$ 意义下的值,相当于 $n,m$ 在 $k$ 进制下每一 ...

  7. C语言如何打印出%

    1. 敲ASCII码,但系我记不住呀! 2. 两个%%: #include <stdio.h> int main() { printf("%%\n"); printf( ...

  8. MySQL05-- 客户端工具及SQL语句

    目录 MySQL客户端工具及SQL语句 一.客户端命令介绍 二.接收用户的SQL语句 三.字符集定义 四.字符集设置 五.select的高级用法(扩展) MySQL客户端工具及SQL语句 一.客户端命 ...

  9. linux的定时任务--crontab

    cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动.关闭这个服务: /sbin/service c ...

  10. Sass-插值#{}

    使用 CSS 预处理器语言的一个主要原因是想使用 Sass 获得一个更好的结构体系.比如说你想写更干净的.高效的和面向对象的 CSS.Sass 中的插值(Interpolation)就是重要的一部分. ...