玩转oracle

小型数据库:access、foxbase

中型数据库:mysql、sql server、informix

大型数据库:sybase、oracle、db2

如何选取适合的数据库:

项目的规模:负载量多大、用户多大;成本;安全性

DBA认证(数据库管理员)

sys用户是超级用户,具有最高权限,默认密码manager

system用户是管理操作员,没有created database权限,默认密码change_on_install

oracle常用SQL语法和数据对象

SQL 语句分类:按其功能分为5类,即数据查询语句、数据操纵语句、数据定义语句、事务控制语句和数据控制语句。

DML语言,比如update,delete,insert等修改表中数据的需要commit;
DDL语言,比如create,drop等改变表结构的,就不需要写commit(因为内部隐藏了commit);

1、数据控制语句(DML)部分

1)INSERT

2)DELETE对表进行删除

3)  UPDATE

2、数据定义语句(DDL)部分

1)CREATE

2)ALTER改变系统参数

3)DROP

4)TRUNCATE

3、查询语句(SELECT)部分

4、oracle里常用的数据对象

1)索引(INDEX)

2)视图(VIEW)

3)同义词(SYNONMY)

4)数据库链接(DATABASE LINK)

5、权限管理(DCL)语句

1)GRANT 赋予权限

2)REVOKE 回收权限

6、事务控制语句

COMMIT:用于提交由DML语句操作的事务

ROLLBACK:用于回滚DML语句改变了的数据

my objects->Tables ->右键

  查看、查询数据(查询出来,仅显示一部分)

SQL的查询语句

关键字大写其他小写以做区分

特定列的查询、where语句、在SQL语句中使用列的别名

创建别名时,在列名后使用AS关键字,之后紧跟别名,或者在列名后加空格,然后紧跟着别名(但是此时的列标题在显示时为别名的大写格式)。如果要保持别名的格式,可以使用双引号

推荐书写SQL语句的规范:

1) SQL语句的关键字要大写,对象名小写

2) 缩进对齐,这样便于阅读

3) 每个子句一行

单行函数

单行函数分为字符型单行函数、数字型单行函数和日期型单行函数

1)字符型单行函数

LOWER、UPPER、INITCAP(首字母大写)、CONCAT(连接两个字符串)、SUBSTR(从一个字符串中获取一个子串)、LENGTH(计算字符串中字符的个数)、INSTR、TRIM(在字符串中剪切一个字符)、REPLACE

2)数字型单行函数

ROUND(四舍五入保留指定位小数)、TRUNC(截断,不四舍五入)、MOD

3) 日期型单行函数

SYSDATE、MONTHS_BETWEEN(得到两个日期之间的月数)、ADD_MONTHS、NEXT_DAY、 LAST_DAY

空值和空值处理函数

NVL(expr1, expr2)如果expr1的值为空值,则返回expr2的值,否则返回expr1的值

NVL2(expr1, expr2, expr3)如果expr1值为空,返回expr3,若不为空,返回expr2

NULLIF(expr1,expr2)如果两者相等返回空值NULL,若不相等返回expr1(要求expr1不为空)

COALESCE(expr1,expr2...)返回第一个不为空的表达式的值

条件表达式

CASE、DECODE

分组函数(分组函数作用于一组数据,返回一个值(如员工工资最大值))分组函数会自动忽略空值

AVG(求均值)、SUM(求和)、MAX、MIN、COUNT(返回经计算得到的返回行数,包括空行和重复的行)、VM_concat(行转列)、GROUP BY、分组函数的嵌套使用、HAVING子句

NVL函数-滤空函数

使用多个列分组

所有包含于SELECT列表中,而未包含于组函数的列都必须包含于GROUP BY子句中

where 使得分组记录数大大降低,从而提高效率

a命令 追加 eg:a  (两个或以上空格) desc

/执行  ed编辑

group by的增强:group by rollup(a,b)等价于group by a,b + group by a + group by null

desc a 查询表结构 

select DISTINCT(CAR_ID) from HIS_GPS_DATA t 去除重复

操作符

使用关联查询

使用外关联查询

分组函数的概念、使用、使用Group by子句数据分组、使用Having子句过滤分组结果集 

 多表查询、笛卡尔集(每张表的列数相加,行数相乘)、等值连接、不等值连接、外连接、自连接(通过别名,将同一张表视为多张表,不适合操作大表)、层次查询(某些层面上可以取代自连接,本质上是单表查询)

为了避免笛卡尔全集,可以在where加入有效的连接条件

在实际运行环境下,应避免使用笛卡尔全集

右外连接where e.deptno(+)=d.deptno

左外连接 where e.deptno=d.deptno(+)

子查询语句放到小括号里面

不可以在GROUP by子句后插入子查询(from 后面子查询)

行号只能使用<,<=不能使用>,>=

VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容

原文地址:https://www.cnblogs.com/sxbjdl/p/5748503.html