oracle用户操作一(登录,创建用户、表空间、创建新表)

前言

记录一下oracle使用过程,转载附上链接!
安装oracle教程:Linux下安装oracle数据库

安装oracle客户端以及使用OCI连接:Linux下使用OCILIB连接oracle数据库

oracle常用系统表释义:oracle常用系统表

一、用户操作

1.服务器监听

(1)开启监听

lsnrctl start

(2)停止监听

lsnrctl stop

2.登陆

如果安装了rlwrap(使用光标上下左右移动功能),使用管理员登陆

rlwrap sqlplus sys/0 as sysdba

未安装

sqlplus sys/0 as sysdba

开启数据库

startup

3.创建用户

create user test1 identified by 0

test1——用户名
0——用户密码

4.删除用户

drop user test1;

test1——用户名

5.赋予用户权限

grant resource,connect,dba to test1

resource——只可以创建实体但是没有创建数据结构的权限
connect——可以登录Oracle,不可以创建实体,不可以创建数据库结构
dba——拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构
test1——用户名
除此之外还有

grant create session to 用户名 

这个是给用户赋予登录的权限。

grant create table to  用户名

给用户赋予表操作的权限

grant unlimited tablespace to  用户名   

给用户赋予表空间操作的权限

grant select any table to 用户名  

给该用户赋予访问任务表的权限 同理可以赋予update 和delete

6.修改用户密码

alter User 用户 identified by 口令

7.查看当前用户

show user

8.查看所有系统用户

select username from dba_users

9.查看当前用户状态

select * from dba_ustats

10.切换用户

conn username/passwd

二、用户表空间

1.查询数据文件设置信息

select file_name from dba_data_files;

显示如下

SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/szxndb/users01.dbf
/home/oracle/app/oracle/oradata/szxndb/undotbs01.dbf
/home/oracle/app/oracle/oradata/szxndb/sysaux01.dbf
/home/oracle/app/oracle/oradata/szxndb/system01.dbf
/home/oracle/app/oracle/oradata/szxndb/test.dbf
/home/oracle/app/oracle/oradata/szxndb/TLMES.dbf

2.创建表空间

create tablespace test1 logging datafile 
'/home/oracle/app/oracle/oradata/szxndb/test1.dbf' 
size 100m autoextend on next 50m maxsize 1000m extent management local; 

3.查询临时表空间

select FILE_NAME from dba_temp_files

4.创建临时表空间

create temporary tablespace test1_temp tempfile datafile 
'/home/oracle/app/oracle/oradata/szxndb/test1_temp.dbf' 
size 100m autoextend on next 50m maxsize 1000m extent management local; 

5.删除表空间

drop tablespace tablespace_name including contents and datafiles;

6.赋给用户表空间

(1)创建时指定

create user username identified by password
default tablespace user_data
temporary tablespace user_temp; 

(2)修改用户表空间

alter user username  default tablespace userspace;

(3)修改用户临时表空间

alter user username  temporary tablespace userspace;

7.查询当前用户表空间

select default_tablespace from dba_users where username='AARON';

这里注意的是用户名要大写,除非开了大小写都可的权限!

8.查询所有用户表空间

select username,default_tablespace from user_users; 

9.查看表空间相关属性

select tablespace_name,contents,status,status,block_size from dba_tablespaces;
select file_name,tablespace_name,autoextensible,bytes from dba_data_files;

10.附录创建表空间释义

create tablespace test1 logging datafile 
'/home/oracle/app/oracle/oradata/szxndb/test1.dbf' 
size 100m autoextend on next 50m maxsize 1000m extent management local; 

create temporary tablespace——创建表空间
test1——表空间名
logging——声明这个表空间上所有的用户对象的日志属性(缺省是logging)
datafile——指出表空间包含什么空间文件
size——设置表空间大小
100m——设置表空间大小为100M
autoextend on——设置表空间是否自动扩增 off是关闭
next 50m——扩增一次为50M
maxsize 1000m——设置表空间最大1000M,可替换为maxsize unlimited设置表空间无限增长
extent management local/dictionary:表示表空间管理的方式,local表示本地的管理模式,dictionary表示数据字典管理模式,默认都是本地管理方式

如上设置是默认表空间为启用状态,如果不启用则修改表空间为offline

alter tablespace …offline 

三、表格操作

1.创建表格

create table "student1"("id" int not null, "name" varchar(50) not null);

这里值得注意的是,表名,子段名如果不加 “ ”,则实际表名,子段名为大写!

2.查询

select * from "student1";

记得表名加“ ”。

3.主键式创建表格

CREATE TABLE "studeng3" ("id" INTEGER NOT NULL, "name" VARCHAR(50) NOT NULL,"gold" FLOAT,  constraint student3 primary key ("id"));

constraint student3 primary key (“id”)——创建主键为id, pk为primary key
主键约束(primary key)
外键约束(foreign key)
唯一性约束(unique)
非空约束(not null)
检查约束(check)

4.设置主键自动增长

CREATE sequence student_autoinc minvalue 1 maxvalue 99999999 start with 1 increment by 1 nocache;

sequence ——序号
minvalue ——最小
maxvalue ——最大
start with——开始
increment by——每次增长
nocache——不缓存,相反cache缓存。开启缓存,效率高,只是如果数据库宕机了,缓存丢失,会出现序列跳号情况

5.利用增长主键插入数据

INSERT into "studeng3" ("id", "name", "gold") VALUES(student_autoinc.NEXTVAL,'hliuliu',19.0);

6.设置自增长

创建触发器,在 插入前找到id大小,并插入id的下一个值

CREATE 
	OR REPLACE TRIGGER student_autoinc_tri before INSERT ON student_autoinc FOR each ROW
BEGIN
	SELECT
		student_autoinc.nextval INTO :new."id"
	FROM
		dual;
END;

:new."id"中间无空格,如果使用navicat美化,会在里面加空格报错
插入语句

INSERT into "studeng3" ("id", "name", "gold") VALUES(NULL,'hliuliu',19.0);

7…查询表中条数

SELECT COUNT(*) FROM STUDENT

你可能感兴趣的:(oracle)