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) | date | long | raw(n) | lang raw | blob/clob/nclob | bfile |
---|---|---|---|---|---|---|---|---|
1-2000 Byte | 1-4000 Byte | m=整数位 n=小数位 | sysdate | 无 | 1-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)