简介
Oracle Database,又名 Oracle RDBMS,简称 Oracle。Oracle 数据库系统是美国 Oracle 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(client/server)或B/S体系结构的数据库之一。
数据文件(dbf)
数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中,而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。
表空间
表空间是 Oracle 对物理数据库上相关数据文件(ORA 或者 DBF 文件)的逻辑映射。一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为 system 表空间)。
DDL:create、drop
DML:insert、update、delete
DQL:select
DCL:grant、revoke
创建表空间: 逻辑单位, 通常我们新建一个项目时,就会去新建一个表空间,在表空间中创建用户来创建表
操作如下:
create tablespace lianxi datafile 'd:\lianxi.dbf' size 100m autoextend on next 10m;
删除表空间使用drop命令,如下:
drop tablespace lianxi;
用户
用户是在实例下建立的。不同实例中可以建相同名字的用户。
操作如下
create user zmj identified by 123456 default tablespace lianxi;
创建表
列的类型及说明:
类型 | 说明 |
varchar2 | 可变字符长度 |
char | 固定长度字符 |
number | 数字类型 |
date | 时间年月日时分秒 2017/4/13 9:43:49 |
timestamp | 时间戳 |
BLOB | 二进制大型对象 |
CLOB/LONG | 字符大型对象 |
示例
create table test1( name1 varchar2(10), name2 char(10), age number(2,3) );
插入数据
插入一条数据,使用insert。
insert into test1(name1,name2) values('hello','hello');
修改表
以创建数据库表增加新的一列数据
alter table test1 add phone varchar2(11);
更改已创建的列的类型
alter table test1 modify age varchar2(4);
修改表中列名
alter table test1 rename column age to gender;
删除列
alter table test1 drop column gender;
修改表名
rename test1 to test2;
删除表
drop table test2;
序列:
生成类似于 mysql中auto_increment 这种ID自动增长 1,2,3,4,5.... l
语法: create sequence 序列的名称 start with 从几开始 increment by 每次增长多少 maxvalue 最大值 | nomaxvalue minvalue 最小值 | nominvalue cycle | nocycle 是否循环 1,2,3,1,2,3 cache 缓存的数量3 | nocache 1,2,3,4,5,6 示例
create sequence seq_test1 start with 1 increment by 2 maxvalue 30 cycle cache 10;
使用
select seq_test1.nextval from dual; select seq_test1.currval from dual;
约束
列的约束: 约束主要是用来约束表中数据的规则 主键约束: primary key 不能为空, 必须唯一 非空约束 唯一约束 检查约束 check(条件) 在mysql中是可以写的,但是mysql直接忽略了检查约束 外键约束: 主要是用来约束从表A中的记录,必须是存在于主表B中
基本查询
SELECT语句
在这个SELECT语句中:
● 首先,需要指定要查询数据的表名。
● 其次,指定想要返回数据的列。 如果需要返回多个列,则需要用逗号(,)将这些列分隔。
SELECT column_1, column_2, ... FROM table_name;
ORDER BY子句
ORDER BY子句可以用来对一列或多列的结果集按升序或降序进行排序.
- ASC表示按升序排序
- DESC表示按降序排序
SELECT column_1, column_2, column_3, ... FROM table_name ORDER BY column_1 [ASC | DESC]
DISTINCT
DISTINCT可以用来过滤结果集中的重复行,确保SELECT子句中返回指定的一列或多列的值是唯一的
SELECT DISTINCT column_1 FROM table_name;
WHERE子句
WHERE子句指定SELECT语句返回符合搜索条件的行记录
SELECT column_1, column_2, ... FROM table_name WHERE 【判断条件】
Between子句
BETWEEN运算符可以用来在Oracle中选择值在一个范围内的行数据.
SELECT product_name, price FROM products WHERE price BETWEEN 500 AND 600 ORDER BY price;