oracle基本命令练习笔记
第一章 用户
------
用户
系统用户,sys,system,sys权限高于system,密码本身设置
1.sysman用于操做企业管理器使用,密码本身设置
2.scott,默认密码tiger
3.在sys,system,sysman,scott四个用户权限中,scott用户最低
使用system用户登陆
打开sqlplus,输入system/密码,登录
connect sys/密码 as sysdba
Oracle用户和表空间之查看登陆用户sql
show user desc dba_users select username from dba_users;
启用scott用户数据库
alter user username account unlock; alter user scott account unlock;
表空间
表空间
分为永久表空间,临时表空间,UNDO表空间
UNDO表空间,保存事务修改前的旧址
临时表空间,操做过程当中的数据
查看用户表空间express
dab_tablespacs,user_tablespaces desc dba_tablespaces; select tablespace_name from dba_tablespacs; dba_users,users_users
设置默认或者临时表空间oracle
alter user system default tablespace system; select default_tablespace,temporary_tablespace from dba_users where username='SYSTEM';
建立表空间spa
create tablespace test1_tablespace datafile 'test1_datafile.dbf' size 10m; create temporary tablespace tamptable_tablespace tempfile 'tmpetest1_datafile.dbf' size 10m; desc dba_data_files; select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE'
修改表空间
设置联机或者脱机状态code
alter tablespace tablespace_name online/offline;orm
设置只读或者可读写状态,必须为联机状态;事务
alter tablespace tablespace_name read only/read write;rem
修改数据文件
****增长数据文件****字符串
alter tablespace tablespace_name add datafile 'xx.abf' size xx;
删除数据文件,不能删除第一个数据文件
alter tablespace tablespace_name drop datafile 'xx.abf' size xx;
删除表空间
不删除文件
drop tablespace tablespace_name
删除表空间的同时删除文件
drop tablespace tablespace_name including contents;
管理表
数据类型
字符型:CHAR,NCHAR(多用于存储汉字);
VARCHAR2,NVARCHAR2;可变长度类型
数值型:NUMBER(p,s)
FLOAT,
日期型:DATE,
TIMESTAMP,
其余类型:BLOB,
CLOB,(字符串形式存储)
建立表
create table userinfo (id number(6,0), username varchar2(20), userpwd varchar2(20), useremil varchar2(30), regdate date);
修改表
添加字段
ALTER TABLE table_name ADD column_name datatype; alter table userinfo add beizhu varchar2(500);
更改字段的数据类型,表中没有数据是可以实现;
ALTER TABLE table_name MODIFY column_name datatype;
删除字段
ALTER TABLE table_name DROP column_name datatype;
修改字段名
ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
修改表名
ALTER table_name TO new_table_name;
删除表
删除表中所有数据,截断表(表存在)
TRUNCATE TABLE table_name;
表结构删除
TROP TABLE table_name;
操做表中数据
INSERT 语句,前面省略表明全部字段都要赋值
INSERT INTO table_name (column1,column2,...) VALUES(values1,values2,...) insert into userinfo values(1,'xxx','123','xxx@126.com',sysdate);
向表中指定字段添加值
insert into userinfo(id,username,userpwd) values(2,'yyy','123'); select username,userpwd from userinfo;
向表中添加默认值
create table userinfo1 ( id number(6,0), resgdate date default sysdate); alter table userinfo modify email default '无';
复制表数据
在建立表时复制
CREATE TABLE table_name AS SELECT column1,...|*FROM table_old; create table userinfo_new as select * from userinfo; create table userinfo_new1 as select id,username from userinfo;
在添加时复制
I
NSRT INTO table_new [(column1,...)] SELECT column1,...|*FROM table_old; insert into userinfo_new select * from userinfo;
字段名能够不一致,可是数据类型必须一致
insert into userinfo_new (id,username) select id,username from userinfo;
修改数据
UPDATE table_name SET column1=value1,...[WHERE conditions];
无条件更新
update userinfo set userpwd='111111';
有条件更新数据
update userinfo set userpwd='123456' where username='xxx';
删除数据库
删除表中所有数据,速度慢些
DELETE FROM tablename[WHERE conditions];
约束
非空约束
在建立表时设置非空约束
CREATE table_name ( column_name datatype NOT NULL,...);
在修改表时添加非空约束,修改前最好没有添加数据
ALTER TABLE table_name MODIFY column_name datatype NOT NULL; alter table userinfo modify username varchar2(20) not null;
删除非空约束
ALTER TABLE table_name MODIFY column_name datatype NULL; alter table userinfo modify username varchar2(20) null;
主键约束,确保表中每一行数据的惟一性,要求字段非空,惟一
在建立表时设置主键约束
CREATE table_name ( column_name datatype PRIMARY KEY,...);
在建立表时设置主键约束
CONSTRAINT constraint_name PRIMARY KEY (column_name1,...) create table userinfo_p1( id number(6,0), username varchar2(20), userpwd varchar(20), constraint pk_id_username primary key(id,username)); desc user_constraints; select constraint_name from user_constraints where table_name='USERINFO_P1';
修改表时添加主键约束
ADD CONSTRAINT constraint_name PRIMARY KEY (column_name1,...);
更改约束的名字
ALTER TABLE table_name RENAME CONSTRAINT old_name TO new_name;
删除主键约束
禁用约束
ALTER TABLE table_name DISABLE|ENABLEND CONSTRAINT constraint_name;
查看约束状态
select constraint_name,status from user_constraints where table_name='USERINFO';
删除约束
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
有外键的时候用
ALTER TABLE table_name DROP PRIMARY KEY[CASCADE];
外键约束
建立表时设置外键约束
CREATE TABLE table1 (column_name datatype REFERENCES table2(column_name),...); create table typeinfo (typeid varchar2(10)primary key, typename varchar2(20));
建立从表
create table userinfo_f (id varchar2(10) primary key, username varchar2(20), typeid_new varchar2(10) references typeinfo(typeid)); insert into typeinfo(1,1);
第二个字段必须是主表字段值或者空值;
insert into userinfo_f(id,typeid_new) values(1,1)
在建立表时设置外键约束,ON DELETE CASCADE级联删除
CONSTRAINT constraint_name FOREIGN KEY(column) REFERENCES table_name (column_name)[ON DELETE CASCADE] create table userinfo_f1 (id varchar2(10) primary key, username varchar2(20), typeid_new varchar2(10), constraint fk_typeid_new foreign key(typeid_new) references typeinfo(typeid));
加上级联删除
create table userinfo_f2 (id varchar2(10) primary key, username varchar2(20), typeid_new varchar2(10), constraint fk_typeid_new1 foreign key(typeid_new) references typeinfo(typeid) on delete cascade);
在修改表时添加外键约束
ADD CONSTRAINT constraint_name FOREIGN KEY(column_name) REFERENCES table_name (column_name)[ON DELETE CASCADE] create table userinfo_f4 (id varchar2(10) primary key, username varchar2(20), typeid_new varchar2(10)); alter table userinfo_f4 add constraint fk_typeid_new4 foreign key(typeid_new) references typeinfo(typeid);
删除外键约束
DISABLE|ENABLEND CONSTRAINT constraint_name; DROP CONSTRAINT constraint_name;
惟一约束,保证字段惟一性,主键约束字段值必须是非空的,惟一约束容许有一个非空值
主键约束每张表只能有一个,惟一约束能够有多个
在建立表时设置惟一约束
CREATE TABLE table_name (colnum_name datatype UNIQUE,...) create table userinfo_u (id varchar2(10) primary key, username varchar2(20) unique); create table userinfo_u1 (id varchar2(10) primary key, username varchar2(20), constraint un_username unique(username));
在修改表时添加惟一约束
ADD CONSTRAINT constraint_name UNIQUE(column_name);
删除惟一约束
DISABLE|ENABLEND CONSTRAINT constraint_name; DROP CONSTRAINT constraint_name;
检查约束
让字段的值符合必定条件,具备实际意义
建立表时设置检查约束
CREATE TABLE table_name (colnum_name datatype CHECK(expressions),...); create table userinfo_c (id varchar2(10) primary key, username varchar2(20), salary number(5,0) check(salary>0)); CONSTRAINT constraint_name CHECK(expressions) create table userinfo_c1 (id varchar2(10) primary key, username varchar2(20), salary number(5,0), constraint ck_salary check(salary>0));
在修改表时添加检查约束
ADD CONSTRAINT constraint_name CHECK(expressions); create table userinfo_c3 (id varchar2(10) primary key, username varchar2(20), salary number(5,0)); alter table userinfo_c3 add constraint ck_salary2 check(salary>0);
删除检查约束
DISABLE|ENABLEND CONSTRAINT constraint_name; DROP CONSTRAINT constraint_name;
查询
在sqlplus中设置格式
别名
COLUMN column_name HEADING new_name
数据格式,字符类型只能设置显示长度 a10
COLUMN column_name FORMAT dataformat
去掉格式
COLUMN column_name CLEAR
DISTINCT 去掉重复行
通用通配符(_,%)一个_表明一个字符,%表明多个字符
IN 范围查询后加列表,查询列表内的内容
case when decode() select username ,decode(username,'aaa','计算机部门','bbb','市场部门','其余')as 部门 from users;