SQL语言基础-基本概念
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语言基础-基本概念的更多相关文章
- SQL语言基础和数据库操作
		
Sql语言基础: 核心思想:我们自己构造一段查询的代码,然后添加到语句后,从而得到想要的某些数据. Mysql是一种开源数据库 APP Serv:Apache+php+mysql,相当于phpstud ...
 - PL/SQL语言基础
		
PL/SQL语言基础 进行PL/SQL编程前,要打开输出set serveroutput on 1.创建一个匿名PL/SQL块,将下列字符输出到屏幕:"My PL/SQL Block Wor ...
 - orcale 之 SQL 语言基础
		
SQL 全称是结构化查询语句(Structure Query Language),是数据库操作的国际化语言,对所有的数据库产品都要支持. SQL 语言的分类 我们按照其功能可以大致分为四类: 数据定义 ...
 - 浅谈PL/SQL语言基础
		
在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下 ...
 - 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式
		
目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...
 - .NET面试题解析(11)-SQL语言基础及数据库基本原理
		
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念.数据优化等.抱砖引玉,权当一个综合复习! ...
 - .NET面试题解析(9)-SQL语言基础及数据库基本原理
		
见面试题 1. 索引的作用?她的优点缺点是什么? 2. 介绍存储过程基本概念和 她的优缺点? 3. 使用索引有哪些需要注意的地方? 4. 索引碎片是如何产生的?有什么危害?又该如何处理? 5. 锁的目 ...
 - OCP认证之Oracle的SQL语言基础(一)
		
一.Oracle命令类别 数据操纵语言(DML):select;insert;delete;update;merge 数据定义语言(DDL):create;alter;drop;truncate 事物 ...
 - SQL语言基础
		
主要学习链接1 http://www.cnblogs.com/anding/p/5281558.html 搜索学习链接2 http://www.cnblogs.com/libingql/p/41342 ...
 
随机推荐
- Node.js实战6:定时器,使用timer延迟执行。
			
setTimeout 在nodejs中,通过setTimeout函数可以达到延迟执行的效果,这个函数也常被称为定时器. 一个简单的例子: console.log( (new Date()).getSe ...
 - [Linux] 025 yum 命令
			
1. 常用 yum 命令 (1) 查询 查询所有可用软件包列表 $ yum list 搜索服务器上所有和关键字相关的包 $ yum search 关键字 ps 有点像 Python 的 pip lis ...
 - centos下Linux C语言MD5的使用
			
在Linux C变成中用到MD5加密会使用到openssl库,下面给出的是一个简单的小Demo: #include <stdio.h> #include <openssl/md5.h ...
 - Join的7中情况
			
一.左外连接 SELECT * FROM A LEFT JOIN B ON A.KEY = B.KEY 二.右外连接 SELECT * FROM A RIGHT JOIN B ON A.KEY = B ...
 - mysql 分区与性能
			
数据库应用分为两类: OLTP(在线事务处理):如bolg.电子商务.网络游戏等 OLAP(在线分析处理):如数据仓库.数据集市 对于OLAP,分区可以很好的提高查询性能,应用大多数据需要频繁地扫描一 ...
 - 洛谷 P1886 滑动窗口(单调队列)
			
题目链接 https://www.luogu.org/problemnew/show/P1886 题目描述 现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口.现在这个从左边开始 ...
 - luoguP1505 [国家集训队]旅游(真的毒瘤)
			
luogu P1505 [国家集训队]旅游 题目 #include<iostream> #include<cstdio> #include<cstdlib> #in ...
 - CodeForces 295B Greg and Graph (floyd+离线)
			
<题目链接> 题目大意:给定$n$个点的有向完全带权图$(n\leq500)$,现在进行$n$次操作,每次操作从图中删除一个点(每删除一个点,都会将与它相关联的边都删除),问你每次删点之前 ...
 - Oracle 汉字占用字节数
			
在oracle中一个字符特别是中文字符占几个字节是与字符集有关的. 比如GBK,汉字就会占两个字节,英文1个:如果是UTF-8,汉字一般占3个字节,英文还是1个.但是一般情况下,我们都认为是 ...
 - git-ssh-keygen
			
ssh-keygen 先看本地是否已经有了密钥 cd ~/.ssh 该文件夹下会包含两个文件 id_rsa --私钥 id_rsa.pub --公钥 如果没有这两个文件的话就需要重新生成(有的话使用一 ...