Oracle-11g常用的SQL命令
oracle11g的基本SQL语句和函数
GROUP BY
首先创建表
create table 成绩(sno number, km varchar2(13), score number); Insert into 成绩 values(1,‟语文’,60); Insert into 成绩 values(1,‟数学’,60); Insert into 成绩 values(1,‟英语’,60); Insert into 成绩 values(2,‟语文’,70); Insert into 成绩 values(2,‟数学’,70); Insert into 成绩 values(3,‟英语’,89); commit;
插入空值
Insert into student values(3,null, to_date(„19980311‟,‟yyyy-MMdd‟)); hh mm ss
insert into student(sno,birthday) values( 4,to_date('19880601','yyyy-MM-dd'));
月、日,小时、分钟、秒 数值数据类型的声明语法: 主要的日期时间类型有:
NUMBER [( p[, s])] DATE - 存储日期和时间部分,精确到整个的秒 P表示精度,S表示小数点的位数 TIMESTAMP - 存储日期、时间和时区信息,秒值精 确到小数点后6位 Select sysdate from dual; Select to_char(sysdate,‟yyyymmdd hh24:mi:ss‟) from dual; Select to_char(sysytimestamp,‟yyyymmdd hh24:mi:ssxff6‟) from dual;
oracle常用SQL语句(汇总版)
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;查询报表数据库中话单统计种类查询。
常用oracle数据库命令
常用oracle数据库命令
1. 启动Oracle数据库
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
3. 创建表空间
创建表空间的命令是:
SQL> create tablespace 表空间名 datafile '路径名' size 大小;
6. 创建用户
7. 删除用户
删除用户的命令是:
8. 授权用户
SQL> grant 权限 to 用户名;
9. 撤销用户的权限
11. 查看表结构
查看表结构的命令是:
SQL> desc 表名;
SQL> create table 表名 (列名数据类型, 列名数据类型, …);
13. 删除表
14. 插入数据
插入数据的命令是:
SQL> update 表名 set 列名=新值 where 某条件;
18. 创建索引
20. 查看索引
21. 查询相关信息
查询相关信息的命令是:
SQL> select * from v$session; -- 查看会话 22. 查看数据库版本
24. 备份数据库
$ exp 用户名/密码 file=备份文件路径备注:以上命令均需要在Oracle登录后进行。
ORACLE 11g SELECT 语句基础语法
一、SELECT语句基础语法SELECT [ALL |DISTINCT TOP N [PERCENT] WITH TIES SELECT_LIST#SELECT 子句,用于指定由查询返回的列。
[INTO [new_table_name]]#INTO子句,将检索结果存储到新表或视图中。
FROM {table_name|view_name} [(optimizer_hints)],...#FROM子句,用于指定引用的表或视图,需指定多个表或视图,用“,”分开即可。
[WHERE search_condition]#WHERE子句,用于指定限制返回的行的搜索条件,若无此子句,则默认表中的所有行都满足条件。
[GROUP BY group_by_expression]#GROUP BY子句,指定用来放置输出行的组,并且如果SELECT子句中<select list>中包含聚合函数,则计算每组的汇总值。
[HAVING search_condition]#指定组或聚合的搜索条件,通常搭配GROUP BY子句一起使用。
[ORDER BY order_by_expression]#指定结果集的排序,其中ASC表示升序,DESC表示降序,默认是ASC升序。
若不存在此子句,则指定表中的数据的存放位置来显示数据。
[COMPUTE clause][FOR BROWSE];#注:SELECT语句就像叠加在数据库表上的过滤器,即选择查询用于定位数据库特定的列和行。
二、SELECT语句详细解析1、SELECT子句(1)SELECT子句:指定由查询返回的列,可以一次指定多个列,用“,”分开即可,并且可以调整列的顺序。
(2)SELECT子句语法:SELECT {column_name_1,column_name_2,...,column_name_n}(3)SELECT子句中,应避免使用通配符“*”,尽可能的查询符合某种条件的数据,从而提高查询效率。
oracle11g教程从入门到精通
韩顺平—玩转oracle视频教程笔记一:Oracle认证,与其它数据库比较,安装Oracle安装会自动的生成sys用户和system用户:(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install(2)system用户是管理操作员,权限也很大。
具有sysoper角色,没有create database的权限,默认的密码是manager(3)一般讲,对数据库维护,使用system用户登录就可以拉也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
二: Oracle的基本使用--基本命令sql*plus的常用命令连接命令1.conn[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper2.disc[onnect]说明: 该命令用来断开与当前数据库的连接3.psssw[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
4.show user说明: 显示当前用户名5.exit说明: 该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令1.start和@说明: 运行sql脚本案例: sql>@ d:\a.sql或是sql>start d:\a.sql2.edit说明: 该命令可以编辑指定的sql脚本案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开3.spool说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql 并输入 sql>spool off交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。
oracle 11g ssl 配置查询语句 -回复
oracle 11g ssl 配置查询语句-回复在Oracle 11g中配置SSL是一项重要的任务,以确保安全的数据库通信。
SSL(Secure Sockets Layer)是一种安全协议,用于加密客户端和服务器之间的通信,防止数据在传输过程中被窃取或篡改。
本文将为您详细介绍如何配置Oracle 11g的SSL功能,让您的数据库通信更加安全可靠。
首先,我们需要确保您已经获得了有效的SSL证书。
证书是一种数字证明,用于验证服务器身份并加密通信。
您可以从公认的认证机构(CA)或第三方供应商获得SSL证书。
现在,我们可以开始配置Oracle 11g的SSL功能。
请按照以下步骤进行操作:第一步:检查Oracle 11g是否已安装SSL支持在开始配置SSL之前,我们需要确保Oracle 11g已经安装了SSL支持。
要检查是否已安装SSL支持,您可以执行以下查询语句:SELECT * FROM voption WHERE parameter = 'Advanced Security';如果结果集中显示“TRUE”,这意味着已安装了Advanced Security选项,也就是SSL支持。
第二步:创建Oracle钱包钱包是存储SSL证书和密钥的文件容器。
要创建Oracle钱包,您需要执行以下步骤:1. 使用以下命令登录到数据库服务器:sqlplus / as sysdba2. 在SQL*Plus提示下,输入以下命令创建钱包:SQL> ADMINISTER KEY MANAGEMENT CREATE KEYSTORE'<wallet_directory>' IDENTIFIED BY '<password>' FORCE keystore_type [auto_login] [ENABLE] HSM;在上述命令中,您需要指定钱包的目录和密码。
oracle sql 语句
oracle sql 语句创建与此标题相符的正文并拓展:Oracle SQL是一种用于管理和处理数据库的强大编程语言。
它被广泛用于各种企业级应用程序和数据库系统中。
Oracle SQL提供了丰富的功能和语法,使开发人员能够执行各种数据库操作,如数据查询、插入、更新和删除等。
在Oracle SQL中,创建数据表是一个非常重要的操作。
通过使用CREATE TABLE语句,可以定义表的结构、字段和约束。
例如,以下是一个创建学生表的示例:CREATE TABLE Students (StudentID NUMBER(10),FirstName VARCHAR2(50),LastName VARCHAR2(50),Age NUMBER(3),Gender CHAR(1),PRIMARY KEY (StudentID));上面的语句创建了一个名为Students的表,包含了StudentID、FirstName、LastName、Age和Gender等字段。
其中,StudentID字段被定义为主键,确保了每个学生都有一个唯一的标识符。
除了创建表,Oracle SQL还提供了各种其他类型的语句,用于插入、更新和删除数据。
例如,以下是一个插入学生数据的示例:INSERT INTO Students (StudentID, FirstName, LastName, Age, Gender)VALUES (1, 'John', 'Doe', 20, 'M');上面的语句将一条新的学生记录插入到Students表中。
此外,Oracle SQL还提供了强大的查询功能,用于检索和过滤数据。
例如,以下是一个查询所有年龄大于等于18岁的学生的示例: SELECT * FROM StudentsWHERE Age >= 18;上面的语句将返回所有满足条件的学生记录。
除了基本的查询语句,Oracle SQL还支持复杂的查询操作,如联接(join)、子查询(subquery)和聚合函数(aggregate function)等。
oracle常用的SQL及语法
1、两个oracle 开发工具介绍a)SqlDbx王金生曾推荐过的一款数据库客户端开发工具,使用容易,不需要额外的安装其它插件,有sql提示功能,支持Oracle,Sybase ASE, IBM,DB2/UDB, MicrosoftSQL Server 和ODBC数据源,免费绿色版。
b)PLSQL Developer专门针对oracle开发的一款比较专业的客户端工具,除了常用的数据库操作外,还支持存储过程及函数的调试功能等比较高级的功能,详细的操作可以安装完毕后大家去慢慢研究。
配置方式见网上找的一段方法,第二种:/view/65b5a80f6c85ec3a87c2c583.html以上提到的工具及可能用到的插件见共享目录中的文件。
2、oracle 与 sqlserver 语法大比较a)oracle各类型字段描述b)字段类型比较c)常用函数比较注:此处仅记录语法有区别的地方,更多丰富的语法请查看附件中的手册。
以下的exp为expression的缩写d)关于脏读目前我们使用的sqlserver 数据库,在查询数据时,都要求在select语句中后面跟一个(nolock)或(with nolock)来保证读取大表时不影响其它程序进程的数据操作。
在oracle中,目前还不允许脏读的方式,在每次select 后,读到的数据都是已经commit的数据,所以为了避免读取数据的不准确,程序中如果有比较耗时的sql 操作,尤其是在insert 和update后,尽量减小事务,而且要在事务结束后及时commit。
e)表(主键、外键、CHECK、UNIQUE、DEFAULT、INDEX)在创建表及其主键、外键、CHECK、UNIQUE、DEFAULT、INDEX时,SQL SERVER 与ORACLE的语法大致相同。
主要区别如下:Oracle定义表字段的default属性紧跟字段类型之后,如下:Create table MZ_Ghxx( ghlxh number primay key ,rq date default sysdate not null,….)而不能写成Create table MZ_Ghxx( ghlxh number primay key ,rq date not null default sysdate,….)f)存储过程/函数结构的不同SQLSERVER中存储过程的结构大致如下CREATE PROCEDURE procedure_name/*输入、输出参数的声明部分*/ASDECLARE/*局部变量的声明部分*/BEGIN/*主体SQL语句部分*//*游标声明、使用语句在此部分*/ENDORACLE中存储过程的结构大致如下CREATE OR REPLACE PROCEDURE procedure_name(/*输入、输出参数的声明部分*/ )AS/*局部变量、游标等的声明部分*/BEGIN/*主体SQL语句部分*//*游标使用语句在此部分*/EXCEPTION/*异常处理部分*/END ;ORACLE端FUNCTION语法说明CREATE [OR REPLACE] FUNCTION function_name[(argument [{IN | OUT | IN OUT }] ) type,…[(argument [{IN | OUT | IN OUT }] ) typeRETURN return_type {IS | AS}BEGIN…END;变量赋值在SQL SERVER语句中用如下语句对局部变量赋值(初始值或数据库表的字段值或表达式):“SELECT 局部变量名= 所赋值(初始值或数据库表的字段值或表达式)”;而在ORACLE中,将初始值赋给局部变量时,用如下语句:“局部变量名: = 所赋值(初始值或表达式);”,将检索出的字段值赋给局部变量时,用如下语句:“SELECT 数据库表的字段值INTO 局部变量名…”。
Oracle 11g完全手册
一.Window下关闭Oracle 11g正常在Windows下安全关闭Oracle数据库系统的步骤如下:1.从命令行下找到oracle的BIN目录,然后输入isqlplusctl stop命令停止isqlplus进程。
2.同样在BIN目录下,emctl stop dbconsole停止企业管理器的控制台进程。
3.同样在BIN目录下,lsnrctl stop停止监听进程。
4.在命令行下输入sqlplus /nolog , 然后conn / as sysdba连接到数据库shutdown immediate;====================================================================== select username,password from dba_users; --查看用户信息select username,account_status from dba_users; --查看用户是否解锁alter user scott account unlock; --解锁scott用户alter user scott account lock;--锁scott用户alter user scott identified by tiger; --为scott用户修改密码为tiger创建用户以及给表赋予权限:创建用户create user user_name identified by password;grant dba to user_name;查询表的权限grant select on gecs_law to user_name;select file_name from dba_data_files; --查看数据文件路径select name from v$controlfile; --查看控制文件路径select member from v$logfile; --查看日志文件路径====================================================================== Oracle关于shutdown、startup几个参数:shutdown有四个参数:normal、transactional、immediate、abort。
oracle11gimp用法
oracle11gimp用法Oracle 11g IMP(Import)用法指南Oracle 11g是一种强大的关系数据库管理系统,它提供了多种工具和功能,其中之一是IMP(Import)工具,它用于将先前导出的数据和对象导入到Oracle数据库中。
本文将介绍Oracle 11g IMP工具的用法,帮助您使用它进行数据导入。
首先,确保您已经安装了Oracle 11g数据库,并具备正确的权限以执行导入操作。
使用IMP工具进行数据导入的基本语法如下:```imp username/password@database file=<导入文件路径> full=y```其中,`username/password@database`是您的数据库登录凭据,`file=<导入文件路径>`是导入文件的路径和名称,`full=y`表示导入所有数据和对象。
下面是一些常用的IMP工具参数:1. FROMUSER和TOUSER:用于指定要导入数据的源用户和目标用户。
例如:```imp username/password@database fromuser=<源用户> touser=<目标用户>file=<导入文件路径> full=y```2. TABLES:可以通过指定TABLES参数来限制只导入特定的表。
例如:```imp username/password@database tables=(table1, table2) file=<导入文件路径> full=y```3. IGNORE:用于指定在导入过程中遇到重复记录时的操作。
可以选择忽略(ignore)或替换(replace)重复记录。
例如:```imp username/password@database ignore=y file=<导入文件路径> full=y```4. INDEXES:可以使用INDEXES参数来控制是否导入表的索引。
达内学习心得:Oracle_11g常用SQL语句(高级工程师必备)
达内学习心得:Oracle_11g常用SQL语句(高级工程师必备)参赛学员:吴贤志获奖奖项:三等奖-- 退出SQLPLUSexit;-- 修改system(sys) 账号密码SQLPLUS /NOLOGCONN /AS SYSDBAALTER USER SYSTEM IDENTIFIED BY tarring;-- 清除SQLPLUS 屏幕CLEAR SCREEN;CL SCR;-- 查看数据文件位置SELECT NAME FROM v$datafile;-- 查看控制文件位置SELECT NAME FROM v$controlfile;-- 查看日志文件位置SELECT MEMBER FROM v$logfile;-- 建立表空间CREATE TABLESPACE ts01DA TAFILE 'D:\DataBase\Oracle11g\oradata\orcl\test_db01.dbf'SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 1024MDEFAULT STORAGE(INITIAL 10m NEXT 1M)PERMANENTONLINELOGGING;-- 修改表空间ALTER TABLESPACE ts01NOLOGGING;-- 表空间增加数据文件ALTER TABLESPACE ts01ADD DATAFILE 'D:\DataBase\Oracle11g\oradata\orcl\test_db02.dbf'SIZE 100M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;-- 删除表空间DROP TABLESPACE ts01;-- 删除表空间同时删除数据文件DROP TABLESPACE ts01 INCLUDING CONTENTS AND DATAFILES;-- 表空间中建表CREATE TABLE student(student_id V ARCHAR2(10),student_name V ARCHAR2(20))TABLESPACE ts01;-- 查看表所属表空间SELECT TABLE_NAME, TABLESPACE_NAME FROM tabs WHERE TABLE_NAME = 'STUDENT';-- 查看表结构DESCRIBE student;DESC student;-- 增加表注释COMMENT ON TABLE student IS '学生信息表';-- 查看表注释SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME = 'STUDENT'; SELECT * FROM ALL_TAB_COMMENTS WHERE TABLE_NAME = 'STUDENT';-- 表字段增加注释COMMENT ON COLUMN STUDENT.STUDENT_ID IS '学生编号';-- 查看表字段注释SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME = 'STUDENT'; SELECT * FROM ALL_COL_COMMENTS WHERE TABLE_NAME = 'STUDENT';-- 查看用户所有表SELECT * FROM User_Tables;-- 查看用户拥有的所有对象SELECT * FROM User_Objects;-- 查看用户拥有的表试图序列SELECT * FROM User_Catalog;-- 表字段修改ALTER TABLE student MODIFY(student_id CHAR(15));-- 表字段增加ALTER TABLE STUDENT ADD(AGE NUMBER(2));-- 删除表字段ALTER TABLE STUDENT DROP COLUMN student_name;-- 修改表名称RENAME STUDENT TO STU;-- 删除表DROP TABLE STUDENT;CREATE TABLE student(s_id Varchar2(10),s_name varchar2(20),s_age Number(3),s_birthday DATE)TABLESPACE ts01;-- 增加一条记录INSERT INTOstudent (s_id, s_name, s_age, s_birthday)V ALUES ('S000000001', 'Tarring01', 10, to_date('1982-10-06','yyyy-mm-dd'));INSERT INTOstudent (s_id, s_name, s_age, s_birthday)V ALUES ('S000000002', 'Tarring02', 10, Sysdate);-- 使用替代变量时,输入字符串字段时一样要写上引号INSERT INTOstudent (s_id, s_name, s_age, s_birthday)V ALUES (&s_id, &s_name, 10, Sysdate);-- 修改记录UPDATE student SET s_name = '陶川', s_age = 20 WHERE s_id = 'S000000002';-- 删除记录DELETE FROM student WHERE s_id = 'S000000002';-- 截断表TRUNCATE TABLE student;-- 事务处理COMMIT; -- 提交事务INSERT INTO student (s_id, s_name) V ALUES ('S001', 'tarring1');ROLLBACK; -- 回滚,回滚到上一次提交过后的点-- 带恢复点的事务COMMIT;INSERT INTO student (s_id, s_name) V ALUES ('S001', 'tarring1');SA VEPOINT firstdate;INSERT INTO student (s_id, s_name) V ALUES ('S002', 'tarring2');SA VEPOINT seconddate;DELETE FROM student;ROLLBACK TO firstdate;SELECT * FROM student;-- 约束条件说明---------------------------------------------------------------------- UNIQUE 指定字段的值,必须是唯一的-- PRIMARY KEY 主键,会为指定的字段作索引,并且也是唯一的值-- NOT NULL 不可以是空值【'' NULL】或0(零)-- CHECK 检查,必须符合指定的条件-- FOREIGN KEY 外键,用来创建一个参考表之间的关系-- 建表同时建立唯一约束CREATE TABLE student(s_id Varchar2(10),s_name varchar2(20),s_age Number(3),s_birthday DATE,CONSTRAINT s_name_uk UNIQUE(s_name))TABLESPACE ts01;-- 查看唯一约束SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';-- 作业:数据字典【分类常用】-- 建表同时建立主键CREATE TABLE student(s_id Varchar2(10),s_name varchar2(20),s_age Number(3),s_birthday DATE,CONSTRAINT s_id_pk PRIMARY KEY (s_id))TABLESPACE ts01;-- 查看主键约束SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';-- 建表同时建立非空字段CREATE TABLE student(s_id Varchar2(10),s_name varchar2(20) NOT NULL,s_age Number(3),s_birthday DATE,CONSTRAINT s_id_pk PRIMARY KEY (s_id))TABLESPACE ts01;INSERT INTO student (s_id, s_name) V ALUES ('S001', NULL); -- 插入一个null-- 查看非空约束SELECT table_name, constraint_name, constraint_type, search_condition FROM User_Constraints WHERE table_name = 'STUDENT';-- 建表同时建立检查CREATE TABLE student(s_id Varchar2(10),s_name varchar2(20),s_age Number(3),s_birthday DATE,CONSTRAINT s_age_ck CHECK (s_age BETWEEN 1 AND 100) -- 端点值可以使用)TABLESPACE ts01;-- 查看检查约束SELECT table_name, constraint_name, constraint_type, search_condition FROM User_Constraints WHERE table_name = 'STUDENT';-- 外键的使用CREATE TABLE team(t_id Varchar2(10),t_name Varchar2(20),CONSTRAINT t_id_pk PRIMARY KEY (t_id))TABLESPACE ts01;CREATE TABLE student(s_id Varchar2(10),team_id V ARCHAR2(10),s_name varchar2(20),CONSTRAINT s_id_pk PRIMARY KEY (s_id),CONSTRAINT s_team_id_fk FOREIGN KEY (team_id) REFERENCES team(t_id))TABLESPACE ts01;-- 查看表的外键约束SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';drop table team; -- 被引用表是不能删除的insert into team (t_id, t_name) values ('t001', 'lansene');insert into student(s_id, s_name, team_id) values ('s001','tarring', 't001');delete from team; -- 被引用的记录是不能删除的-- 关闭一个约束ALTER TABLE student DISABLE CONSTRAINT s_team_id_fk;-- 启用一个约束ALTER TABLE student ENABLE CONSTRAINT s_team_id_fk;-- 删除一个约束ALTER TABLE student DROP CONSTRAINT s_team_id_fk;-- 已创建的表增加一个约束ALTER TABLE student ADD CONSTRAINT s_team_id_fk FOREIGN KEY (team_id) REFERENCES team(t_id);/****************************************************************************** **************|| SQL语句5大类型| 命令| 说明||****************************************************************************** **************|| Data Retrieval数据检索| select | 查询记录||****************************************************************************** **************|| Date Manipulation Language【DML】数据操纵语言| insert | 添加记录|| | update | 修改记录|| | delete | 删除记录|****************************************************************************** **************|| Data Definition Language【DDL】数据定义语言| create | 创建|| | alter | 修改|| | drop | 丢弃【删除】|| | rename | 重命名|| | truncate | 截断||****************************************************************************** **************|| Transaction Control事务控制| commit | 确认命令|| | rollback | 回退至前一次确认的命令或保存点|| | savepoint | 设置保存点||****************************************************************************** **************|| Data Control Language【DCL】数据控制语言| grant | 授予权限|| | revoke | 撤消权限||****************************************************************************** **************//*************************************|| 系统权限| 说明||*************************************|| create session | 连接数据库||*************************************|| create table | 创建表||*************************************|| create sequence | 创建序列||*************************************|| create view | 创建视图||*************************************|| create proceduer | 创建程序||*************************************//*******************************************************************|| \ 对象| 表【table】| 视图【view】| 程序【procedure】|| 权限\ | | | ||*******************************************************************|| insert | Y | Y | ||*******************************************************************|| alter | Y | | ||*******************************************************************|| update | Y | Y | ||*******************************************************************|| delete | Y | Y | ||*******************************************************************|| select | Y | Y | ||*******************************************************************|| index | Y | | ||*******************************************************************|| execute | | | Y ||*******************************************************************/-- 创建用户CREATE USER u01 IDENTIFIED BY p01;-- 创建用户并制定默认表空间CREATE USER u01 IDENTIFIED BY p01 DEFAULT TABLESPACE QUOTA 2M ON ts01; --quota 表空间中可使用的配额-- 修改用户密码ALTER USER u01 IDENTIFIED BY p001;-- 修改用户表空间配额ALTER USER u01 QUOTA 20M ON ts01;ALTER USER u01 QUOTA UNLIMITED ON ts01; -- 用户对表空间没有配额限制-- 回收unlimited tablespace权限REVOKE UNLIMITED TABLESPACE FROM ts01;-- 删除用户DROP USER u01;-- 切换连接数据库的用户CONNECT u01/p01;conn u01/p01;-- 授权用户连接数据库的权限GRANT CREATE SESSION TO u01;-- 授权用户创建序列(sequence)的权限GRANT CREATE sequence TO u01;-- 授权用户创建表的权限GRANT CREATE TABLE TO u01;--授权用户查表的权限grant select on er1 to wangkai;--授权用户修改表的权限grant alter on user1 to wangkai;--授权用户删除表的权限(没有此权限)grant drop on user1 to wangkai;(错误)--授权用户对一个表的所有权限grant all on user1 to wangkai;--授权所有用户对一个表的所有权限grant all on user1 to public;-- 收回用户创建表的权限REVOKE CREATE TABLE FROM u01;-- 收回用户查表的权限REVOKE select on user1 FROM u01;-- 收回用户修改的权限REVOKE select on user1 FROM u01;-- 收回用户对一个表的所有权限revoke all on user1 from wangkai;--收回所有用户对一个表的所有权限revoke all on user1 to public;-- 创建角色CREATE ROLE r01;-- 角色授权GRANT CREATE SESSION, CREATE TABLE TO r01;-- 收回角色权限REVOKE CREATE TABLE FROM r01;-- 查看角色权限SELECT ROLE,PRIVILEGE FROM role_sys_privs WHERE ROLE='R01' -- 角色赋给用户GRANT r01 TO u01;-- 查看当前用户角色SELECT * FROM user_role_privs;-- 删除角色DROP ROLE r01;。
oracle的sql语句
oracle的sql语句Oracle的SQL语句可以用于查询、插入、更新和删除数据库中的数据。
以下是一些常见的Oracle SQL语句示例:1. 查询数据:- 查询所有记录:SELECT * FROM 表名;- 查询指定列:SELECT 列名1, 列名2 FROM 表名;- 带条件查询:SELECT * FROM 表名 WHERE 条件;- 排序查询:SELECT * FROM 表名 ORDER BY 列名ASC/DESC;- 分组查询:SELECT 列名, COUNT(*) FROM 表名GROUP BY 列名;2. 插入数据:- 插入单条记录:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);- 插入多条记录:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2), (值3, 值4), ...;3. 更新数据:- 更新单个字段:UPDATE 表名 SET 列名 = 新值WHERE 条件;- 更新多个字段:UPDATE 表名 SET 列名1 = 新值1, 列名2 = 新值2 WHERE 条件;4. 删除数据:- 删除所有记录:DELETE FROM 表名;- 删除满足条件的记录:DELETE FROM 表名 WHERE 条件;5. 聚合函数:- 计算总数:SELECT COUNT(*) FROM 表名;- 计算平均值:SELECT AVG(列名) FROM 表名;- 计算最大值:SELECT MAX(列名) FROM 表名;- 计算最小值:SELECT MIN(列名) FROM 表名;- 计算求和:SELECT SUM(列名) FROM 表名;这些只是一些常见的Oracle SQL语句示例,实际使用中还可以结合其他语句和函数进行更复杂的查询和操作。
oracle11g删除实例
oracle11g删除实例Oracle 11g 是一种关系型数据库管理系统,用于存储和管理大量的结构化数据。
当不再需要某个数据库实例时,我们可以通过删除实例来释放系统资源。
下面是有关 Oracle 11g 删除实例的一些参考内容。
1. 停止数据库实例在删除数据库实例之前,我们需要先停止该实例的运行。
可以使用 SQL*Plus 或者 SQL Developer 工具来连接数据库,并使用以下命令停止数据库实例:```sqlshutdown immediate;```这会强制关闭数据库实例并释放所有系统资源。
2. 查看数据库实例状态在删除数据库实例之前,我们可以使用以下命令来查看数据库实例的状态,以确保数据库实例已经正常关闭:```sqlselect status from v$instance;```3. 删除数据库实例删除数据库实例需要在操作系统级别执行,并且需要具有适当的管理员权限。
以下是一些常见的删除数据库实例的步骤: -- 停止监听器首先,需要停止监听器,可以使用以下命令来停止监听器(具体命令可能会因操作系统而有所不同):```bashlsnrctl stop```-- 删除数据库实例目录接下来,需要删除实例目录。
数据库实例目录通常包含数据库的数据文件、控制文件、日志文件等。
在删除实例之前,确保已备份数据库文件,并且确定不再需要这些文件。
在删除实例目录之前,使用以下命令查看数据库实例目录的位置: ```sqlshow parameter db_create_file_dest;```找到实例目录的路径后,可以使用以下命令将其删除(确保在删除之前正确备份数据库文件):```bashrm -rf <实例目录路径>```-- 删除数据库配置文件最后,需要删除数据库配置文件。
默认情况下,Oracle 数据库实例的配置文件存储在 `$ORACLE_HOME/dbs` 目录下。
使用以下命令进入配置文件所在的目录:```bashcd $ORACLE_HOME/dbs```然后使用以下命令删除数据库配置文件(确保在删除之前正确备份配置文件):```bashrm -rf init<数据库实例名>.ora```4. 清理 Oracle 相关进程在删除数据库实例后,还可能需要清理与实例相关的 Oracle 进程。
在oracle11g中使用oraclesqldeveloper创建、查看表空间的命令
在oracle11g中使⽤oraclesqldeveloper创建、查看表空间的命令通过pl/sql登录到Oracle数据库上,然后执⾏菜单:⽂件/新建/命令窗⼝,打开⼀个命令窗⼝然后在该命令窗⼝中执⾏脚本创建和删除表空间创建表空间Sql>create tablespace histdb datafile 'D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf' size 200m autoextend on next 10m maxsize unlimited;Sql>alter database datafile 'D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf' autoextend on;1) DATAFILE: 表空间数据⽂件存放路径2) SIZE: 起初设置为200M3) UNIFORM: 指定区尺⼨为128k,如不指定,区尺⼨默认为64k4) 空间名称histdb 与数据⽂件名称 histdb.dbf 不要求相同,可随意命名.5) AUTOEXTEND ON/OFF 表⽰启动/停⽌⾃动扩展表空间6) alter database datafile ' D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf ' resize 500m; //⼿动修改数据⽂件⼤⼩为500M删除表空间DROP TABLESPACE histdb INCLUDING CONTENTS AND DATAFILES;查看selectb.file_name 物理⽂件名,b.tablespace_name 表空间,b.bytes/1024/1024 ⼤⼩M,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使⽤M,substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利⽤率from dba_free_space a,dba_data_files bwhere a.file_id=b.file_idgroup by b.tablespace_name,b.file_name,b.bytesorder by b.tablespace_name。
oracle语句大全及用法
oracle语句大全及用法Oracle语句是Oracle数据库中用于管理和操作数据的SQL语句。
以下是一些常用的Oracle语句及其用法:1. 数据定义语句(DDL)CREATE DATABASE:用于创建新的数据库。
CREATE TABLE:用于创建新的表。
语法如下:sql`CREATE TABLE table_name (column1 datatype1, column2 datatype2, ...);`ALTER TABLE:用于修改现有的表结构,如添加、删除或修改列。
DROP TABLE:用于删除现有的表。
CREATE INDEX:用于在表上创建索引,以提高查询性能。
2. 数据操纵语句(DML)SELECT:用于从表中查询数据。
语法如下:sql`SELECT column1, column2, ... FROM table_name;`INSERT INTO:用于向表中插入新的数据行。
语法如下:sql`INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);`UPDATE:用于修改表中的现有数据。
DELETE:用于从表中删除数据。
3. 数据控制语句(DCL)GRANT:用于授予用户或角色对数据库对象的访问权限。
REVOKE:用于撤销用户或角色对数据库对象的访问权限。
4. 事务控制语句(TCL)COMMIT:用于提交当前事务,使所做的更改永久生效。
ROLLBACK:用于撤销当前事务,恢复到事务开始前的状态。
SAVEPOINT:用于在事务中设置保存点,以便在之后的某个时刻可以回滚到该点。
5. 其他常用语句DECLARE:用于声明变量或常量,并为其分配数据类型和初始值。
BEGIN ... END:用于定义PL/SQL代码块的开始和结束。
IF ... THEN ... ELSE:用于条件判断,根据条件执行不同的操作。
ORACLE常用SQL语句大全
ORACLE常用SQL语句大全一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat'--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not nul l],..)根据已有的表创建新表:A:select * into table_new from table_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle>5、说明:删除表drop table tablename6、说明:增加一个列,删除一个列A:alter table tabname add column col typeB:alter table tabname drop column colname注:DB2DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、添加主键:Alter table tabname add primary key(col)删除主键:Alter table tabname drop primary key(col)8、创建索引:create [unique] index idxname on tabname(col….)删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。
oracle11g 创建表语句
在Oracle 11g中,您可以使用SQL语句来创建表。
以下是一个基本的创建表语句的示例:
sql
CREATE TABLE table_name (
column1 datatype [constraint],
column2 datatype [constraint],
...
columnN datatype [constraint]
);
在上面的示例中,您需要将table_name替换为您要创建的表的名称。
然后,您可以定义表中的列,每列由列名、数据类型和可选的约束组成。
以下是一个更具体的示例,演示如何在Oracle 11g中创建一个名为employees的表,其中包含id、name和salary列:
sql
CREATE TABLE employees (
id NUMBER PRIMARY KEY,
name VARCHAR2(50),
salary NUMBER(10, 2)
);
在上面的示例中:
id列被定义为NUMBER数据类型,并设置为主键约束(PRIMARY KEY),这意味着每个id 值必须是唯一的。
name列被定义为VARCHAR2数据类型,最大长度为50个字符。
salary列被定义为NUMBER数据类型,并指定了精度和小数位数,即总共10位数,其中2位是小数。
请注意,上述示例中的数据类型和约束只是示例,您可以根据自己的需求进行调整。
另外,还可以在创建表时添加其他约束,如唯一约束、外键约束等。
Oracle11g常用基本操作命令
Oracle11g常⽤基本操作命令 这⾥是单实例数据库情况下:1、启动监听 启动监听,即启动1521监听端⼝号:lsnrctl start #启动监听lsnrctl stop #停⽌监听lsnrctl status #查看监听状态 监听端⼝1521修改:# su - oracle$ lsnrctl stop$ echo $ORACLE_HOME$ cd $ORACLE_HOME/network/admin$ vim listener.ora# listener.ora Network Configuration File: /home/data/oracle/product/11.2.0/db_1/network/admin/listener.ora# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC6666))(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 6666))))ADR_BASE_LISTENER = /home/data/oracle直接在此处修改是不⽣效的,我们还需要修改local_listener参数$ sqlplus / as sysdbaSQL> show parameter local_listener #登录并查看local_listener参数//由于开始的时候使⽤的是默认值,这个时候VALUE这个值应该是空的,这⾥修改local_listener参数SQL> alter system set local_listener="(address = (protocol = tcp)(host = 10.10.16.245)(port = 6666))";SQL> show parameter local_listener #查看local_listener参数$ lsnrctl start #重新启动监听$ netstat -an|grep 6666 #查看状态$ lsnrctl status$ su - root #防⽕墙端⼝开放# /sbin/iptables -I INPUT -p tcp --dport 6666 -j ACCEPT# /etc/rc.d/init.d/iptables save#到此oracle的监听端⼝号就已经由原来的1521变成6666View Code2、启动数据库 启动数据库有两种⽅式,⼀种是登录sqlplus执⾏startup;另⼀种是使⽤dbstart //启动数据库脚本⽤oracle⽤户进⼊# su - oracle$ sqlplus /nolog #运⾏sqlplus命令,进⼊sqlplus环境,nolog参数表⽰不登录;SQL> conn /as sysdba #以管理员模式进⼊SQL > startup; #启动数据库SQL > SHUTDOWN IMMEDIATE #停⽌数据库远程连接数据库sqlplus /nologconn sys/sys@IP:1521/orainstance as sysdba也可以直接运⾏:dbstart //启动数据库脚本dbshut //停⽌数据库脚本3、⽤户管理 创建普通⽤户,权限相关:创建⽤户:SQL> create user "username" identified by "userpasswd" ; #注:后⾯可带表空间删除⽤户:SQL> drop user “username” cascade; #注:cascade 参数是级联删除该⽤户所有对象,经常遇到如⽤户有对象⽽未加此参数则⽤户删不了的问题,所以习惯性的加此参数授权⽤户:SQL> grant connect,resource,dba to "username" ;查看当前⽤户的⾓⾊SQL> select * from user_role_privs;SQL> select * from session_privs;查看当前⽤户的系统权限和表级权限SQL> select * from user_sys_privs;SQL> select * from user_tab_privs;查询⽤户表SQL> select username from dba_users;修改⽤户⼝令SQL> alter user "username" identified by "password";显⽰当前⽤户SQL> show user;4、表和表空间创建表空间SQL> CREATE TABLESPACE data01 DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M;删除表空间SQL> DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;修改表空间⼤⼩SQL> alter database datafile '/path/NADDate05.dbf' resize 100M;增加表空间SQL> ALTER TABLESPACE NEWCCS ADD DATAFILE '/u03/oradata/newccs/newccs04.dbf' SIZE 4896M;查询数据库⽂件SQL> select * from dba_data_files;查询当前存在的表空间SQL> select * from v$tablespace;表空间情况SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;查询表空间剩余空间SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;查看表结构SQL> desc table;修改连接数:要重启数据库SQL> alter system set processes=1000 scope=spfile;SQL> shutdown immediate;SQL> startup;查看⽤户当前连接数SQL> select count(*) from sys.v_$session;5、修改字符集相关 将数据库启动到RESTRICTED模式下做字符集更改:$ sqlplus / as sysdbaSQL> select * from v$nls_parameters; #查看当前系统使⽤的各种字符集SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; #精确查询NLS_CHARACTERSET值SQL> shutdown immediate; #关闭数据库SQL> startup mount #启动实例,可以加载数据库,不运⾏数据库DBA在做⼀些操作的时候不希望有⼈登⼊数据库可以使⽤restrict模式:SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; #开启限制会话模式Oracle job进程,包含协调进程(主进程)以及奴⾪进程(⼦进程),job_queue_processes取值范围为0到1000,总共可创建多少个job进程由job_queue_processes参数来决定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-- 退出SQLPLUSexit;-- 修改system(sys) 账号密码SQLPLUS /NOLOGCONN /AS SYSDBAALTER USER SYSTEM IDENTIFIED BY tarring;-- 清除SQLPLUS 屏幕CLEAR SCREEN;CL SCR;-- 查看数据文件位置SELECT NAME FROM v$datafile;-- 查看控制文件位置SELECT NAME FROM v$controlfile;-- 查看日志文件位置SELECT MEMBER FROM v$logfile;-- 建立表空间CREATE TABLESPACE ts01DATAFILE 'D:\DataBase\Oracle11g\oradata\orcl\test_db01.dbf'SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 1024MDEFAULT STORAGE(INITIAL 10m NEXT 1M)PERMANENTONLINELOGGING;-- 修改表空间ALTER TABLESPACE ts01NOLOGGING;-- 表空间增加数据文件ALTER TABLESPACE ts01ADD DATAFILE 'D:\DataBase\Oracle11g\oradata\orcl\test_db02.dbf'SIZE 100M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;-- 删除表空间DROP TABLESPACE ts01;-- 删除表空间同时删除数据文件DROP TABLESPACE ts01 INCLUDING CONTENTS AND DATAFILES;-- 表空间中建表CREATE TABLE student(student_id VARCHAR2(10),student_name VARCHAR2(20))TABLESPACE ts01;-- 查看表所属表空间SELECT TABLE_NAME, TABLESPACE_NAME FROM tabs WHERE TABLE_NAME = 'STUDENT'; -- 查看表结构DESCRIBE student;DESC student;-- 增加表注释COMMENT ON TABLE student IS '学生信息表';-- 查看表注释SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME = 'STUDENT';SELECT * FROM ALL_TAB_COMMENTS WHERE TABLE_NAME = 'STUDENT';-- 表字段增加注释COMMENT ON COLUMN STUDENT.STUDENT_ID IS '学生编号';-- 查看表字段注释SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME = 'STUDENT';SELECT * FROM ALL_COL_COMMENTS WHERE TABLE_NAME = 'STUDENT';-- 查看用户所有表SELECT * FROM User_Tables;-- 查看用户拥有的所有对象SELECT * FROM User_Objects;-- 查看用户拥有的表试图序列SELECT * FROM User_Catalog;-- 表字段修改ALTER TABLE student MODIFY(student_id CHAR(15));-- 表字段增加ALTER TABLE STUDENT ADD(AGE NUMBER(2));-- 删除表字段ALTER TABLE STUDENT DROP COLUMN student_name;-- 修改表名称RENAME STUDENT TO STU;-- 删除表DROP TABLE STUDENT;CREATE TABLE student(s_id Varchar2(10),s_name varchar2(20),s_age Number(3),s_birthday DATE)TABLESPACE ts01;-- 增加一条记录INSERT INTOstudent (s_id, s_name, s_age, s_birthday)VALUES ('S000000001', 'Tarring01', 10, to_date('1982-10-06','yyyy-mm-dd')); INSERT INTOstudent (s_id, s_name, s_age, s_birthday)VALUES ('S000000002', 'Tarring02', 10, Sysdate);-- 使用替代变量时,输入字符串字段时一样要写上引号INSERT INTOstudent (s_id, s_name, s_age, s_birthday)VALUES (&s_id, &s_name, 10, Sysdate);-- 修改记录UPDATE student SET s_name = '陶川', s_age = 20 WHERE s_id = 'S000000002'; -- 删除记录DELETE FROM student WHERE s_id = 'S000000002';-- 截断表TRUNCATE TABLE student;-- 事务处理COMMIT; -- 提交事务INSERT INTO student (s_id, s_name) VALUES ('S001', 'tarring1'); ROLLBACK; -- 回滚,回滚到上一次提交过后的点-- 带恢复点的事务COMMIT;INSERT INTO student (s_id, s_name) VALUES ('S001', 'tarring1');SAVEPOINT firstdate;INSERT INTO student (s_id, s_name) VALUES ('S002', 'tarring2');SAVEPOINT seconddate;DELETE FROM student;ROLLBACK TO firstdate;SELECT * FROM student;-- 约束条件说明---------------------------------------------------------------------- UNIQUE 指定字段的值,必须是唯一的-- PRIMARY KEY 主键,会为指定的字段作索引,并且也是唯一的值-- NOT NULL 不可以是空值【'' NULL】或0(零)-- CHECK 检查,必须符合指定的条件-- FOREIGN KEY 外键,用来创建一个参考表之间的关系-- 建表同时建立唯一约束CREATE TABLE student(s_id Varchar2(10),s_name varchar2(20),s_age Number(3),s_birthday DATE,CONSTRAINT s_name_uk UNIQUE(s_name))TABLESPACE ts01;-- 查看唯一约束SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';-- 作业:数据字典【分类常用】-- 建表同时建立主键CREATE TABLE student(s_id Varchar2(10),s_name varchar2(20),s_age Number(3),s_birthday DATE,CONSTRAINT s_id_pk PRIMARY KEY (s_id))TABLESPACE ts01;-- 查看主键约束SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';-- 建表同时建立非空字段CREATE TABLE student(s_id Varchar2(10),s_name varchar2(20) NOT NULL,s_age Number(3),s_birthday DATE,CONSTRAINT s_id_pk PRIMARY KEY (s_id))TABLESPACE ts01;INSERT INTO student (s_id, s_name) VALUES ('S001', NULL); -- 插入一个null-- 查看非空约束SELECT table_name, constraint_name, constraint_type, search_condition FROM User_Constraints WHERE table_name = 'STUDENT';-- 建表同时建立检查CREATE TABLE student(s_id Varchar2(10),s_name varchar2(20),s_age Number(3),s_birthday DATE,CONSTRAINT s_age_ck CHECK (s_age BETWEEN 1 AND 100) -- 端点值可以使用)TABLESPACE ts01;-- 查看检查约束SELECT table_name, constraint_name, constraint_type, search_condition FROM User_Constraints WHERE table_name = 'STUDENT';-- 外键的使用CREATE TABLE team(t_id Varchar2(10),t_name Varchar2(20),CONSTRAINT t_id_pk PRIMARY KEY (t_id))TABLESPACE ts01;CREATE TABLE student(s_id Varchar2(10),team_id VARCHAR2(10),s_name varchar2(20),CONSTRAINT s_id_pk PRIMARY KEY (s_id),CONSTRAINT s_team_id_fk FOREIGN KEY (team_id) REFERENCES team(t_id))TABLESPACE ts01;-- 查看表的外键约束SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';drop table team; -- 被引用表是不能删除的insert into team (t_id, t_name) values ('t001', 'lansene');insert into student(s_id, s_name, team_id) values ('s001','tarring', 't001');delete from team; -- 被引用的记录是不能删除的-- 关闭一个约束ALTER TABLE student DISABLE CONSTRAINT s_team_id_fk;-- 启用一个约束ALTER TABLE student ENABLE CONSTRAINT s_team_id_fk;-- 删除一个约束ALTER TABLE student DROP CONSTRAINT s_team_id_fk;-- 已创建的表增加一个约束ALTER TABLE student ADD CONSTRAINT s_team_id_fk FOREIGN KEY (team_id) REFERENCES team(t_id); /************************************************************************************ ********|| SQL语句5大类型| 命令| 说明||************************************************************************************ ********|| Data Retrieval数据检索| select | 查询记录||************************************************************************************ ********|| Date Manipulation Language【DML】数据操纵语言| insert | 添加记录|| | update | 修改记录|| | delete | 删除记录||************************************************************************************ ********|| Data Definition Language【DDL】数据定义语言| create | 创建|| | alter | 修改|| | drop | 丢弃【删除】|| | rename | 重命名|| | truncate | 截断||************************************************************************************ ********|| Transaction Control事务控制| commit | 确认命令|| | rollback | 回退至前一次确认的命令或保存点|| | savepoint | 设置保存点||************************************************************************************ ********|| Data Control Language【DCL】数据控制语言| grant | 授予权限|| | revoke | 撤消权限||************************************************************************************ ********//*************************************|| 系统权限| 说明||*************************************|| create session | 连接数据库||*************************************|| create table | 创建表||*************************************|| create sequence | 创建序列||*************************************|| create view | 创建视图||*************************************|| create proceduer | 创建程序||*************************************//*******************************************************************|| \ 对象| 表【table】| 视图【view】| 程序【procedure】|| 权限\ | | | ||*******************************************************************|| insert | Y | Y | ||*******************************************************************|| alter | Y | | ||*******************************************************************|| update | Y | Y | ||*******************************************************************|| delete | Y | Y | ||*******************************************************************|| select | Y | Y | ||*******************************************************************|| index | Y | | ||*******************************************************************|| execute | | | Y ||*******************************************************************/-- 创建用户CREATE USER u01 IDENTIFIED BY p01;-- 创建用户并制定默认表空间CREATE USER u01 IDENTIFIED BY p01 DEFAULT TABLESPACE QUOTA 2M ON ts01; --quota 表空间中可使用的配额-- 修改用户密码ALTER USER u01 IDENTIFIED BY p001;-- 修改用户表空间配额ALTER USER u01 QUOTA 20M ON ts01;ALTER USER u01 QUOTA UNLIMITED ON ts01; -- 用户对表空间没有配额限制-- 回收unlimited tablespace权限REVOKE UNLIMITED TABLESPACE FROM ts01; -- 删除用户DROP USER u01;-- 切换连接数据库的用户CONNECT u01/p01;conn u01/p01;-- 授权用户连接数据库的权限GRANT CREATE SESSION TO u01;-- 授权用户创建序列(sequence)的权限GRANT CREATE sequence TO u01;-- 授权用户创建表的权限GRANT CREATE TABLE TO u01;--授权用户查表的权限grant select on er1 to wangkai;--授权用户修改表的权限grant alter on user1 to wangkai;--授权用户删除表的权限(没有此权限)grant drop on user1 to wangkai;(错误)--授权用户对一个表的所有权限grant all on user1 to wangkai;--授权所有用户对一个表的所有权限grant all on user1 to public;-- 收回用户创建表的权限REVOKE CREATE TABLE FROM u01;-- 收回用户查表的权限REVOKE select on user1 FROM u01;-- 收回用户修改的权限REVOKE select on user1 FROM u01;-- 收回用户对一个表的所有权限revoke all on user1 from wangkai;--收回所有用户对一个表的所有权限revoke all on user1 to public;-- 创建角色CREATE ROLE r01;-- 角色授权GRANT CREATE SESSION, CREATE TABLE TO r01;-- 收回角色权限REVOKE CREATE TABLE FROM r01;-- 查看角色权限SELECT ROLE,PRIVILEGE FROM role_sys_privs WHERE ROLE='R01' -- 角色赋给用户GRANT r01 TO u01;-- 查看当前用户角色SELECT * FROM user_role_privs;-- 删除角色DROP ROLE r01;。