oracle基本介绍

oracle关系数据库

市面上流行的关系型数据库
大型数据库:oracle(甲骨文) DB2(IBM)sysbase 百万亿数据级别
中型数据库:mysql(甲骨文)sqlservlet(微软) 百万数据级别
小型数据库:access,sqlite(安卓) 文件数据库
oracle默认设置
1 默认用户
sys 超级管理员
system 管理员
2 默认端口
oracle 1521
mysql 3306
sqlserver 1433
oracle的数据类型
1 数值型
number 用来存储数值型 最大取值范围-10的3-8次方 到10的3-8次方
number(3) 括号里面的参数成为精度,表示3位的整数,取值范围是-999到999;
number(5,2) 括号里面的参数 5代表整个的精度 2代表小数位 所以整数位是3, 取值范围是-999.99到999.99;
2 字符型
char(length) length取值范围是1-2000;以固定长度存储, 如果实际长度没有达到固定长度,以空格填充, 查询效率高 但是浪费存储空间
varchar(length) length取值范围是1-4000;以实际长度存储, 查询效率低 但是节约存储空间
varchar2(length) 使用与varchar一模一样, 在oracle里面 强烈建议使用varchar2 对于版本的兼容性会很好
3 时间
date 精确到年月日时分秒
timestamp 精确到年月日时分毫秒
4 大数据类型
clob 存储大小4G 字符大数据类型 只能存储字符
blob 存储大小4G 二进制大数据类型 比如:图片 视频
oracle语句分类
1 DDL 数据库定义语言(与表结构有关)
create drop alter...
2 DML 数据库操作语句(与表数据有关)
insert update delete
3 DQL 数据库查询语言
select
4 DCL 数据库操作语言
grant
DDL
1 表的创建
create table表名(
字段名1 数据类型,
字段名2 数据类型,
字段名n.数据类型
);// 最后一个字段不需要逗号
2 表修改
a 添加表字段
alter table 表名 add(表字段 数据类型)
b.修改表字段
alter table 表名 modify(表字段 数据类型)//表字段一定是在表中存在的
c.删除表字段
alter table 表名 drop column 字段名;
3 删除表
drop table 表名;
操作表内容(DML)-必须配合事物使用
1 插入语句
insert into 表名(字段名1,字段名2,字段n)values(值1,值2,值n);
commit;
数字:直接写不用任何修饰
字符:需要用''单引号括起来
时间:to_date('1984-06-04 12:00:00','yyyy-MM-dd HH:mi:ss'));字符转时间, sysdate 获取系统当前时间
注:(字段名1 字段名2 字段名n)可以省略不写,但值一定要按表字母顺序写入, 不推荐使用
2 修改语句
update 表名 set 字段名1 = 值1 字段名2 = 值2 字段名n = 值n where 条件字段 = 条件值
注:修改语句一定要跟where条件
3 删除语句
delete from 表名 where 条件字段 = 条件值
DQL查询语句
1 查询语句
select *from 表名 查询表的全部数据 全部列 , 查询效率很慢 不建议使用
select 字段1,字段2 from 表名 查询全部数据部分列
select 字段1,字段2 from 表名 where 条件字段 = 条件值 查询部分数据部分列
2 where条件
条件: = < > <= >= != <> in notin exit
条件与条件之间用and或or链接
and表示两个条件都必须符合
or表示两个条件满足一个就行
3 模糊查询
在select条件中使用like关键字 称为模糊查询 只能作用在字符上
模糊查询分3类:
a:字段名 like '马%' 后模糊查询 以字符 ‘马’开头的都会查询出来
b:字段名 like '%马' 前模糊查询 以字符 ‘马’结尾的都会查询出来
b:字段名 like '%马%' 全模糊查询 包含‘马’的都会查询出来
注:模糊查询效率很低
4、in与not in
在sql中where条件使用in查询,查询字段是否在一个集合里面, 只要符合集合中的一个元素就行。
select * from 表名 where 查询字段 in (值1, 值2, ..., 值N);
也可以用于嵌套查询
select * from 表名 where 查询字段 in (select 查询字段 from 表名);
5、exists与not exists
在sql中where条件中使用exists查询,只在乎exists子句是否有数据,如果有呈现数据,如果没有一条都不显示。
select * from 表名 t1 where 查询字段 exists (select 查询字段 from 表名 T2 where t1.字段 = t2.字段)



你可能感兴趣的:(oracle)