Oracle SQL用ALTER TABLE语句增加列
- 格式:docx
- 大小:13.38 KB
- 文档页数:1
Oracle Modify用法在Oracle数据库中,Modify语句是用来修改已经存在的表的结构的。
通过Modify语句,我们可以在不影响表中数据的情况下,修改表的列名、数据类型以及约束等信息。
下面我们就来详细了解一下Oracle Modify语句的用法。
1. 修改列名在Oracle中,我们可以使用Modify语句来修改表中已存在的列名。
我们有一个名为“employee”的表,其中包含了一个名为“name”的列,现在我们想将这个列名修改为“full_name”。
我们可以使用下面的Modify语句来实现这一操作:```sqlALTER TABLE employeeMODIFY (name VARCHAR2(50) NOT NULL, full_name);```在上面的例子中,我们通过Modify语句将“name”列名修改为“full_name”。
2. 修改列数据类型除了修改列名之外,Modify语句还可以用来修改已存在的列的数据类型。
我们有一个名为“employee”的表,其中包含了一个名为“age”的列,数据类型为NUMBER,现在我们想将这个列的数据类型修改为VARCHAR2。
我们可以使用下面的Modify语句来实现这一操作:```sqlALTER TABLE employeeMODIFY (age VARCHAR2(3));```在上面的例子中,我们通过Modify语句将“age”列的数据类型修改为VARCHAR2。
3. 添加列约束除了修改列名和数据类型之外,Modify语句还可以用来添加列约束。
我们有一个名为“employee”的表,其中包含了一个名为“salary”的列,我们现在想给这个列添加一个非空约束。
我们可以使用下面的Modify语句来实现这一操作:```sqlALTER TABLE employeeMODIFY (salary NUMBER(10,2) NOT NULL);```在上面的例子中,我们通过Modify语句给“salary”列添加了一个非空约束。
【Oracle】需要快速建表时常⽤到的语句-- 查emp表是否存在SQL>select count(*) from user_tables where table_name=upper('emp');COUNT(*)----------1-- 删除表SQL>drop table emp;表已删除。
-- 创建表SQL>create table emp(2 id int,3 name nvarchar2(20),4primary key(id));表已创建。
-- 给表插值SQL>insert into emp2select rownum,dbms_random.string('*',dbms_random.value(6,20))3from dual4 connect by level<3001;已创建3000⾏。
-- 给表增加⼀列SQL>alter table emp add(age int);表已更改。
-- 更新表中字段SQL>update emp set age=dbms_random.value(18,65) where1=1;已更新3000⾏。
-- 设置name⼀列的宽度,为查询做准备SQL>column name format a30;-- 查询有限条⽬SQL>select*from emp where rownum<6;ID NAME AGE---------- ------------------------------ ----------1 OQTXGOYACMTC 422 ZUMTOSZUQDLRGXKULA 413 GTTIQENYUVLUXIDL 274 SRLGYXFWRHBZ 535 TIFNKNDHKNJEURYHXDY 55-- 增加⼀列SQL>alter table emp add(dept int);表已更改。
Oracle数据库常用sql语句ORACLE 常用的SQL语法和数据对象一.数据控制语句(DML) 部分1.INSER T (往数据表里插入记录的语句)INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名;字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号''.字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验.日期字段的字段值可以用当前数据库的系统时间SYSDATE, 精确到秒或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)TO_DATE()还有很多种日期格式, 可以参看OR ACLE DOC.年-月-日小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SSINSERT时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包.INSERT时如果要用到从1开始自动增长的序列号, 应该先建立一个序列号CREATE SEQUENCE 序列号的名称(最好是表名+序列号标记) INCREMENT BY 1 START WI TH 1 MAXVALUE 99999 CYCLE NOCACHE;其中最大的值按字段的长度来定, 如果定义的自动增长的序列号NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL2.DELETE (删除数据表里记录的语句)DELETE FROM表名 WHERE 条件;注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused.如果确实要删除一个大表里的全部记录, 可以用TRUNCATE 命令, 它可以释放占用的数据块表空间TRUNCATE TABLE 表名;此操作不可回退.3.UPDATE (修改数据表里记录的语句)UPDATE表名SET 字段名1=值1, 字段名2=值2, …… WHERE 条件;如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验;值N超过定义的长度会出错, 最好在插入前进行长度校验..注意事项:A. 以上SQL语句对表都加上了行级锁,确认完成后, 必须加上事物处理结束的命令COMMIT 才能正式生效,否则改变不一定写入数据库里.如果想撤回这些操作, 可以用命令ROLLBACK 复原.B. 在运行INSERT, DELETE 和UPDATE 语句前最好估算一下可能操作的记录范围,应该把它限定在较小(一万条记录) 范围内,. 否则ORACLE处理这个事物用到很大的回退段.程序响应慢甚至失去响应. 如果记录数上十万以上这些操作, 可以把这些SQL语句分段分次完成, 其间加上COMMIT 确认事物处理.二.数据定义(DDL) 部分1.CREATE (创建表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)ORACLE常用的字段类型有CHAR 固定长度的字符串VARCHAR2 可变长度的字符串NUMBER(M,N) 数字型M是位数总长度, N是小数的长度DATE 日期类型创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面创建表时可以用中文的字段名, 但最好还是用英文的字段名创建表时可以给字段加上默认值, 例如DEFAUL T SYSDATE这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间创建表时可以给字段加上约束条件例如不允许重复UNIQUE, 关键字PRIMAR Y KEY2.AL TER (改变表, 索引, 视图等)改变表的名称AL TER TABLE 表名1 TO 表名2;在表的后面增加一个字段AL TER TABLE表名ADD 字段名字段名描述;修改表里字段的定义描述AL TER TABLE表名MODIFY字段名字段名描述;给表里的字段加上约束条件AL TER TABLE 表名ADD CONSTRAINT 约束名PRIMAR Y KEY (字段名);AL TER TABLE 表名ADD CONSTRAINT 约束名UNIQUE (字段名);把表放在或取出数据库的内存区AL TER TABLE 表名CACHE;AL TER TABLE 表名NOCACHE;3.DROP (删除表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)删除表和它所有的约束条件DROP TABLE 表名CASCADE CONSTRAINTS;4.TRUNCATE (清空表里的所有记录, 保留表的结构)TRUNCATE 表名;三.查询语句(SELECT) 部分SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 条件;字段名可以带入函数例如: COUNT(*), MIN(字段名), MAX(字段名), AVG(字段名), DISTINCT(字段名), TO_CHAR(DATE字段名,'YYYY-MM-DD HH24:MI:SS')NVL(EXPR1, EXPR2)函数解释:IF EXPR1=NULLRETURN EXPR2ELSERETURN EXPR1DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函数解释:IF AA=V1 THEN RETURN R1IF AA=V2 THEN RETURN R2..…ELSERETURN NULLLPAD(char1,n,char2)函数解释:字符char1按制定的位数n显示,不足的位数用char2字符串替换左边的空位字段名之间可以进行算术运算例如: (字段名1*字段名1)/3查询语句可以嵌套例如: SELECT …… FROM(SELECT …… FROM表名1, [表名2, ……] WHERE 条件) WHERE 条件2;两个查询语句的结果可以做集合操作例如: 并集UNION(去掉重复记录), 并集UNION ALL(不去掉重复记录), 差集MINUS, 交集INTERSECT分组查询SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] GROUP BY字段名1[HAVING 条件] ;两个以上表之间的连接查询SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE表名1.字段名= 表名2. 字段名[ AND ……] ;SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE表名1.字段名= 表名2. 字段名(+) [ AND ……] ;有(+)号的字段位置自动补空值查询结果集的排序操作, 默认的排序是升序ASC, 降序是DESCSELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……]ORDER BY字段名1, 字段名2 DESC;字符串模糊比较的方法INSTR(字段名, ‘字符串’)>0字段名LIKE ‘字符串%’[‘%字符串%’]每个表都有一个隐含的字段ROWID, 它标记着记录的唯一性.四.ORACLE里常用的数据对象 (SCHEMA)1.索引(INDEX)CREATE INDEX 索引名ON 表名( 字段1, [字段2, ……] );AL TER INDEX 索引名REBUILD;一个表的索引最好不要超过三个(特殊的大表除外), 最好用单字段索引, 结合SQL语句的分析执行情况, 也可以建立多字段的组合索引和基于函数的索引ORACLE8.1.7字符串可以索引的最大长度为1578 单字节ORACLE8.0.6字符串可以索引的最大长度为758 单字节2.视图(VIEW)CREATE VIEW 视图名AS SELECT …. FROM …..;AL TER VIEW视图名COMPILE;视图仅是一个SQL查询语句, 它可以把表之间复杂的关系简洁化.3.同义词(SYNONMY)CREATE SYNONYM同义词名FOR 表名;CREATE SYNONYM同义词名FOR 表名@数据库链接名;4.数据库链接(DATABASE LINK)CREATE DATABASE LINK数据库链接名CONNECT TO 用户名IDENTIFIED BY 密码USING ‘数据库连接字符串’;数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样数据库全局名称可以用以下命令查出SELECT * FROM GLOBAL_NAME;查询远端数据库里的表SELECT …… FROM 表名@数据库链接名;五.权限管理(DCL) 语句1.GRANT 赋于权限常用的系统权限集合有以下三个:CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理)常用的数据对象权限有以下五个:ALL ON 数据对象名, SELECT ON 数据对象名, UPDATE ON 数据对象名, DELETE ON 数据对象名, INSER T ON 数据对象名, AL TER ON 数据对象名GRANT CONNECT, RESOURCE TO 用户名;GRANT SELECT ON 表名 TO 用户名;GRANT SELECT, INSERT, DELETE ON表名 TO 用户名1, 用户名2;2.REVOKE 回收权限REVOKE CONNECT, RESOURCE FROM 用户名;REVOKE SELECT ON 表名FROM 用户名;REVOKE SELECT, INSERT, DELETE ON表名FROM 用户名1, 用户名2;查询数据库中第63号错误:select orgaddr,destaddr from sm_histable0116 where error_code='63';查询数据库中开户用户最大提交和最大下发数:select MSISDN,TCOS,OCOS from ms_usertable;查询数据库中各种错误代码的总和:select error_code,count(*) from sm_histable0513 group by error_code orderby error_code;查询报表数据库中话单统计种类查询。
OracleAlterTableModify列语句在本教程中,您将学习如何使⽤Oracle ALTER TABLE MODIFY列语句来更改现有列的定义。
要更改表中列的定义,请按如下所⽰使⽤ALTER TABLE MODIFY列语法:ALTER TABLE table_nameMODIFY column_name action;语句很直接。
要修改表的列,需要指定要执⾏的列名,表名和操作。
Oracle允许执⾏多种操作,但以下是主要常⽤的操作:修改列的可见性允许或不允许NULL值缩短或扩⼤列的⼤⼩更改列的默认值修改虚拟列的表达式要修改多个列,请使⽤以下语法:ALTER TABLE table_nameMODIFY (column_name_1 action,column_name_2 action,...);Oracle ALTER TABLE MODIFY列⽰例⾸先,为演⽰创建⼀个名为accounts的新表:-- 12c语法CREATE TABLE accounts (account_id NUMBER GENERATED BY DEFAULT AS IDENTITY,first_name VARCHAR2(25) NOT NULL,last_name VARCHAR2(25) NOT NULL,email VARCHAR2(100),phone VARCHAR2(12) ,full_name VARCHAR2(51) GENERATED ALWAYS AS(first_name || ' ' || last_name),PRIMARY KEY(account_id));其次,向accounts表中插⼊⼀些⾏:INSERT INTO accounts(first_name,last_name,phone)VALUES('Trinity','Knox','410-555-0197');INSERT INTO accounts(first_name,last_name,phone)VALUES('Mellissa','Porter','410-555-0198');INSERT INTO accounts(first_name,last_name,phone)VALUES('Leeanna','Bowman','410-555-0199');第三,通过使⽤下⾯的语句验证插⼊操作:SELECT*FROMaccounts;执⾏上⾯查询语句,得到以下结果 -1. 修改列的可见性在Oracle 12c中,可以将表列定义为不可见或可见。
OracleSQL注⼊的实例总结⽬录0x00 Oracle基础Oracle 基本使⽤什么是Oracle数据库?Oracle数据库的特点相⽐于其他数据库 Oracle的优缺点登录Oracle数据库Oracle数据库基本表管理语句Oracle权限控制Oracle权限概述权限分类系统权限(⽤户权限管理)系统权限授权命令实体权限(表权限管理)引⼊知识0x01 常见注⼊类型union联合查询注⼊Oracle union联合查询注⼊基本流程error 注⼊常⽤显错函数其他常⽤显错函数Oracle error 注⼊基本流程bool盲注bool盲注相关函数Oracle bool盲注基本流程time 盲注time盲注相关函数常⽤payload带外注⼊Oracle带外注⼊带外注⼊相关函数带外注⼊过程常⽤payload总结0x00 Oracle基础Oracle 基本使⽤什么是Oracle数据库?Oracle公司⽬前是世界上最⼤的软件提供商之⼀,与它并列的还有 Microsoft与 Adode。
并且随着 Oracle的发展,它已经成为了企业办公平台的最⼤软件提供商之⼀。
Oracle数据库是 Oracle (中⽂名称叫甲⾻⽂) 公司的核⼼产品,Oracle数据库是—个适合于⼤中型企业的数据库管理系统。
在所有的数据库管理系统中(⽐如:微软的SQL Server,IBM的DB2等), Oracle的主要⽤户涉及⾯⾮常⼴包括银⾏、电信、移动通信、航空、保险、⾦融、电⼦商务和跨国公司等。
Oracle产品是免费的,可以在 Oracle官⽅⽹站上下载安装包,另⼀⽅⾯ Oracle服务是收费的。
Oracle数据库的特点完整的数据管理功能数据的⼤量性数据的保存持久性数据库共享性完备关系的产品信息准则---关系型DBMS的所有信息都在逻辑上⽤⼀种⽅法,即表中的值显式地表⽰保证访问的准则视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化完整的数据管理功能分布式处理功能⼀个 ORACLE分布式数据库由 oraclerdbms、sq|Net、 SQL CONNECT和其他⾮ ORACLE的关系型产品构成相⽐于其他数据库 Oracle的优缺点优点开放性:Oracle能在所有主流平台上运⾏(包括 windows)完全⽀持所有⼯业标准采⽤完全开放策略使客户选择适合解决⽅案对开发商全⼒⽀持并⾏性:Oracle并⾏服务器通过使组结点共享同簇⼯作来扩展windowNT能⼒提供⾼⽤性和髙伸缩性簇解决⽅案安全性:获得最⾼认证级别的ISO标准认证。
Oracle常⽤SQL命令创建表空间1.创建默认表空间WLP_DATCREATE TABLESPACE "MYSPACE" DATAFILE'D:\oracle\oradata\orcl\data/WLP_DAT.dbf' SIZE 32M REUSE AUTOEXTEND ON NEXT 32MLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;2.创建临时表空间WLP_TEMP(⽤于缓存,可以不建)ALTER TABLESPACE "TEMP" ADD TEMPFILE'D:\oracle\oradata\orcl\data/WLP_TEMP.dbf' SIZE 32m REUSE autoextend on next 32m;创建⽤户并授权1CREATE USER "WLPING" PROFILE "DEFAULT"2 IDENTIFIED BY "123456"3DEFAULT TABLESPACE "MYSPACE" //默认指定表空间4TEMPORARY TABLESPACE "TEMP" //指定缓存表空间5 ACCOUNT UNLOCK; //⽤户⾮锁定67GRANT EXECUTE ON dbms_comparison TO "WLPING";8GRANT UNLIMITED TABLESPACE TO "XIR_MD";9GRANT "CONNECT" TO "XIR_MD";10GRANT "RESOURCE" TO "XIR_MD";1112-- GRANT DBA TO XIR_MD;PROFILE:Oracle系统中的profile可以⽤来对⽤户所能使⽤的数据库资源进⾏限制,使⽤Create Profile命令创建⼀个Profile,⽤它来实现对数据库资源的限制使⽤,如果把该profile分配给⽤户,则该⽤户所能使⽤的数据库资源都在该profile的限制之内。
快速向表中插⼊⼤量数据Oracle中append与Nologging当需要对⼀个⾮常⼤的表INSERT的时候,会消耗⾮常多的资源,因为update表的时候,oracle需要⽣成 redo log和undo log;此时最好的解决办法是⽤insert, 并且将表设置为nologging;当把表设为nologging后,并且使⽤的insert时,速度是最快的,这个时候oracle只会⽣成最低限度的必须的redo log,⽽没有⼀点undo信息。
如果有可能将index也删除,重建1.alter table table_name nologging;2. insert into table_name select * from xxxx;对此有了更好的解决⽅法:1、alter table nologging;注释:Nologging的设置跟数据库的运⾏模式有关a、查询当前数据库的归档状态:select name,log_mode from v$database;默认为 NOARCHIVELOG ⾮归档b、nologging在归档模式下有效,⾮归档模式nologging不起什么作⽤c、为了提⾼插⼊的速度,我们可以对表关闭写log功能。
SQL 如下:sql> alter table table_name NOLOGGING;插⼊/修改,完数据后,再修改表写⽇志:sql> alter table table_name LOGGING;d、没有写log,速度会块很多,但是也增加了风险,如果出现问题就不能恢复。
2、drop掉索引约束之类的;注释:3、注释:a. 、append 属于direct insert,归档模式下append+table nologging会⼤量减少⽇志,⾮归档模式append会⼤量减少⽇志,append⽅式插⼊只会产⽣很少的undob、综合⼀下吧:⼀是减少对空间的搜索;⼆是有可能减少redolog的产⽣。
Oracle11g数据库管理与开发基础教程课后习题及答案第⼀章选择题1、Oracle数据库服务器包含的两个主要组件是(AB)A、Oracle实例B、oracle数据库C、内存结构D、后台进程2、create database 创建Oracle数据库时创建的⽂件包括(AC)A、数据⽂件B、控制⽂件C、⽇志⽂件D、初始化参数⽂件3、创建Oracle数据库时,createdatabase语句中指出了需要创建的数据⽂件、⽇志⽂件存储路径和名称,但没有指出需要创建的控制⽂件,因此创建数据库之前需要创建(D)个控制⽂件。
A、0B、1C、2D、任意数量4、调⽤shutdown命令关闭Oracle数据库后,以下(D)命令关闭的数据库处于不⼀致状态。
A、shutdown normalB、shutdown transactionalC、shutdown immediateD、shutdown abort5、作为普通⽤户,只有当数据库处于以下(C)状态下才可连接访问。
A、NUMOUNTB、MOUNTC、OPEND、CLOSE填空题1、SGA可分为以下⼏种主要区域:(SGA固定)、(数据库缓冲区缓存)、(重做⽇志缓冲区)、(共享池)等。
2、Oracle实例有多种后台进程,其中每个数据库实例上必须启动的后台进程包括(数据库写⼊进程)、(⽇志写⼊进程)、(检查点进程)、(进程监视进程)、(系统监视进程)等。
3、Oracle数据库的逻辑存储结构是(表空间)、(段)、(区)、(数据块)等。
4、Oracle数据库逻辑上的表空间结构与磁盘上的物理(数据)⽂件相关联。
5、下⾯连接字符串采⽤的是(简易连接)命名⽅式。
CONNECT Scott/tiger@dbs:1525@/doc/727db4ff03768e9951e79b89680203d8ce2f6aac.html编程题1.写出以下操作的SQL*PLUS命令语句:先启动Oracle实例到“已启动实例状态”,再修改Oracle实例到“数据库已装载状态”,最后修改Oracle实例到打开状态。
oracle中alter table add column遇见详解
在Oracle数据库中,ALTER TABLE语句用于修改现有表的结构。
如果你想向表中添加新列,可以使用ADD COLUMN子句。
以下是使用ALTER TABLE ADD COLUMN语句的基本语法:
其中:
●table_name是要修改的表的名称。
●column_name是要添加的新列的名称。
●data_type是新列的数据类型。
●constraint是可选的,用于添加约束条件(例如NOT NULL、UNIQUE等)。
下面是一个示例,演示如何向名为"employees"的表中添加一个名为"email"的新列,数据类型为VARCHAR2(100):
执行上述语句后,"employees"表将包含一个名为"email"的新列,其数据类型为VARCHAR2(100)。
你还可以根据需要添加约束条件。
例如,如果你希望新列中的值不能为空,可以添加NOT NULL约束:
在执行ALTER TABLE ADD COLUMN语句时,请确保你有足够的权限来修改表结构,并且在对生产数据库进行更改之前,建议先在测试环境中进行验证。
1.表空间作用表空间作用是:1,控制数据库占用磁盘的空间。
2,控制用户所占用的表空间配额。
3,通过不同表的数据、分区表中的不同的分区的数据放到不同的表空间中,可以提升数据库的I/O的性能,并有利于进行部分备份和恢复的管理工作。
4,能够将一个表的数据和这个表的索引数据分别放置到不同的表空间中,=同样可以提高数据的i/o性能。
5,可以将数据设置为只读的模式,就可以存储大量的静态数据。
2.表空间的分类表空间:系统表空间和其他表空间。
其他表空间分别有:大文件表空间,ando(撤销)表空间,临时表空间,永久表空间。
3.Oracle进程分类Oracle包括三类进程:用户进程,服务进程,后台进程。
4.查询当前数据库的实例1,select instance_name from v$instance;2,Show parameter instance;5.查询当前数据库的名字select name from v$instance;Select parameter db;6.创建、删除、修改数据库表空间创建是create tablespace tbs;修改是alter tablespace tbs;删除 drop tablespace tbs;6.1. 删除表空间Drop tablespace tbs;6.2. 删除空的表空间Drop tablespace tbs including contents and datafiles;6.3. 删除非空的表空间Drop tablespace tbs including contents;该删除语句只会从数据字典、控制文件中删除表空间信息,而与其相关的数据文件仍然存在于磁盘上,但是这些信息已将失去了作用。
7.操作数据库1,查看当前数据库版本信息:Select * from product_component_version;Select * from v$version;2,授权与取消Grant 权限(sysdba)to 用户名;Revoke 权限(sysdba)to 用户名;3,查看数据库中的那些用户被授予了sysdba或sysoper权限Select * from v$pwfile_user;4,修改用户密码Alter user 用户名identified by 新密码;5,启动实例,装载并打开数据库Startup6,启动实例,不装载数据库Startup nomount7,启动并装载数据库startup mount8,迫使其实例启动Startup force9打开一个关闭的数据库Alter database open;10,以只读模式打开数据库Alter database open read only11,用读写模式打开数据库Alter database open read write12,查看所有表Select * from user_all_tables;13,查看实例名Select instance_name from v$instance; 14,查看数据库全名Select * from global_name;15,查看表空间Select * from user_tablespaces;16,查看某表创建的时间Select open_mode from v$database; 17、查看同义词select * from user_synonyms18、查看当前数据库状态select open_mode from v$database; 19、更改为只读alter database open read only;20、查看所有用户信息select username,profile,account_status from dba_users;21、查看当前用户的角色select * from user_role_privs;22、查看当前用户的系统权限select * from user_sys_privs;23、查看当前用户的表权限select * from user_tab_privs;24、设为禁止alter system quiesce restricted8.操作数据库表8.1. 创建表Create table tableName( );8.2. 增加数据表中的列alter table mytable add(addConlom type 约束,下一个列);8.3. 删除数据表中的列Alter table tableName drop column dropcolumnName; 8.4. 删除数据表中某一列的约束名Alter table mytable drop contraint 列名。