定义
什么是数据库:在硬盘中开辟一块空间,用来存储数据的统称;
为什么用数据库:
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