Oracle用户和表的操作

用户操作

/*
  创建用户
    create user 用户名
    identified by 密码
    default tablespace 表空间
    temporary tablespace 临时表空间
*/

select * from v$tablespace;

--创建student表空间
create tablespace student
	datafile 'C:\myoracle\oradata\orcl\stu01.dbf'
	size 100m
	reuse;

--创建用户
create user stu_oper
	identified by stu_oper
	default tablespace student;

select * from dba_users;

--此时切换到stu_oper用户可以成功么?

/*
  授权
    grant 角色 to 用户
    connect 角色
    resource 角色
    dba 全部权限
*/
grant connect to stu_oper;
grant resource to stu_oper;

--此时再切换到stu_oper用户,是否可以成功?
select * from dba_users;

表的操作

/*
   标准建表语法:
    create table 表名( 
          列名 数据类型 [约束],
          列名 数据类型 [约束],
          ...
    );
*/

--创建学生表
CREATE TABLE STUDENT ( 
  STUID VARCHAR2(7) NOT NULL, --学号 学号=‘S’+班号+2位序号 
  STUNAME VARCHAR2(10) NOT NULL, --姓名 
  GENDER VARCHAR2(3) NOT NULL, --性别 
  AGE NUMBER(2) NOT NULL, --年龄 
  SEAT NUMBER(2) NOT NULL, --座号 
  ENROLLDATE DATE, --入学时间 
  STUADDRESS VARCHAR2(50) DEFAULT '地址不详', --住址 
  CLASSNO VARCHAR2(4) NOT NULL --班号 班号=学期序号+班级序号 
);

select * from student;

INSERT INTO "STU_OPER"."STUDENT" ("STUID", "STUNAME", "GENDER", "AGE", "SEAT", "ENROLLDATE", "STUADDRESS", "CLASSNO") VALUES ('S117301', '张三', '男', '19', '11', TO_DATE('2017-09-01 17:13:21', 'SYYYY-MM-DD HH24:MI:SS'), '地址不详', '2017');
INSERT INTO "STU_OPER"."STUDENT" ("STUID", "STUNAME", "GENDER", "AGE", "SEAT", "ENROLLDATE", "STUADDRESS", "CLASSNO") VALUES ('S117302', '李四', '女', '20', '12', TO_DATE('2017-09-01 17:14:30', 'SYYYY-MM-DD HH24:MI:SS'), '地址不详', '2017');


/*
  create as 子查询建表
    1、如果对于一张以及存在的表,现在想要复制它,则可以使用子查询复制表来实现。
    2、语法:create table 表名 as select 查询语句
    
    注意:
    1)如果子查询有结果,则复制表结构的同时也会复制表中的数据,如果子查询没有结果,则只复制表结构
    2)子查询建的表只复制了目标表的结构(如字段名称、数据类型),却不复制约束、索引(如主外键、约束、索引)
*/
--通过已经存在的 STUDENT 表复制一张新表 person
CREATE TABLE PERSON AS SELECT * FROM STUDENT;
select * from person;--查询 person 表
 
--通过已经存在的 STUDENT 表复制一张新表 person1
CREATE TABLE PERSON1 AS SELECT * FROM STUDENT WHERE STUID='1' ;
select * from person1;--查询 person1 表

--添加 phone 列
alter table person add phone varchar2(11);

--同时添加多列
-- 如果表中已有数据,则新增列不可约束为"NOT NULL"
alter table person add (     
      fatherName varchar2(16)  not null,
      fatherPhone varchar2(11) 
);

alter table person1 add (     
      fatherName varchar2(16)  not null,
      fatherPhone varchar2(11) 
);
select * from person1;
 
-- 修改表 student 的列 age 的数据类型为 number(2),默认值为 0
alter table student modify (age number(2) default 0);
-- 插入数据
INSERT INTO "STU_OPER"."STUDENT" ("STUID", "STUNAME", "GENDER", "SEAT", "ENROLLDATE", "STUADDRESS", "CLASSNO") VALUES ('S117303', '王五', '女', '13', TO_DATE('2017-09-01 17:14:30', 'SYYYY-MM-DD HH24:MI:SS'), '地址不详', '2017');
select * from STUDENT;
 
alter table person1 modify fatherName varchar2(12);--修改列的数据类型
alter table person rename column gender to sex;--修改列名

alter table person1 drop column fatherName;--删除列
alter table person1 drop column fatherPhone;--删除列
select * from person1;
 

select * from user_tables;
rename person to person_new;--修改表名
 
drop table person_new;--删除表
drop table person1;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值