数据库总结
语言分类 |
详细描述 |
1.数据查询语句 |
Select |
2.数据操纵语句(DML) |
Insert; Update; Delete; |
3.数据库定义语句(DDL) |
Create; Alter; Drop; Rename; Truncate; |
4.事物控制语句(TC) |
Commit Rollback Savepoint; |
5.数据控制语句(DCL) |
Grant Revoke |
数据:是数据库的基本对象,是描述失误符号记录。
数据库:是存储管理数据、展现的建立在计算机上的仓库
1962年开始有了数据库的概念。
数据库存储配置,测试计划,测试用例,测试方案。
测试环境的搭建需要备份到数据库中。
关系型数据库:1.Oracle,2.DB2,3.SQL Server,4.mysql,5.Access,6.MariaDB
Redis存储定位的数据,是网络数据库,开源的使用ANSI C语言。
MySQL
SQL Server
Qracle的特点:多平台、性能最高、获得最高安全认证。
Qracle的版本: 1.8i (i:internet)
2.9i
3.10g (g:grid)
4.11g
5.12c (c:cloud)
oracle根目录中的文件:db_1:主要存放Oracle系统的相关软件,包括可执行文件,网络配置文件
admin:主要存放数据库运行过程中产生的跟踪文件
Bdump:资格子目录分贝用于保存后台进程跟踪文件
Cdump:发生崩溃是操作系统进程用来写入的内核转出文件
oradata:存放数据库的物理文件(出错、配置文件)
flash_recovery_area:数据库启动自动备份文件,闪回日志文件
Create:
tnsnames.ora中ORCL123指的是需要输入的服务名。
服务器端设置
listener.ora:服务器监听进程的配置文件
sqlnet.ora:
第一章 SQL编写规范
明确的规范
1.sql语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。
2.连接符前后加上一个空格。
3.对较为复杂的sql语句
其他注意事项
1.SQL命令的大小写是不敏感的。
2.SQL命令可写成一行或多行
第二章 SQL语言基础
SQL语言分类
1.数据查询语句:select
2.数据操纵语句(DML:data manipulation):insert,update,delete
基本的select命令
1.select:要返回的列或表示式
2.from:从中检索数据的表
3.where:行级过滤
4.group by:分组说明
5.having:祖级过滤
6.order by:输出排序顺序
7.limit:要检索的行数
SQL语句规则
1.SQL语句是大小写不敏感的
2.SQL语句
算数表达式
先乘除后加减,可括号
定义空值
空值是指不可用,不知道,不适用的值。
空值不等于零或空格
包括空值的算法表达式等于空。
定义列的别名
1.改变列的标题头
2.使用计算结果
3.列的别名(可以使用as)
4.如果使用特殊字符,
连接操作
1.将列或字符与其他列连接
文字字符串
文字字符串是一个包括在SELECT列表中的字符,表达式,或数字。
日期和字符型文字字符必须用单引号括起来。
每返回一条字符被输出一次。
构造命令
重记录
缺省情况下查询显示
第三章 限定和排序数据
1.限制某一查询的数据
限定所选择的记录
使用WHERE子句限定返回的记录
WHERE子句在FROM后面
字符串和日期
1.字符串和日期要用单引号括起来
2.字符串是大小写敏感的,日期值是格式敏感的
3.缺省名称是DAY-M-Y
比较运算符
大于小于
其他比较运算符
BETWEEN...AND...:在两值之间
IN(list):匹配列出的值
LIKE:匹配一个字符模式
IS NULL:是空值
mgr in
逻辑运算符
AND,OR,NOT
<>:不等于
优先级规则
括号将跨越所有优先级规则:
1.所有的比较运算*、+-
2.NOT
3.AND
4.OR
order by:排序
asc:升序
desc:降序
连接数据库的方式: 1.sqlplus
2.在客户端登录使用sqlplus并输入用户和密码
3.isqlplus在web端登录
遇到的问题:
在安装过程中,scott用户没解锁。
解决方案:
1.输入sqlplus sys as sysdba
2.输入sqlplus sys/tiger as sysdba/[email protected]
第四章 单组函数
1.描述可在SQL中使用的各种函数
2.在SELECT语句中可使用字符,数字,日期函数
3.描述转换函数的使用
SQL函数
两种SQL函数
单行函数
1.操作数据项
2.接受参数并返回一个值
3.对每一返回行起作用
4.每一行返回一个结果
5.可修改数据类型
6.可使用嵌套
function_name(column|expression,[arg1,arg2,...])
字符函数
字符函数说明
REPLACE中的x必须是字符串。
使用大小写转换
显示员工号,名称,部门号:
SQL>SELECT empno, ename,deptno
2 FROM emp
3 WHERE ename = ‘blake‘;
SQL>SELECT empno, ename,deptno
2 FROM emp
3 WHERE LOWER(ename) = ‘blake‘;
EMPNO ENAME DEPTNO
---------- ---------------- --------------------
7698 BLAKE 30
使用字符处理函数
SQL>SELECT ename,CONCAT (ename,job),LENGTH(ename),
2 INSTR(ename,‘A‘)
3 FROM emp
4 WHERE SUBSTR(job,1,5) = ‘SALES‘;
ENAME CONCAT(ENAME,JOB) LENGTH(ENAME) INSTR(ENAME,‘A‘)
------------------ ------------------------------ ------------------------- -------------------------
MARTIN MARTINSALESMAN 6
数字函数
使用ROUND函数
使用TRUNG函数
使用函数
1.Oracle以内部数字存储日期:世纪,年,月,日,小时,分钟,秒。
2.缺省的日期格式是DD-MON-YY。
3.SYSDATE是返回日期和时间的函数。
4.DUAL是用来查看SYSDATE的虚表。
使用日期运算
日期函数
转换函数
隐含的数据类型转换
清楚的数据类型转换
TO_CHAR函数操作日期
TO_CHAR(date,‘fmt‘)
格式规则
1.必须用单引号括起来,并且是大小写敏感。
2.可包含任何有效的日期格式。
3.有一个fm元素,用于填补空格或禁止前面的零。
4.使用都好分离日期值。
日期格式基础
使用TO_CHAR函数处理日期——FF
TO_CHAR函数处理数字
TO_NUMBER和TO_DATE函数
1.使用TO_NUMBER函数将字符转换为数字:
TO_NUMBER(char)
2.使用TO_DATE函数将字符转换为日期:
TO_DATE(char[,‘fmt‘])
禁止转换:
1.十进制与十六进制:
SAL>select to_char(2463,‘xxxx‘)fromdual;
TO_CH
-----
99f
已选择1行。
十六进制与十进制
SQL>select to_number(‘99f‘,‘xxxx‘)from dual;
TO_NUMBER(‘99F‘,‘XXXX‘)
---------------------------
2463
已选择1行。
NVL函数
将空值转换为实际的值:
1.数据格式可以是日期,字符,数字。
2.数据类型必须匹配。
NVL(comm,0)
NVL(hiredate,‘01-JAN-97‘)????
NVL(job,‘NO JOB Yet‘)
使用NVL函数
NVL2函数
NVL2(expr1,expr2,expr3)
如果expr1不为Null,返回expr2,如果expr1为Null,返回expr3.
expr1可以为任何数据类型。
DECODE函数
使用DECODE函数
嵌套函数
嵌套函数举例
SQL指令和iSQL*Plus命令的比较
isqlplus
SQL*plus的编辑命令
1.I[NPUT]:输入SQL语句
2.I[NPUT]text
3.L[IST]n
4.L[IST]m n
5.R[UN]:执行SQL语句
6.n
7.n text
8.0 text
第五章 从多个表显示数据
1.使用相等和不等连结写SELECT语句来访问多个表
2.使用外连接查询数据。
3.表的自连接
从多个表中获取数据
什么是连接
笛卡尔结果
1.笛卡尔结果形成于:
1.连接条件被省略
2.连接条件无效
3.第一条表的所有记录连接到第二个表的所有记录
2.为了避免笛卡尔结果我们总是在WHERE子句中使用有效连接。
生成笛卡尔结果
笛卡尔举例
连接的类型
什么是等值连接
使用等值连接获得的数据记录
限定列名
1.使用表名作为前缀在多个表中指定列名。
2.使用表前缀可以改进性能。
3.使用列的别名以区别不同表的同名列。
多表连接
非等值连接
使用非等值连接获取数值记录
表的自连接
外连接
使用外链接
上课练习
第六章 使用组函数
什么是分组函数
分组函数的类型
1.AVG([DISTINCT|ALL]n):求平均数
2.SUM([DISTINCT|ALL]n):求和
3.COUNT({*|[DISTINCT|ALL]expr):计数
4.MAX([DISTINCT|ALL]expr):求最大值
5.MIN([DISTINCT|ALL]expr):最小值
6.STDDEV([DISTINCT|ALL]x):标准差
7.VARIANCE([DISTINCT|ALL]x):方差
使用AVG和SUM函数
使用MIN和MAX函数
使用COUNT函数
分组函数和空值
在分组函数中使用NVL函数
产生数据组
GROUP BY子句
使用GROUP BY子句
多列分组
在多列上使用GROUP BY子句
使用分组函数的非法查询--E
使用分组函数时的非法语句
HAVING子句
嵌套组函数
小结
第七章 子查询
使用子查询解决问题
子查询
使用子查询
使用子查询的规则
1.子查询要用括号括起来
2.只查询放在比较运算符的右边
3.子查询中不要加ORDER BY子句
4.对单行子查询使用单行运算符
5.对多行子查询使用多行运算符
子查询的种类
单行子查询
在子查询中使用分组函数
在子查询中使用HAVING语句
错误的子查询
这样的子查询有效吗
多行子查询
在多行子查询中使用ANY运算符