zoukankan      html  css  js  c++  java
  • Oracle中sql相关的命令

    1.创建用户

    SQL> -- 例如创建一个用户名为xiaoming,密码为a123的用户

    SQL> create user xiaomingidentified by a123;

    用户已创建。

    SQL> show user

    USER 为 "SYS"

    2.给用户授予权限

    SQL> -- 给用户xiaoming授予权限

    SQL> grant connect,resource,dba to xiaoming;

    授权成功。

    SQL> -- 登录xiaoming用户

    SQL> conn xiaoming/a123

    已连接。

    3.创建表空间

    SQL> -- 创建表空间

    SQL> create tablespace xiaoming_data logging datafile 'E:xiaoming_data.dbf' size 50M;

    表空间已创建。

    SQL> /*

    SQL> 这个可以通过alter方法,重新定义默认表空间的:

    SQL> sql:

    SQL> alter user username default tablespace userspace;

    SQL> 解释:以上语句就是说给username用户重新指定表空间为userspace;

    SQL> 扩展:创建用户的时候指定表空间。

    SQL> sql:create user username identified by userpassword default tablespace userspace;

    SQL> */

    SQL> -- 给用户guoming指定表空间guoming_data

    SQL> alter user guoming default tablespace guoming_data;

    用户已更改。

    4.创建表

    SQL> -- 1.创建users表

    SQL>create table users (

      2  userName char(18) primary key not null,

      3  password varchar(12) not null,

      4  nickName varchar(20),

      5  sex char(2),

      6  age number(3),

      7  address varchar(40),

      8  Email varchar(40) not null,

      9  phone char(11)

     10* )

    SQL> /

    4.1查看已经创建的表

    SQL> select * from tab;

    TNAME                          TABTYPE  CLUSTERID                              

    ------------------------------ ------- ----------                              

    USERS                          TABLE                                           

    ADMIN                          TABLE                                           

    JOB                            TABLE                                           

    ENLIST                         TABLE                                           

    ID                             TABLE                                           

    ACCEPTANCE                     TABLE                                           

    MESSAGE                        TABLE                                           

    DATA                           TABLE                                           

    NEWS                           TABLE                                           

    已选择9行。

    5.添加外键

    SQL> /*

    SQL> 1.创建外键格式:alter table 子表名 add constraint 外键名 foreign key(外键字段) references 父表(字段)

    SQL> 2.删除外键格式:alter table 表名 drop constraint 外键名

    SQL> 如:删除enlist的外键

    SQL> alter table enlist drop constraint FK_ID;

    SQL> */

    SQL> --为enlist表设置ID外键

    SQL> alter table enlist add constraint enlist_ID foreign key(ID) references ID(ID)

    SQL> /

    表已更改。

    SQL> --为acceptance表设置ID外键

    SQL> alter table acceptance add constraint acceptance_ID foreign key(ID) references ID(ID);

    表已更改。

    6.创建索引

    SQL> /*

    SQL> 创建索引 格式:create [unique] index 索引名 on 表(字段);

    SQL> 删除索引 格式:drop index 索引名;

    SQL> 查找一个表的有几个索引(索引名)格式:select index_name from user_indexes where table_name=upper('表名')

    SQL> */

    SQL> --为表enlist表和acceptance表的外键创建索引

    SQL>create index enlist_index on enlist(ID);

    索引已创建。

    SQL> create index acceptance_index on acceptance(ID);

    索引已创建。

    7.触发器(这里是自增触发器)

    SQL> /* 创建触发器

    SQL>  对于自增案例:1.先创建自增序列 2.创建触发器

    SQL> */

    SQL> --创建enlist的自增序列

    SQL> create sequence s_enlist

      2  increment by 1

      3  start with 1

      4  nomaxvalue

      5  nocycle

      6  nocache;

    序列已创建。

    SQL> --创建enlist表的触发器t_enlist

    SQL> create or replace trigger t_enlist

      2  before insert on enlist

      3  for each row

      4  begin

      5  select s_enlist.nextval into :new.enlistId from dual;

      6  end;

      7  /

    触发器已创建

    注:new.触发字段

    8.创建视图(这里是整合外键内容,及整合两张表)

    SQL> /*

    SQL> 创建视图 :格式 create or replace 视图名 select ... from 表1,表2 where ..

    SQL> 删除视图 : 格式 drop view 视图名;

    SQL> */

    SQL> -- 创建整合enlist表和ID信息的视图

    SQL> create or replace view v_enlist

      2  as

      3  select enlist.enlistId,enlist.ID,ID.name,ID.sex,ID.age,enlist.expenses,enlist.enTime from enlist,ID

      4  where enlist.ID=ID.ID;

    视图已创建。

    SQL> -- 创建整合acceptance表和ID信息的视图

    SQL> create or replace view v_acceptance

      2  as

      3  select acceptance.accId,acceptance.jobName,acceptance.ID,ID.name,ID.sex,ID.age,

      4  acceptance.dept,acceptance.wokeDate from acceptance,ID where acceptance.ID=ID.ID

    视图已创建。

    9.存储过程(这里是查找用户是否注册)

    SQL> /*

    SQL> 创建一个存储过程 格式 : create or replace procedure 函数名(变量1 类型,变量2 类型..) as ... begin select .. ;

    SQL> exception

    SQL> when 异常名 then

    SQL> ...

    SQL> end 函数名;

    SQL> /

    SQL> */

    SQL> -- 创建一个查看用户名是否已经注册的存储过程find_users

    SQL> create or replace procedure

      2  find_users(u_name number)

      3  as

      4  name number(18);

      5  begin

      6  select userName into name from users where u_name=users.userName;

      7  dbms_output.put_line(name||'用户已经被注册了!');

      8  exception

      9  when no_data_found then

     10  dbms_output.put_line('该用户名未被注册!');

     11  end find_users;

    SQL> /

    过程已创建。

    下面就可以插入数据了,大家好好复习!

     

    10.修改表的字段属性

    alter table 表名 modify 字段名number(5,2);

    11.删除有户名和表空间(彻底)

    drop user 用户名 cascade ;

    drop tablespace 表空间名 including contents and datafiles cascade constraints ;

  • 相关阅读:
    126
    125
    124
    123
    122
    121
    120
    119
    洛谷 P5407 【[THUPC2019]历史行程】
    济南清北学堂七日游
  • 原文地址:https://www.cnblogs.com/xiaomingzaixian/p/5585783.html
Copyright © 2011-2022 走看看