【华为网络技术大赛】数据库基础原理

2018-04-17  本文已影响0人  Mjolnir1107

SELECT查询语句基础

SELECT的三种能力:
SELECT的语法:
SELECT语法
NULL值:

NULL值是不可用,且未分配的,和0或者空格是不一样的,甚至没有定义类型。任何包含NULL值的算数表达式,其结果判定为NULL。

列的别名:
  1. 重命名一个列的标题
  2. 对运算很有帮助
  3. 紧跟在列名后面,或者之间加AS
  4. 如果别名包含空格或特殊字符或大小写敏感,使用双引号
级联操作:

将列或字符串和其它列串联,由(||)表示,结果是一个完整的字符串。

消除重复行:

在SELECT后直接跟DISTINCT关键字就可以

查询数据的限制和排序

限制:

WHERE 如果限制的是字符串或者日期要加单引号

LIKE里面用的是类似正则

排序:

ORDER BY 降序DESC
有多个列,以从左到右依次排序

单行函数

字符串:

LOWER-->转小写
UOOER-->转大写
INITCAP-->首字母大写
CONCAT-->字符连接
SUBSTR-->取子串
LENGTH-->取字符串长度
INSTR-->返回子字符串的位置

数字:

ROUND-->四舍五入到指定位
TRUNC-->截取到指定位

日期:

SYSDATE-->系统当前日期

相互转换

分组函数

分组的关键字 GROUP BY
对分组限制的关键字 HAVING

多表查询

自连接
等值连接
外连接

子查询

子查询最常用于WHERE子句,但不限于WHERE

  1. 单行子查询
  1. 多行子查询
操作符 描述
in 等于列表中的任何一个
any 和子查询返回的任意一个值比较
all 和子查询返回的所有值比较

表结构操作语句

数据类型的定义
数据类型 描述 例子
VARCHAR2(L) 可变长度的字符串 VARCHAR2(20)
DATE 日期数据类型(日-月-年) DD-MM-YY
NUMBER(P,S) 数字,P为整数,S为小数 NUMBER(10,2)
BOOLEAN 布尔型 (可为NULL) TRUE FALSE
列约束

Not null(非空)
Unique(唯一)
Primary key(主键)-->这就是索引,所以需要非空且唯一
Foreign key(外键)-->两张表有关联,操作A表时需确认B表是否存在该值
Check(检查)

表约束

Unique(唯一)
Primary key(主键)-->这就是索引,所以需要非空且唯一
Foreign key(外键)
Check(检查)

增加列
删除列
修改表名
修改列名
删除表格

删除内容和定义,释放空间

查看表结构

数据操作语句(DML)

1. insert

隐式方法

显式方法

2. update
3. delete

事务操作语句

数据库事务:

对数据库的若干操作组成的一个单元,这些操作要么都完成,要么都取消,从而保证数据满足一致性的要求。

事务开始:

第一个DML 语句执行时

事务结束:

只有COMMIT之后所有的用户才可以都观察到事务的结果

SQL语句简单优化

自测题

  1. Oracle数据库分区表上的索引可以是分区索引,也可以是非分区索引。
  2. 当用户编译一条SQL语句时,进程会访问Oracle内存中的什么模块?
    共享池

ORACLE将执行过的SQL语句存放在内存的共享池(shared buffer pool)中,可以被所有的数据库用户共享 你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同, ORACLE就能很快获得已经被解析的语句以及最好的 执行路径. 这个功能大大地提高了SQL的执行性能并节省了内存的使用

  1. 使用RMAN对数据库执行恢复时,数据库应该处于什么状态?
    mount状态
  2. 如果需要查询数据库中的表数据,数据库需要处在什么状态?
    open状态
  1. 当Oracle内存管理模式为AMM(Auto Memory Management)时,下列哪些内存模块可以根据工作量自动调整大小?
    Large pool
    Shared pool

SGA_TARGET 指定了SGA可以使用的最大内存大小,而SGA中各个内存的大小由Oracle自行控制,不需要人为指定。Oracle 可以随时调节各个区域的大小,使之达到系统性能最佳状态的个最合理大小,并且控制他们之和在SGA_TARGET 指定的值之内。一旦给SGA_TARGET指定值后(默认为0,即没有启动ASMM),就自动启动了ASMM特性。如果不设置SGA_TARGET,则自动共享内存管理功能被禁止。
设置了SGA_TARGET后,以下的SGA内存区就可以由ASMM来自动调整: ASMM只能自动调整5个内存池的大小,它们是:shared pool、buffer cache、large pool、java pool和stream pool。我们不再需要设置shared_pool_size、db_cache_size、large_pool_size、 java_pool_size、streams_pool_size这五个初始化参数。而其他的内存池,比如log buffer、keep buffer cache等仍然需要DBA手工进行调整。

上一篇 下一篇

猜你喜欢

热点阅读