• 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;没用后,原来的表没用的话,就先删掉。原来的表有用,本次创建,你就换个表名。

     

  • 相关阅读:
    49. 字母异位词分组
    73. 矩阵置零
    Razor语法问题(foreach里面嵌套if)
    多线程问题
    Get json formatted string from web by sending HttpWebRequest and then deserialize it to get needed data
    How to execute tons of tasks parallelly with TPL method?
    How to sort the dictionary by the value field
    How to customize the console applicaton
    What is the difference for delete/truncate/drop
    How to call C/C++ sytle function from C# solution?
  • 原文地址:https://www.cnblogs.com/wzx1blog/p/12711225.html
Copyright © 2020-2023  润新知