Oracle 基础命令

owner
2024-01-25 / 0 评论 / 52 阅读 / 正在检测是否收录...

ORACLE基础命令

一、用户管理

创建用户

create user username identified by password;

[oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Apr 13 16:15:13 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> create user owner identified by 123456;
User created.
SQL>
修改用户

alter user username identified by password;

SQL> alter user owner identified by 123456;------修改用户owner 的密码为123456
User altered.
SQL>
删除用户

drop user username;

SQL> drop user owner;------删除用户owner
User dropped.
SQL>
查询当前用户下的所有表
SQL> select table_name from user_tables;------查找当前用户下的所有表
TABLE_NAME
--------------------------------------------------------------------------------
USERSINFO
USERSID
SQL>

二、为用户授权、撤销授权

oracle提供三种标准角色(role):connect/resource和dba.

connect role(连接角色)
临时用户,特指不需要建表的用户,通常只赋予他们connect role.
connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回
(session)和其他 数据的链(link)。

resource role(资源角色)
更可靠和正式的数据库用户可以授予resource role。
resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和
(cluster)。

dba role(数据库管理员角色)
dba role拥有所有的系统权限
包括无限制的空间限额和给其他用户授予各种权限的能力。
为用户授权

grant connect, resource to username;

SQL> grant connect,resource to owner;
Grant succeeded.
SQL>
撤销对用户的授权

revoke connect, resource from username;

SQL> revoke connect,resource from owner;
Revoke succeeded.
SQL>

三、创建表空间

创建语法

create tablespace 表间名 datafile '数据文件名' size 表空间大小;

SQL> create tablespace test datafile '/u01/app/oracle/oradata/ORCL/test_data.dbf' size 500M;
Tablespace created.
SQL>
表空间授权用户

alter user username identified by password default tablespace tablespace_name;

SQL> alter user owner identified by 123456 default tablespace test;
User altered.
SQL>
删除表空间

删除表空间及对应表空间文件

drop tablespace tablespace_name including contents and datafiles cascade constraint;

SQL> drop tablespace test  including contents and datafiles cascade constraint;
Tablespace dropped.
SQL>

四、创建表

Oracle数据类型
char(n)varcahr2(n)number(m,n)datelongraw(n)lang rawblob/clob/nclobbfile
1-2000 Byte1-4000 Bytem=整数位
n=小数位
sysdate1-2000图片、视频、声音
txt文本
创建表语法
SQL> create table usersInfo(
  2  id varchar2(20) primary key,
  3  name char(8) not null,
  4  phone number(11) unique,
  5  class char(10),
  6  sex char(2)
  7  );
Table created.
SQL>
查看表字段

desc table_name;

SQL> desc usersInfo;------查询usersInfo表中的所有字段及数据类型的长度
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL VARCHAR2(20)
 NAME                                      NOT NULL CHAR(8)
 PHONE                                              NUMBER(11)
 CLASS                                              CHAR(10)
 SEX                                                CHAR(2)
SQL>
添加表字段

alter table table_name add (column_name data_type(length));

SQL> alter table usersInfo add (age number(3));------添加字段age
Table altered.
SQL> desc usersInfo
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL VARCHAR2(20)
 NAME                                      NOT NULL CHAR(8)
 PHONE                                              NUMBER(11)
 CLASS                                              CHAR(10)
 SEX                                                CHAR(2)
 AGE                                                NUMBER(3)
SQL>
修改表字段长度

alter table table_name modify (column_name data_type(length));

SQL> alter table usersInfo modify (sex char(3));------修改sex列数据长度为3
Table altered.
SQL> desc usersInfo;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL VARCHAR2(20)
 NAME                                      NOT NULL CHAR(8)
 PHONE                                              NUMBER(11)
 CLASS                                              CHAR(10)
 SEX                                                CHAR(3)
 AGE                                                NUMBER(3)
SQL>
修改表字段名

alter table table_name rename column column_name to new_column_name;

SQL> alter table usersInfo rename column ID to user_id;------将列名ID更改为USER_ID
Table altered.
SQL> desc usersInfo
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 USER_ID                                   NOT NULL VARCHAR2(20)
 NAME                                      NOT NULL CHAR(8)
 PHONE                                              NUMBER(11)
 CLASS                                              CHAR(10)
 SEX                                                CHAR(3)
 AGE                                                NUMBER(3)
SQL>
修改数据类型

alter table table_name modify (column_name data_type(length));

SQL> alter table usersInfo modify (USER_ID number(20));------修改USER_ID 数据类型为number(20)
Table altered.
SQL> desc usersInfo;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 USER_ID                                   NOT NULL NUMBER(20)
 NAME                                      NOT NULL CHAR(8)
 PHONE                                              NUMBER(11)
 CLASS                                              CHAR(10)
 SEX                                                CHAR(3)
 AGE                                                NUMBER(3)
SQL>
删除表字段

alter table table_name drop column column_name;

SQL> alter table usersInfo drop column phone;------从usersInfo表中删除PHONE字段列
Table altered.
SQL> desc usersinfo;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 USER_ID                                   NOT NULL NUMBER(20)
 NAME                                      NOT NULL CHAR(8)
 CLASS                                              CHAR(10)
 SEX                                                CHAR(3)
 AGE                                                NUMBER(3)
SQL>
添加主键约束

alter table table_name add primary key (column_name);

SQL> alter table usersInfo add primary key (user_ID);------添加主键约束,一张表只能存在一个主键
Table altered.
SQL>
删除主键约束

alter table table_name drop primary key;

alter table usersInfo drop primary key;------删除主键约束
添加外键约束

ALTER TABLE 从表名 ADD CONSTRAINT 约束名 FOREIGN KEY(column_name ) REFERENCES 主表名(column);

SQL> alter table usersinfo add constraint u_id foreign key (user_id) references usersid (id);
------将主表usersid中的id列作为从表usersinfo中的列user_id的外键
Table altered.
SQL>
删除外键约束
SQL> alter table usersinfo drop constraint u_id;------删除表usersinfo中名为u_id的外键
Table altered.
SQL>

五、表数据操作

插入数据语法

insert into table_name values (value1,value2,......);

SQL> insert into usersInfo values ('10001','张三',12345678901,'三类','bo');
1 row created.
SQL> select * from usersInfo;
ID      NAME            PHONE       CLASS                    SEX
----------- ---------------- ----------- ------------------------ ------
10001   张三             1.2346E+10  三类                     bo
SQL>
修改语法

update table_name set column_name=new_value where column_name=value;

SQL> update usersInfo set CLASS='III' where ID='10001';
1 row updated.
SQL> selet * from usersInfo
SP2-0734: unknown command beginning "selet * fr..." - rest of line ignored.
SQL> select * from usersInfo;
ID      NAME                 PHONE      CLASS                  SEX
----------- ---------------------- ------------- --------------------- -------------
10001   张三                  1.2346E+10    III                   bo
SQL>
删除语法

delete teble_name where column=value;

SQL> delete usersInfo where ID=10001;
1 row deleted.
SQL> select * from usersInfo;
no rows selected
SQL>
0

评论 (0)

取消