定义
什么是数据库:在硬盘中开辟一块空间,用来存储数据的统称;
为什么用数据库:
1、数据库可以实现数据共享;
2、减少数据冗余;
3、数据的独立性;
4、数据的一致性;
5、故障恢复;
结构类型
数据的结构类型:
层次(树状)数据结构 -> 网状数据结构 -> 关系数据结构(目前) 对象数据结构(未来可能趋势)
数据库提供商:
Oracle/SyBase/DB2 大型数据库
Mysql/sqlServer 小型数据库
Access 微型数据库
Oracle
Oracle数据库:
甲骨文公司,提供的一款面向网络计算,支持关系对象模型,分布式的一款数据库产品;
Oracle的安装:
1、查看注册列表 - 调用regedit命令,如有oracle注册表,将其删除;
2、数据库的组成:1、DB - 存储数据的库; 2、DBMS - 数据库管理系统,是一套软件,用于数据库中数据的操作、维护、优化等
数据库的使用者:
1、DBA - 数据库管理员
2、程序开发者
数据库的表结构:
行、列
第一行:表头
操作语言
操作Oracle数据库的语言 - SQL语言
结构化查询语言 - sql语言
1、数据定义语言 - DDL
1.Create创建 、 drop销毁 、 alter修改
2、数据操作语言 - DML
1.Insert插入 、 update修改 、 delete删除
3、事务控制语言 - TCL
1.事物提交的 commit/rollback
4、数据查询语言 - DQL
1.Select查询语言
5、数据控制语言 - DCL
1.grant给与权限 2.revoke撤销权限
数据库用户
SYS / SYSTEM / DBA
开始sql之旅
--为scott解锁
alter user scott account unlock
--为scott设置密码
alter user scott identified by tiger
--emp 职员表
--dept 部门表
--salgrade 工资表
--bouns 奖金表
select * from emp
select * from dept
select * from salgrade
select * from bonus
--语法结构
--select子句
--from子句
select *|字段名 from 表名
--SQL编译输入不区分大小写,编译器会自动变成小写 (仅限于关键字,字段)
select ename,EMPNO from emp
数据类型
--数字类型
--number(n,p)
--字符类型
--char(n)|varchar(n)长度可变
--char(20)长度不可变
--varchar(20)长度可变
--拼接 ||
--拼接员工表的名字跟岗位
select ename||job from emp
--将名字与岗位之间用逗号间隔
select ename||','||job from emp --用单引号
--去重 distinct
select distinct deptno from emp
select * from dept
--null,不能参加数学运算
select ename,sal*12 from emp
select ename,sal*12+comm from emp
--别名 -- 用双引号
select ename as "姓名" from emp
select ename "姓名" from emp
--日期类型
--date
--where子句
--查询smith的信息
select * from emp where ename = 'SMITH'
--where 子句应用范围
--where子句 跟在from子句后面
--where子句 可以写条件表达式,列名,字面量
--where子句后面不可以用别名
--逻辑运算符(两个条件产生一个结果)
--and 与
--两个条件都满足的时候才会被检索出来
--查询员工表,部门号是20,工资大于1000;
select * from emp where deptno = 20 and sal > 1000
--or 或
--只要有一个满足,就会被检索出来
--查询部门号20,或部门号10 的员工
select * from emp where deptno = 20 or deptno = 10
--not 非 (辅助关键字is)
--查询员工表中提成不为空 的员工
select * from emp where comm is not null
--多条件选择,多个条件可以进行匹配
-- in (条件1,条件2...)
--查询员工表中,岗位是经理和职员的信息
select * from emp where job in ('CLERK','SALESMAN')
--在... ...和... ...之间的 between and
--设定匹配区域(范围)
--查询员工工资不在1000到1500之间的
select * from emp where sal not between 1100 and 1500
--字符串匹配
--查询员工表名字中有C的员工信息
select * from emp where ename like '%C%'
--排序
--语法结构
--select ... ...
--from子句... ...
--where子句... ...
--order by排序... ...
--查询员工表中 工资 升序 排序( desc降序)
select *
from emp
where sal between 1000 and 2000 order by deptno desc
--多条件排序
--查询员工表中要求部门按升序排序,员工工资按照降序排序
select *
from emp
order by deptno,sal desc