【数据库三大类语句】:
DML:insert,delete,update,select... (数据操作语句) Data Manipulation Language statements
DDL:create,drop,alter... (数据定义语句)Data Definition Language statements
DCL:grant,commit,rollback... (数据控制语句)Data Control Language statements
【数据库三范式】
1NF:数据不冗余,字段不可分;
2NF:有主键,非主键字段依赖主键;
3NF:非主键字段不能相互依赖;
【sql plus常用命令】
sqlplus 进入sql plus
sqlplus scott/tiger 以scott身份登陆
sqlplus sys/... as sysdba 以数据库管理员身份登陆
conn scott/tiger 以scott身份登陆(在sql plus界面中)
conn sys/... as sysdba 以数据库管理员身份登陆(在sql plus界面中)
alter user scott account unlock 解锁scott账户
alter user scott account lock 锁定scott账户
show user 显示当前登陆的用户名
show error 显示出错信息(创建过程和函数时)
select sysdate from dual 显示当前日期(dual是个空表)
select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual 显示当前日期和时间(24小时制)
select count(*) from emp 显示emp表的记录数
desc emp 显示emp表的字段信息
desc dictionary 显示字典表字段信息
select * from dictionary 显示字典表的所有记录
desc user_tables 显示用户表的字段信息
select table_name from user_tables 显示用户表中的所有表的表明
select constranit_name from user_constraints 显示所有约束名 ..._uni/ _nnl / _chk / _pk / _fk
select view_name from user_views 显示所有视图名 v$_
select index_name from user_indexes 显示所有索引名 idx_
select trigger_name from user_triggers 显示所有触发器名
select procedure_name from user_procedures 显示所有过程名
select sequence_name from user_sequences;显示所有序列名
【DDL、DML和DCL常用句式】
1.DDL
select常用句式
//用于查找
select ... from ...where...order by...desc
select ... from ...group by ...having...
select ... from ...join ...on ...
select ... from ... (select ...)
where后的常用句式
deptno >= 10 and deptno <= 20
deptno between 10 and 20
deptno < 10 or deptno > 20
deptno = 10 or deptno = 20
deptno in (10,20)
deptno <>10 and deptno <>20
deptno not in (10,20)
deptno not null
deptno is null
ename = 'KING'
ename <> 'KING'
having后的常用句式
count(*) > 100
max(sal) > 1000
min(sal) < 1000
avg(sal) > 1500
create常用句式
//创建表、序列、索引、视图、函数、过程、触发器...
create table emp2 (
字段1 字段1类型 primary key, /constraint 约束名 primary key
字段2 字段2类型 not null,
字段3 字段3类型 unique, /constraint 约束名 unique
字段4 字段4类型 check (sal >= 1000 and sal <= 8000), /constraint 约束名 ...
字段5 字段5类型 foreign key references dept(id),/constraint 约束名 ...
...
)
create table emp2 as (select * from emp)
create sequence seq (start with 1 increment by 1);(用seq.nextval获得递增值)
create (or replace) view v$_... as (select ...) 创建视图
create index idx_...on emp(ename) 给emp表的ename字段建立索引(由oracle查找时自动调用)
create (or replace) procedure p is ...
create (or replace) procedure p(参数名 in 参数类型, 参数名 out 参数类型, 参数名 in out 参数类型) is ...
create (or replace) function f(参数名 参数类型,...) return 返回类型 is ...
create (or replace) trigger trg_ after insert or delete or update on emp (/for each row) ...
begin
if (inserting) then insert into emp_log values (USER, 'insert', sysdate);
else if (deleting) then...
else if (updating) then...
end;
drop常用句式
//删除表、序列、索引、视图、函数、过程、触发器...
drop table emp
drop sequence squ
drop index idx_...
drop view v$_
drop function f
drop procedure p
drop triggel trg
alter常用句式
//改变表结构(字段、约束)
alter table emp add(新字段名,新字段类型) 增加字段
alter table emp drop(存在的字段名) 删除字段
alter table emp modify(存在的字段名,新的类型只能微调) 修改字段
alter table add constraint 约束名 约束类型
alter table drop constraint 约束名;
2.DML
insert常用句式
//插入新纪录
insert into emp values(...,...)
insert into emp(字段名1,字段名2,...) values(...,...)
insert into emp2 select * from emp 将emp表的所有记录插入到emp2中
delete常用句式
//删除记录
delete from emp;删除emp中的所有记录
delete from emp where deptno = 10;删除emp中deptno为10的所有记录
update常用句式
//用于更改记录内容
update emp set ename = 'aa',sal = sal*2 where deptno = 10;更新emp中deptno为10的记录的sal
3.DCL
grant create session, create table, create view, create trigger, create procedure,create function
rollback 回滚所有未提交的transaction(事务,由DML的操作产生)
commit 提交所有transaction
save point 保存一个事务回滚点
DML:insert,delete,update,select... (数据操作语句) Data Manipulation Language statements
DDL:create,drop,alter... (数据定义语句)Data Definition Language statements
DCL:grant,commit,rollback... (数据控制语句)Data Control Language statements
【数据库三范式】
1NF:数据不冗余,字段不可分;
2NF:有主键,非主键字段依赖主键;
3NF:非主键字段不能相互依赖;
【sql plus常用命令】
sqlplus 进入sql plus
sqlplus scott/tiger 以scott身份登陆
sqlplus sys/... as sysdba 以数据库管理员身份登陆
conn scott/tiger 以scott身份登陆(在sql plus界面中)
conn sys/... as sysdba 以数据库管理员身份登陆(在sql plus界面中)
alter user scott account unlock 解锁scott账户
alter user scott account lock 锁定scott账户
show user 显示当前登陆的用户名
show error 显示出错信息(创建过程和函数时)
select sysdate from dual 显示当前日期(dual是个空表)
select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual 显示当前日期和时间(24小时制)
select count(*) from emp 显示emp表的记录数
desc emp 显示emp表的字段信息
desc dictionary 显示字典表字段信息
select * from dictionary 显示字典表的所有记录
desc user_tables 显示用户表的字段信息
select table_name from user_tables 显示用户表中的所有表的表明
select constranit_name from user_constraints 显示所有约束名 ..._uni/ _nnl / _chk / _pk / _fk
select view_name from user_views 显示所有视图名 v$_
select index_name from user_indexes 显示所有索引名 idx_
select trigger_name from user_triggers 显示所有触发器名
select procedure_name from user_procedures 显示所有过程名
select sequence_name from user_sequences;显示所有序列名
【DDL、DML和DCL常用句式】
1.DDL
select常用句式
//用于查找
select ... from ...where...order by...desc
select ... from ...group by ...having...
select ... from ...join ...on ...
select ... from ... (select ...)
where后的常用句式
deptno >= 10 and deptno <= 20
deptno between 10 and 20
deptno < 10 or deptno > 20
deptno = 10 or deptno = 20
deptno in (10,20)
deptno <>10 and deptno <>20
deptno not in (10,20)
deptno not null
deptno is null
ename = 'KING'
ename <> 'KING'
having后的常用句式
count(*) > 100
max(sal) > 1000
min(sal) < 1000
avg(sal) > 1500
create常用句式
//创建表、序列、索引、视图、函数、过程、触发器...
create table emp2 (
字段1 字段1类型 primary key, /constraint 约束名 primary key
字段2 字段2类型 not null,
字段3 字段3类型 unique, /constraint 约束名 unique
字段4 字段4类型 check (sal >= 1000 and sal <= 8000), /constraint 约束名 ...
字段5 字段5类型 foreign key references dept(id),/constraint 约束名 ...
...
)
create table emp2 as (select * from emp)
create sequence seq (start with 1 increment by 1);(用seq.nextval获得递增值)
create (or replace) view v$_... as (select ...) 创建视图
create index idx_...on emp(ename) 给emp表的ename字段建立索引(由oracle查找时自动调用)
create (or replace) procedure p is ...
create (or replace) procedure p(参数名 in 参数类型, 参数名 out 参数类型, 参数名 in out 参数类型) is ...
create (or replace) function f(参数名 参数类型,...) return 返回类型 is ...
create (or replace) trigger trg_ after insert or delete or update on emp (/for each row) ...
begin
if (inserting) then insert into emp_log values (USER, 'insert', sysdate);
else if (deleting) then...
else if (updating) then...
end;
drop常用句式
//删除表、序列、索引、视图、函数、过程、触发器...
drop table emp
drop sequence squ
drop index idx_...
drop view v$_
drop function f
drop procedure p
drop triggel trg
alter常用句式
//改变表结构(字段、约束)
alter table emp add(新字段名,新字段类型) 增加字段
alter table emp drop(存在的字段名) 删除字段
alter table emp modify(存在的字段名,新的类型只能微调) 修改字段
alter table add constraint 约束名 约束类型
alter table drop constraint 约束名;
2.DML
insert常用句式
//插入新纪录
insert into emp values(...,...)
insert into emp(字段名1,字段名2,...) values(...,...)
insert into emp2 select * from emp 将emp表的所有记录插入到emp2中
delete常用句式
//删除记录
delete from emp;删除emp中的所有记录
delete from emp where deptno = 10;删除emp中deptno为10的所有记录
update常用句式
//用于更改记录内容
update emp set ename = 'aa',sal = sal*2 where deptno = 10;更新emp中deptno为10的记录的sal
3.DCL
grant create session, create table, create view, create trigger, create procedure,create function
rollback 回滚所有未提交的transaction(事务,由DML的操作产生)
commit 提交所有transaction
save point 保存一个事务回滚点