zoukankan      html  css  js  c++  java
  • oracle 基础SQL语句 版本5.7.29

    一、表与用户介绍

    oracle安装完成后默认会有很多用户,大致分为2类用户:一类是必需的帐户,一类是存储各种应用的帐户,默认密码如下:

     oracle自带的也会有很多默认表存在:

     

     

    二、创建用户、创建表空间、授权、建表的完整过程

    登录sqlplus:sqlplus / as sysdba
    用scott用户以sysdba的身份登录oracle:conn scott/tiger as sysdba;
    创建用户:create user wzx identified by 123456;  

    修改用户的密码:alter user wzx identified by wzx123456; 

    默认情况下用户创建好后系统会默认给该用户分配一个表空间(users)查看一下所有用户所在的表空间:select username,default_tablespace from dba_users;  

    一般在开发情况下,我们当然不会使用用户的默认表空间,所以这时我们需要创建一个表空间:create tablespace ts_wzx datafile 'e:wzxoracle_data.dbf' size 200M;  

    注:datafile后面是表空间的物理存储路径,文件名的后缀可以随便.

    查看字符集:select * from nls_database_parameters where parameter='NLS_CHARACTERSET';

    创建好表空间,还需要将表空间分配给用户:alter user wzx default tablespace ts_wzx;  

    修改后可以通过查询用户所在的表空间:select username,default_tablespace from dba_users;  

    给用户分配了表空间,用户还不能登陆(没有登录权限),因此还需要为用户分配权限:grant create session,create table,create view,create sequence,unlimited tablespace to wzx;  

    给用户分配了权限之后我们就可以用wzx用户来登录了:conn wzx/123456; 

    登录之后我们也可以来查询用户所具有的权限:select *from session_privs;  

    删除用户:drop user wzx cascade; 

    显示当前用户:show user;

    三、创建表

    创建新表:

    create table B
    (id int primary key,
    name char(200) not null,
    phone number(11) unique,
    class varchar(10)
    );

    创建表:create table a (id int,name char(10) default 'aaa');

    插入数据:insert into a values(1,'abc');

    更新数据:update B set NAME='wzx' where id=1

    查询用户下所有表名:select * from user_tab_comments;

    彻底删除表:drop table HM_TABLE purge; commit;

    查看所有表空间:select tablespace_name from dba_tablespaces;

    查看数据库所有用户:select username from dba_users;

    查看所有用户:select * from all_users order by username desc;

    查询用户下所有字段名:select * from user_col_comments;

    查看所有用户详细信息:select * from dba_users;
    查看当前登录用户详细信息:select * from user_users;

    查看用户或系统角色:select * from dba_sys_privs;
    查看用户系统权限:select * from user_sys_privs;
    查看用户对象权限:select * from user_tab_privs;

    刷新共享池:alter system flush shared_pool;

    查看某个用户下的所有表:select * from all_tables where owner='WZX';

    对当前登录用户下的表进行排序:select table_name from tabs order by table_name desc;

    查看所有表空间:select tablespace_name from dba_tablespaces;

    查看当前用户下的所有表:select table_name from tabs;

    查看当前登录用户下的所有表:select table_name from user_tables;

    查看表结构:select dbms_metadata.get_ddl('TABLE','A') from dual;

    查看表结构:select dbms_metadata.get_ddl('TABLE','A') from dual;执行完上面这条语句你可能只是看到整个建表语句的一部分,因此我们在执行命令的时候可以加上下面的语句:

    SET LONG 3000

    SET PAGESIZE 0

    select dbms_metadata.get_ddl('TABLE','A') from dual;

    查看oracle单个数据表包含的索引:select * from user_indexes where table_name=upper('table_name');

    根据索引名查看索引包含的字段:select * from user_ind_columns where index_name = 'INDEXS_NAME';

    创建备份数据表:creact table wzxnewstu as select * from wzxstu;

    添加列:  alter table wzxaa add (name varchar2(100),code varchar(20));

    删除列:alter table wzxaa drop (name,code) 

    表重命名: rename table wzxaanew to wzxaaold;  

    注:oracle表字段类型说明:

    varcha2 ----0-4000,可变长度
    char() ----0-2000,固定长度,用空格在数据的右边补到固定长度
    number(6,2) ---6位整数、2位小数
    number(2) --2位整数
    clob ---txt文本
    blob ---图片、视频、声音等转换过来的二进制对象
    date ---sysdate

    添加表注释:学生信息表  :comment on table STUINFO is '学生信息表';

    两个表存在字段一样,复制数据:insert into  新表 select from  旧表;

    全部数据与结构:select into 新表  from 旧表;

    结构: select into 新表 from 旧表 where 1=2;

    显示用户名下所有表;select * from all_tables where owner='WZX';

    显示当前登录用户名下的所有表:select table_name from tabs;

    显示当前登录用户名下的所有表:select table_name from user_tables;

    显示当前登录用户名下的所有表:select table_name from user_tables;

    删除普通表,并未真正删除表,只是把该表放在回收站中:drop table A;

    删除带约束的表:drop table tb_date_test cascade constraints;

     

    四、常见问题

    1、ora-00955:名称已由现有对象使用

    原因:命名重复

    解决办法:在尝试刷新共享池alter system flush shared_pool;没用后,原来的表没用的话,就先删掉。原来的表有用,本次创建,你就换个表名。

     

  • 相关阅读:
    AutoMapper在ABP框架
    Github for Windows使用介绍
    Net中的反应式编程
    webstorm创建nodejs + express + jade 的web 项目
    Nancy 框架
    Quartz.NET 任务调度框架
    从电商秒杀与抢购谈Web系统大规模并发
    SVN中tag branch trunk用法详解
    Hsql中In没有1000的限制
    Gradle sourceCompatibility has no effect to subprojects(转)
  • 原文地址:https://www.cnblogs.com/wzx1blog/p/12711225.html
Copyright © 2011-2022 走看看