关于“oracle基础知识总结”系列博客的说明:
1 本系列博客是在本人学习过程中总结的笔记,学习资料为尚学堂马士兵老师的oracle视频,大部分示例来自于该资料;
2 做为数据库初学者,本系列博客主要讲解了oracle的基础知识,高手勿入勿喷;
3 由于是学习笔记,主要作用是便于本人以后复习和备忘。可能条理不是很清晰,上下文衔接的不是很好,请读本文的读者做好心理准备;
4 本系列博客中的语句主要使用了oracle中scott用户的表结构,该用户是数据库中自带的用户。
insert into dept values (50, 'game', 'bj'); insert into dept (deptno, dname) values (60, 'develep'); insert into dept select * from dept2;
create table dept2 as select * from dept;
update emp2 set sal = sal*2, ename = ename || '-' where deptno = 10;
delete语句的使用方法:
delete from emp2; delete from emp2 where ename = 'ClARK';
ctrate table stu(id number(6), name varchar2(20));
drop table stu;
alter table 表名 ; -- 修改表结构
在现有的表上添加一个字段
alter table stu add (addr varchar2(100));删除表中的一个字段
alter table stu drop (addr);修改字段
alter table stu modify (addr varchar2(150));
事务是指 一系列操作要么同时完成, 要么什么都不做。
事务起始于第一条DML语句(insert , delete, update)。
rollback 回滚整个事务 , commit 提交整个事务。 这两个语句结束事务。一条DDL, 或DCL语句也会导致事务的提交。
正常断开连接(exit)时事务正常提交;create table 表名 (列名 数据类型, 列名 数据类型, 。。。);
varchar 变长字符串, 灵活建表语句中使用数据类型的举例
char 定长字符串, 效率高, 但可能浪费空间
number 数字
date 日期时间
long 变长字符串, 可大于4096
varchar2 变长字符串, 不能大于4096
blob
clob
create table stu ( id, number(6), name varchar2(20), sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar(50) );
1 非空约束 not null
2 唯一约束 unique
3 主键约束 primary key
4 外键约束 references
5 检查约束 check
create table stu ( id, number(6), name varchar2(20) not null, sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar(50) );
create table stu ( id, number(6), name varchar2(20) constraint stu_name_nn not null, sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar(50) );
create table stu ( id, number(6), name varchar2(20) constraint stu_name_nn not null, sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar(50) unique, );
create table stu ( id, number(6), name varchar2(20) constraint stu_name_nn not null, sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar(50), constraint stu_name_email_uni unique(email, name) );
create table stu ( id, number(6) primary key, name varchar2(20) constraint stu_name_nn not null, sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar(50), constraint stu_name_email_uni unique(email, name) );
create table stu ( id, number(6), name varchar2(20) constraint stu_name_nn not null, sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar(50), constraint stu_id_pk primary key(id), constraint stu_name_email_uni unique(email, name) );
create table stu ( id, number(6), name varchar2(20) constraint stu_name_nn not null, sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar(50), constraint stu_id_pk primary key(id, name), constraint stu_name_email_uni unique(email, name) );
create table class ( id number(4) primary key, name varchar2(20) not null, );
create table stu ( id, number(6), name varchar2(20) constraint stu_name_nn not null, sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4) references class(id), email varchar(50), constraint stu_id_pk primary key(id), constraint stu_name_email_uni unique(email, name) );
create table stu ( id, number(6), name varchar2(20) constraint stu_name_nn not null, sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar(50), constraint stu_class_fk foreign key (class) references class(id), constraint stu_id_pk primary key(id), constraint stu_name_email_uni unique(email, name) );
delete from class where id = 1000; delete from class;要想删除表或删除表中的记录, 必须先删除class表中id字段的外键约束条件。下面会介绍删除约束条件的方法。
alter table stu drop constraint stu_class_fk;
删除了外键约束, 比如删除了这个外键约束条件, 才能删除表或表中的字段,因为这个字段正在被其他字段引用。
alter table stu add constraint stu_class_fk foreign key (class) references class(id);
create index idx_stu_email on stu (email);
create index idx_stu_enami_name on stu (enail, name);
drop index idx_stu_email;
select index_name from user_indexs;
给某个字段加约束条件时,oracle会为这个字段加一个索引。
不要轻易的建立索引,只有必要的时候才建立索引,因为索引在读取时会提高效率,而在修改或写入时会降低效率。create view v$_stu as select id, name, age from stu;
create table articale ( id number, title varchar2(l024), cont long, );
create sequence seq;
以下语句保证产生的数据不会重复
select seq.nextval from dual;
insert into articale values (seq.nextval, 'a', 'aaaaaaaaaaaaaaa');
drop sequence seq;
1 表 table
2 约束 constraint
3 索引 index
4 视图 view
5 序列 sequence
select table_name from user_tables;
select view_name from user_views;
select constraint_name from user_xonstraints;
4 dictionary表, 记录了所有用户字典表的信息,可以看成用户字典的字典
下面语句查询出所有的数据字典, 大概600多个
select table_name from dictionary;