一、数据库语言的四大分类
DQL
Data Query Language,数据查询语言
如 select
DML
Data Manipulation Language,数据操作语言
如 insert 、 update 、delete
DDL
Data Definition Language,数据定义语言
如create table 、alert table 、truncate table 、drop table
DCL
Data Control Language,数据控制语言
如grant 、deny 、revoke(收回授权)
二、数据库操作
Oracle创建表需要在表空间中创建,然后添加数据。
因此第一步为创建表空间,以下操作使用PL/SQL Developer创建
2.1 创建表空间
需使用有权限的账户创建
create tablespace example01 --创建表空间
datafile 'c:\example01.dbf' --文件路径
size 100m --文件大小
autoextend on --自动扩展开启
next 5m; --自动扩展的大小
可使用drop tablespace 表空间名; 语句删除表空间练习,但真实文件不会删除
2.2 创建用户
create user chenstars --用户名
identified by stars --密码
default tablespace example01; --设置用户的表空间
此时仅创建了用户,还需赋予用户权限,如connect登录权限,此处直接授予所有权限
grant dba to chenstars;
2.3 创建表
切换使用新创建的用户登录,创建表
create table product(
p_name varchar2(20), --oracle推荐使用varchar2可变字符长度
p_price number(4,2), --number(总长度,小数长度)
p_time date,
p_category varchar2(5)
);
可以看到表已经创建好了
2.4 列的操作
添加列
添加语句
alter table product add (
p_weight number(4,2),
p_color varchar2(5)
);
修改列类型
修改语句
alter table product modify p_weight varchar2(10);
修改列名
修改语句
alter table product rename column p_time to p_puttime;
删除列
删除语句
alter table product drop column p_weight;
2.5 列约束
直接使用列约束创建表,先删除旧表
drop table product;
创建新表
create table product(
p_id number primary key, --设置主键约束
p_name varchar2(10) unique, --设置唯一约束
p_time date not null, --设置非空约束
p_category varchar(5) not null, --设置非空
p_color varchar2(6) check (p_color in ('红','黄','蓝')) --设置检查约束
);
2.6 插入语句
已建列约束,错误实例就不再示范了
insert into product values(1,'柠檬茶',current_date,'饮料','黄');
2.7 外键约束
创建category表,修改product表的列属性
create table category(
c_id number primary key,
c_name varchar(10) not null
);
delete from product where p_id = 1;
alter table product modify p_category number;
创建外键约束
alter table product add foreign key(p_category) references category(c_id);
插入数据,错误实例就不示范了
insert into category values(1,'饮料');
insert into product values(1,'柠檬茶',current_date,'2','黄');
三、视图
视图:对查询结果进行封装,可以对封装的数据进行筛选,只选择想展示的结果。视图本身不存储数据,数据均来源与原始表。
原始表:
select * from emp;
创建视图,设置为只读
create or replace view view_emp as select empno, ename, job, hiredate from emp with read only;
查看视图
select * from view_emp;