Oracle数据库常用的Sql语句
- 格式:doc
- 大小:37.50 KB
- 文档页数:4
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注:索引是不可更改的,想更改必须删除重新建。
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 sql 方法Oracle SQL 方法Oracle SQL 是使用 SQL(Structured Query Language)查询并操作 Oracle 数据库的一种方法。
下面列举了一些常用的 Oracle SQL 方法。
1. SELECT 语句SELECT 语句是在 Oracle 数据库中检索数据的基本方法。
它可以通过以下方式使用:•查询所有列:SELECT * FROM 表名;•指定特定列:SELECT 列1, 列2 FROM 表名;2. WHERE 语句WHERE 语句用于在查询中添加过滤条件,它可以用于限制结果集的行数。
以下是 WHERE 语句的用法示例:•等于:WHERE 列名 = 值;•不等于:WHERE 列名 <> 值;•大于、小于:WHERE 列名 > 值; WHERE 列名 < 值;3. ORDER BY 语句ORDER BY 语句用于对结果集按特定列进行排序。
以下是 ORDER BY 语句的用法示例:•升序排序:ORDER BY 列名 ASC;•降序排序:ORDER BY 列名 DESC;4. GROUP BY 语句GROUP BY 语句用于将结果集按特定列进行分组。
以下是 GROUP BY 语句的用法示例:SELECT 列名1, 列名2, ... FROM 表名 GROUP BY 列名1, 列名2, ...;5. JOIN 语句JOIN 语句用于将多个表中的数据连接起来。
以下是 JOIN 语句的用法示例:•内连接:SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;•左连接:SELECT 列名 FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;•右连接:SELECT 列名 FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;6. 子查询子查询是在一个查询语句内嵌套另一个查询语句,用于获取更复杂的数据结果。
一、简介Oracle是一种常见的数据库管理系统,广泛应用于各类企业和组织中。
在Oracle数据库中,SQL语句是对数据库进行操作的重要工具。
本文将介绍Oracle常用的SQL语句,包括查询、插入、更新、删除等操作,以帮助读者更好地理解和应用这些语句。
二、查询数据1. SELECT语句SELECT语句用于从数据库中检索数据,语法如下:```sqlSELECT column1, column2, ...FROM table_nameWHERE condition;```其中,column1, column2是要检索的列名,可以使用*代表所有列;table_name是要检索的表名;condition是筛选条件,可选。
2. DISTINCT关键字DISTINCT关键字用于返回唯一不同的值,语法如下:```sqlSELECT DISTINCT column1, column2, ...FROM table_name;```3. WHERE子句WHERE子句用于筛选满足条件的数据,可使用运算符(=、>、<等)和逻辑运算符(AND、OR、NOT等),语法如下:```sqlSELECT column1, column2, ...FROM table_nameWHERE condition1 AND condition2;```4. ORDER BY子句ORDER BY子句用于对结果集进行排序,语法如下:```sqlSELECT column1, column2, ...FROM table_nameORDER BY column1 DESC;```其中,DESC代表降序,ASC代表升序,默认为升序。
5. GROUP BY子句GROUP BY子句用于对结果集进行分组统计,常与聚合函数一起使用,语法如下:```sqlSELECT column1, SUM(column2)FROM table_nameGROUP BY column1;```三、插入、更新和删除数据1. INSERT INTO语句INSERT INTO语句用于向数据库中插入新记录,语法如下:```sqlINSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);```2. UPDATE语句UPDATE语句用于更新数据库中的记录,语法如下:```sqlUPDATE table_nameSET column1 = value1, column2 = value2, ... WHERE condition;```3. DELETE语句DELETE语句用于删除数据库中的记录,语法如下:```sqlDELETE FROM table_nameWHERE condition;```四、连接表和子查询1. JOIN子句JOIN子句用于连接多个表的数据,常用的有INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。
Oracle数据库常用Sql语句大全最简单的就是查询:select语句数据库操作语言DML:update、insert、delete等数据库定义语言DDL:create、drop、alter等等oracle取前几条数据语句sqlserver中可以用top n 的方法,oracle中用rownum,但如果只用rownum会随机取数据,如果想按一定顺序取前几条数据则可这样写:select * from (select列 from 表 where 条件 order by列 desc) where rownum<>select * from (select rownum r ,* from test) ttwhere tt.r 50 and tt.r <= 100;=””>这样子写是会全表扫描的的,小的表不觉得会有多慢,数据量大了你就知道有多不好了,改成这样就不会了oracle怎幺写”IF”语句?如果是 SQL 语句里面使用。
使用 DECODE 或者 CASE WHENDECODE 的用法就是DECODE(abc, 50, 'A’, 'B’)CASE WHEN 的用法就是CASE WHEN abc=50 THEN 'A’ ELSE 'B’ END如果是在存储过程里面的话,就是简单的 IF/ELSE 了SQL 语句的话,就是SELECTabc, DECODE(abc, 50, 'A’, 'B’)FROM表什幺是oracle实例,写出在oracle如何查找实例名的sql语句oracle数据库实例(instance_name)是用于和操作系统进行联系的标识,也就是说数据库和操作系统之间的交互使用的是数据库实例。
数据库名和实例名可以相同也可以不同。
在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
oracle常⽤sql语句正在看的ORACLE教程是:oracle常⽤sql语句。
SQL*Plus system/manager2、显⽰当前连接⽤户SQL> show user3、查看系统拥有哪些⽤户SQL> select * from all_users;4、新建⽤户并授权SQL> create user a identified by a;(默认建在SYSTEM表空间下)SQL> grant connect,resource to a;5、连接到新⽤户SQL> conn a/a6、查询当前⽤户下所有对象SQL> select * from tab;7、建⽴第⼀个表SQL> create table a(a number);8、查询表结构SQL> desc a9、插⼊新记录SQL> insert into a values(1);10、查询记录SQL> select * from a;11、更改记录SQL> update a set a=2;12、删除记录SQL> delete from a;13、回滚SQL> roll;SQL> rollback;14、提交SQL> commit;⽤户授权:GRANT ALTER ANY INDEX TO "user_id "GRANT "dba " TO "user_id ";ALTER USER "user_id " DEFAULT ROLE ALL创建⽤户:CREATE USER "user_id " PROFILE "DEFAULT " IDENTIFIED BY " DEFAULT TABLESPACE "USERS " TEMPORARY TABLESPACE "TEMP " ACCOUNT UNLOCK;GRANT "CONNECT " TO "user_id ";⽤户密码设定:ALTER USER "CMSDB " IDENTIFIED BY "pass_word "表空间创建:CREATE TABLESPACE "table_space " LOGGING DATAFILE'C:\ORACLE\ORADATA\dbs\table_space.ora' SIZE 5M------------------------------------------------------------------------1、查看当前所有对象SQL > select * from tab;2、建⼀个和a表结构⼀样的空表SQL > create table b as select * from a where 1=2;SQL > create table b(b1,b2,b3) as select a1,a2,a3 from a where 1=2;3、察看数据库的⼤⼩,和空间使⽤情况SQL > col tablespace format a20SQL > select b.file_id ⽂件ID, b.tablespace_name 表空间, b.file_name 物理⽂件名, b.bytes 总字节数, (b.bytes-sum(nvl(a.bytes,0))) 已使⽤, sum(nvl(a.bytes,0)) 剩余, sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分⽐ from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_name,b.file_id,b.bytes order by b.tablespace_name / dba_free_space --表空间剩余空间状况 dba_data_files --数据⽂件空间占⽤情况4、查看现有回滚段及其状态SQL > col segment format a30SQL > SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS;5、查看数据⽂件放置的路径SQL > col file_name format a50SQL > select tablespace_name,file_id,bytes/1024/1024,file_name fromdba_data_files order by file_id;6、显⽰当前连接⽤户SQL > show user7、把SQL*Plus当计算器SQL > select 100*20 from dual;8、连接字符串SQL > select 列1 | |列2 from 表1;SQL > select concat(列1,列2) from 表1;9、查询当前⽇期SQL > select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss') from dual;10、⽤户间复制数据SQL > copy from user1 to user2 create table2 using select * from table1;11、视图中不能使⽤order by,但可⽤group by代替来达到排序⽬的SQL > create view a as select b1,b2 from b group by b1,b2;12、通过授权的⽅式来创建⽤户SQL > grant connect,resource to test identified by test;SQL > conn test/test13、查出当前⽤户所有表名。
oracle数据库语句汇总在Oracle数据库中,有许多常用的SQL语句可以用于查询、插入、更新和删除数据。
下面列举了一些常见的Oracle数据库语句,以供参考。
1. 查询表中的所有数据:```SELECT * FROM 表名;```2. 查询表中的特定字段数据:```SELECT 字段1, 字段2, ... FROM 表名;```3. 查询表中满足特定条件的数据:```SELECT * FROM 表名 WHERE 条件;```4. 对查询结果进行排序:```SELECT * FROM 表名 ORDER BY 字段 ASC/DESC;```5. 对查询结果进行分组:```SELECT 字段1, 字段2, ... FROM 表名 GROUP BY 字段;```6. 对查询结果进行统计:```SELECT COUNT(*) FROM 表名;```7. 插入数据到表中:```INSERT INTO 表名(字段1, 字段2, ...) VALUES (值1, 值2, ...);```8. 更新表中的数据:```UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2 WHERE 条件;9. 删除表中的数据:```DELETE FROM 表名 WHERE 条件;```10. 创建新表:```CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型,...);```11. 修改表结构:```ALTER TABLE 表名 ADD (字段数据类型); ```12. 删除表:DROP TABLE 表名;```13. 创建索引:```CREATE INDEX 索引名 ON 表名 (字段);```14. 删除索引:```DROP INDEX 索引名;```15. 创建视图:```CREATE VIEW 视图名 AS SELECT * FROM 表名 WHERE 条件; ```16. 删除视图:```DROP VIEW 视图名;17. 创建存储过程:```CREATE PROCEDURE 存储过程名ISBEGIN-- 存储过程的具体逻辑END;```18. 调用存储过程:```EXEC 存储过程名;```以上是一些常见的Oracle数据库语句,可以满足大部分基本的数据操作需求。
Oracle数据库是甲骨文公司的一款关系数据库管理系统,它在数据库领域一直处于领先地位。
以下是Oracle数据库常用的一些SQL语句:SELECT:查询语句,用于从一个或多个表中检索数据。
例如:sqlSELECT column1, column2 FROM table_name;INSERT:插入语句,用于向表中插入新记录。
例如:sqlINSERT INTO table_name (column1, column2) VALUES (value1, value2);UPDATE:更新语句,用于修改表中的数据。
例如:sqlUPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;DELETE:删除语句,用于从表中删除记录。
例如:sqlDELETE FROM table_name WHERE condition;CREATE TABLE:创建表语句,用于创建新的数据库表。
例如:scssCREATE TABLE table_name (column1 datatype, column2 datatype, ...);ALTER TABLE:修改表语句,用于添加、删除或修改表中的列。
例如:sqlALTER TABLE table_name ADD column_name datatype;ALTER TABLE table_name DROP COLUMN column_name;ALTER TABLE table_name MODIFY COLUMN column_name datatype; WHERE:条件语句,用于在查询中过滤数据。
例如:sqlSELECT * FROM table_name WHERE condition;GROUP BY:分组语句,用于将查询结果分组。
在使用GROUP BY时,SELECT子句中的列表中的所有个体值(除聚组函数avg、count等外)必须是GROUP BY子句中的表达式或常量。
ORACLE常用SQL语句1.select txt_type||' '||'is a'||' '||txt_ord as "Grid" fromSNP_SESS_TXT_LOG (连接“||”字段值、字符串等)2.select distinct weight_no from weight_record (去重)3.select a from XXX where a between xx and yy (一个区间内)4.select a from XXX where a in/not in (x,y,z)5.like '_8%' (_代表一个字符;%代表一个或多个)6.where xx is null7.select a from XXX order by a asc/desc (升序/降序)8.select a , b from XXX order by a , b desc (按别名排序,默认升序)9.大小写控制函数10.字符控制函数eg:11.数字函数ROUND函数其中DUAL是一个伪表,可以测试函数和表达式用 TRUNC函数MOD函数12.日期函数eg:13.通用函数NVL2函数(NVL2(expr1,expr2,expr3)功能:如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值;如果参数表达式expr1值不为NULL,则NVL2()函数返回参数表达式expr2的值。
)NULLIF函数(比较两个表达式的值。
如果第一个表达式的值与第二个表达式的值相等,返回NULL;如果第一个表达式的值不等于第二个表达式的值,或第二个表达式的值为NULL,返回第一个表达式的值)COALESCE函数(COALESCE函数会依次检查输入的参数,返回第一个不是NULL的参数,只有当传入COALESCE函数的所有的参数都是NULL的时候,函数才会返回NULL)14.条件表达式CASE函数DECODE函数15.多表连接等值连接非等值连接。
ORACLE基本的sql语句⼀、SQL 基础知识1、DDL(数据定义语⾔)1)创建数据表--创建数据表create table Test(Id int not null, Age char(20));--创建数据表create table T_Person1(Id int not null,Name nvarchar(50),Age int null);--创建表,添加外键Create table T_Students(StudentNo char(4),CourseNo char(4),Score int,Primary key(StudentNo),Foreign key(CourseNo) References T_Course(CourseNo));2)修改表结构--修改表结构,添加字段Alter table T_Person add NickName nvarchar(50) null;--修改表结构,删除字段Alter table T_Person Drop NickName;3)删除数据表--删除数据表Drop table T_Person;--删除数据表drop table test4)创建索引Create [Unique] Index <索引名> on <基本表名>(<列明序列>);2、DML(数据操纵语⾔)1)插⼊语句insert into T_Person1(Id,Name,Age) values(1,'Vicky',20)--插⼊⼀条据数,字段和值必须前后对应insert into T_Preson1(Id,Name,Age) values(2,'Tom',19)insert into T_Person1(Id,Name,Age) values(4,'Jim',19)insert into T_Person1(Id,Name,Age) values(5,'Green',20)insert into T_Person1(Id,Name,Age) values(6,'Hanmeimei',21)insert into T_Person1(Id,Name,Age) values(7,'Lilei',22)insert into T_Person1(Id,Name,Age) values(8,'Sky',23)insert into T_Person1(Id,Name,Age) values(newid(),'Tom',19)2)更新语句--修改列,把所有的age字段改为30update T_Person1 set age=30--把所有的Age字段和Name字段设置为...update T_Person1 set Age=50,Name='Lucy'update T_Person1 set Name='Frankie' where Age=30update T_Person1 set Name=N'中⽂字符' where Age=20--中⽂字符前⾯最好加上N,以防出现乱码update T_Person1 set Name=N'成年⼈' where Age=30 or Age=503)删除语句delete from T_Person1--删除表中全部数据delete from T_Person1 where Name='Tom'--根据条件删除数据4)查询语句查询语句⾮常强⼤,⼏乎可以查任意东西!--------------------- 数据检索 ------------------------查询不与任何表关联的数据.SELECT 1+1; --简单运算select 1+2 as 结果SELECT newid();--查询⼀个GUID字符创select GETDATE() as ⽇期 --查询⽇期--可以查询SQLServer版本select @@VERSION as SQLServer版本--⼀次查询多个select 1+1 结果, GETDATE() as ⽇期, @@VERSION as 版本, NEWID() as 编号--简单的数据查询.HelloWorld级别SELECT * FROM T_Employee;--只查询需要的列.SELECT FNumber FROM T_Employee;--给列取别名.As关键字SELECT FNumber AS 编号, FName AS 姓名 FROM T_Employee;--使⽤ WHERE 查询符合条件的记录.SELECT FName FROM T_Employee WHERE FSalary<5000;--对表记录进⾏排序,默认排序规则是ASCSELECT * FROM T_Employee ORDER BY FAge ASC,FSalary DESC;--ORDER BY ⼦句要放在 WHERE ⼦句之后.SELECT * FROM T_Employee WHERE FAge>23 ORDER BY FAge DESC,FSalary DESC; --WHERE 中可以使⽤的逻辑运算符:or、and、not、<、>、=、>=、<=、!=、<>等.--模糊匹配,⾸字母未知.SELECT * FROM T_Employee WHERE FName LIKE '_arry';--模糊匹配,前后多个字符未知.SELECT * FROM T_Employee WHERE FName LIKE '%n%';--NULL 表⽰"不知道",有 NULL 参与的运算结果⼀般都为 NULL.--查询数据是否为 NULL,不能⽤ = 、!= 或 <>,要⽤IS关键字SELECT * FROM T_Employee WHERE FName IS NULL;SELECT * FROM T_Employee WHERE FName IS NOT NULL;--查询在某个范围内的数据,IN 表⽰包含于,IN后⾯是⼀个集合SELECT * FROM T_Employee WHERE FAge IN (23, 25, 28);--下⾯两条查询语句等价。
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语句示例,实际使用中还可以结合其他语句和函数进行更复杂的查询和操作。
创建表Create table student(id number(5));用查询结果创建新表这个命令是一种快捷的建表方式CREATE TABLE mytable (id, name, sal, job, deptno) as SELECT empno, ename, sal, job, deptno FROM emp;修改表添加一个字段Alter table student add (name varchar2(10));修改一个字段的长度alter table student modify (name varchar2(20))修改一个字段的类型,名字(里面不能有数据)Alter table student modify(name varchar2(20))删除一个字段//不建议,因为顺序变了Alter table student drop column name修改表的名字Rename student to stu;删除表Drop table student添加数据Insert into student values(‘1’,’01-5月-15’)Insert into student (id,name) values(‘1’,’zhanshan’)Insert into student (id,name) values(‘1’,null);修改数据Update student set name=‘你好’ where id=1UPDATE student SET sex = '男', birthday = '1984-04-01' WHERE xh = 'A001';删除数据Savepoint aDelete from empRollback to aDrop table student—删除表的数据和结构Delete from emp where id=?查看表的结构Desc empSelete ename from emp –查看一列Select distinct deptno from emp 取消重复的行Selete ename from emp where ename=?oracle内容分大小写,字段不分NvlSelect sal*12+nvl(comm,0)“年薪” from emp null的加减乘除都为null||连接符Select ename || ‘is a’|| job from empLike % 0到多个字符 -一个字符Select * from emp where ename=’S%’Where中使用inSelect * from emp where deptno in(????,????,????)Is nullSelect * from emp where comm. Is null使用逻辑操作符andSELECT * FROM emp WHERE (sal >500 or job = 'MANAGER') and ename LIKE 'J%';Order by 默认是asc升序还有desc降序Select * from emp order by sal使用别名别名需要使用“”号圈中,英文不需要“”号Select sal*12 “年薪” from emp order by “年薪”数据分组Select max(sal),min(sal),avg(sal),sum(.),count(.) from emp错误写法:select ename, sal from emp where sal=max(sal);正确写法:select ename, sal from emp where sal=(select max(sal) from emp);Group by havingSelect max(sal) deptno from emp group by deptno;Select max(sal) deptno from emp group by deptno having sal >1000;顺序 group by having order by多表查询SELECT e.ename, e.sal, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno;SELECT d.dname, e.ename, e.sal FROM emp e, dept d WHERE e.deptno = d.deptnoand e.deptno = 10;自连接SELECT worker.ename, boss.ename FROM emp worker,emp boss WHERE worker.mgr = boss.empno AND worker.ename = 'FORD';子查询嵌套查询单行子查询SELECT * FROM emp WHERE deptno = (select deptno from emp WHERE ename ='SMITH');数据库在执行sql 是从左到右扫描的,如果有括号的话,括号里面的先被优先执行。
oracle数据库常用语句Oracle数据库是一种常用的关系型数据库管理系统,它提供了丰富的SQL语句来进行数据操作和管理。
下面是一些常用的Oracle数据库语句,以满足您的要求:1. 创建表:CREATE TABLE语句用于创建数据库中的表,可以指定表名、列名、数据类型和约束等信息。
2. 插入数据:INSERT INTO语句用于向表中插入数据,可以指定要插入的列和对应的值。
3. 更新数据:UPDATE语句用于更新表中的数据,可以指定要更新的列和对应的新值,还可以使用WHERE子句来限定更新的条件。
4. 删除数据:DELETE FROM语句用于从表中删除数据,可以使用WHERE子句来限定删除的条件。
5. 查询数据:SELECT语句用于从表中查询数据,可以指定要查询的列和对应的表,还可以使用WHERE子句来限定查询的条件。
6. 排序数据:ORDER BY语句用于对查询结果进行排序,可以指定要排序的列和排序的方式(升序或降序)。
7. 连接表:JOIN语句用于连接多个表,可以根据表之间的关系进行内连接、外连接或交叉连接。
8. 分组数据:GROUP BY语句用于将查询结果按照指定的列进行分组,可以结合聚合函数(如SUM、AVG、COUNT等)对分组后的数据进行统计。
9. 过滤数据:WHERE子句用于在查询中过滤数据,可以使用比较运算符(如=、<、>等)和逻辑运算符(如AND、OR、NOT等)来指定过滤条件。
10. 创建索引:CREATE INDEX语句用于在表中创建索引,可以提高查询的效率,特别是对于经常使用的列。
11. 删除表:DROP TABLE语句用于删除数据库中的表,可以指定要删除的表名。
12. 修改表结构:ALTER TABLE语句用于修改表的结构,可以添加、修改或删除列,还可以添加或删除约束。
13. 事务控制:COMMIT语句用于提交事务,将对数据库的修改永久保存;ROLLBACK语句用于回滚事务,撤销对数据库的修改。
Oracle常用SQL语句——shirley 1.1. 创建表空间create tablespace 表空间名loggingdatafile ‘数据文件存放目录\数据文件名.dbf’size 500m ----初始大小autoextend on ----扩展方式next 500m maxsize 2048m ----每次扩展500MB,最大2048MBextent management local;说明:1)第一: CREA TE TABLESPACE 表空间名对表空间的命名,遵守Oracle 的命名规范就可了.ORACLE可以创建的表空间有三种类型:(1)TEMPORARY: 临时表空间,用于临时数据的存放,创建临时表空间的语法如下:CREA TE TEMPORARY TABLESPACE "SAMPLE"......(2)UNDO : 还原表空间. 用于存入重做日志文件,创建还原表空间的语法如下:CREA TE UNDO TABLESPACE "SAMPLE"......(3)用户表空间: 最重要,也是用于存放用户数据表空间可以直接写成: CREA TE TABLESPACE "SAMPLE"TEMPORARY和UNDO 表空间是ORACLE 管理的特殊的表空间.只用于存放系统相关数据.2)第二,有NOLOGGING 和LOGGING 两个选项,NOLOGGING: 创建表空间时,不创建重做日志.LOGGING 和NOLOGGING正好相反, 就是在创建表空间时生成重做日志.用NOLOGGING时,好处在于创建时不用生成日志,这样表空间的创建较快,但是没能日志,数据丢失后,不能恢复,但是一般我们在创建表空间时,是没有数据的,按通常的做法,是建完表空间,并导入数据后,是要对数据做备份的,所以通常不需要表空间的创建日志,因此,在创建表空间时,选择NOLOGGING,以加快表空间的创建速度.3)第三: DA TAFILE 用于指定数据文件的具体位置和大小.如: DA TAFILE 'D:\ORACLE\ORADA TA\ORA92\LUNTAN.ora' SIZE 5M说明文件的存放位置是'D:\ORACLE\ORADA TA\ORA92\LUNTAN.ora' , 文件的大小为5M.如果有多个文件,可以用逗号隔开:DA TAFILE 'D:\ORACLE\ORADA TA\ORA92\LUNTAN.ora' SIZE 5M,'D:\ORACLE\ORADA TA\ORA92\dd.ora' SIZE 5M但是每个文件都需要指明大小.单位以指定的单位为准如5M 或500K.对具体的文件,可以根据不同的需要,存放大不同的介质上,如磁盘阵列,以减少IO竟争.指定文件名时,必须为绝对地址,不能使用相对地址.4)第四: EXTENT MANAGEMENT LOCAL 存储区管理方法在Oracle 8i以前,可以有两种选择,一种是在字典中管理(DICTIONARY),另一种是本地管理(LOCAL ),从9I开始,只能是本地管理方式.因为LOCAL 管理方式有很多优点.在字典中管理(DICTIONARY): 将数据文件中的每一个存储单元作为一条记录,所以在做DM操作时,就会产生大量的对这个管理表的Delete和Update操作.做大量数据管理时,将会产生很多的DM操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片,这就是为什么要做磁盘整理的原因.本地管理(LOCAL): 用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘. 同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。
01_基本SQL-SELECT语句02_过滤和排序数据03_单行函数04_多表查询05_分组函数06_子查询07_创建和管理表08_数据处理09_约束10_视图11_其它数据库对象12_高级子查询13_SET运算符补充SQL初步:SQL语句分为以下三种类型:DML: Data Manipulation Language 数据操纵语言DDL: Data Definition Language 数据定义语言DCL: Data Control Language 数据控制语言DML用于查询与修改数据记录,包括如下SQL语句:INSERT:添加数据到数据库中UPDATE:修改数据库中的数据DELETE:删除数据库中的数据SELECT:选择(查询)数据SELECT是SQL语言的基础,最为重要。
DDL用于定义数据库结构,比如创建、修改或删除数据库对象,包括如下SQL语句:CREATE TABLE:创建数据库表ALTER TABLE:更改表结构、添加、删除、修改列长度DROP TABLE:删除表CREATE INDEX:在表上建立索引DROP INDEX:删除索引DCL用来控制数据库的访问,包括如下SQL语句:GRANT:授予访问权限REVOKE:撤销访问权限COMMIT:提交事务处理ROLLBACK:事务处理回退SAVEPOINT:设置保存点LOCK:对数据库的特定部分进行锁定第1节基本SQL SELECT语句基本 SELECT 语句SELECT *|{[DISTINCT] column|expression [alias],...}FROM table;•SELECT 标识选择哪些列。
•FROM 标识从哪个表中选择。
选择全部列SELECT *FROM departments;选择特定的列SELECT department_id, location_id FROM departments;注意:•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注:索引是不可更改的,想更改必须删除重新建。
1、oracle将多行变成一行select d.datagetsource_id,wmsys.wm_concat(d.catagory_id)from datagetsource2catagory d group by d.datagetsource_id 2、oracle将表数据导入导出C:\Documents and Settings\Administrator>exp irdp/irdpfile=e:/数据库备份/irdp_bak_200911020927_forUpdate.dmp full-y 导出数据库的语句,最后的是full-y,不是full=y,如果用后面也可以导出,但它会把库中的所有用户都导出来。
3、oracle将树形sql语句最后加上根节点idCONNECT_BY_ROOTselect munity_id,c2c.parent_community_id,level,CONNECT_BY_ROOT community_id rootfrom community2community c2cstart with munity_id in(select community_idfrom community cywhere withdrawn = 'N')connect by prior munity_id = c2c.parent_community_id 4、查询数据库所有包含item_id字段的表的名称select t.TABLE_NAME from user_tab_columns t wheret.COLUMN_NAME like'%ITEM_ID%'group by t.TABLE_NAME;5、查询数据库回收站中被删除的表select * from recyclebin where original_name ='WEBPUBLISHAPPLY';6、闪回数据库某张表alter table WEBPUBLISHAPPLY enable row movement;flashback table WEBPUBLISHAPPLY to timestampto_timestamp('2010-08-03 00:00:00','yyyy-mm-ddhh24:mi:ss');alter table WEBPUBLISHAPPLY disable row movement;7、oracle-9i将一行记录中部分数据复制到另一行记录中update addressbook aset(a.a_sex,a.a_brithday,a.a_brithplace,a.a_address,a.a_phone)=(selectd.a_sex,d.a_brithday,d.a_brithplace,d.a_address,d.a_phone from addressbook dwhere d.a_id = '5')where a.a_id = '3';8、将表中a字段记录为1的行中的b字段全部改为2update addressbook dset d.a_brithplace = (select r.a_brithplace fromaddressbook r where r.a_id = '9')where d.a_address = (select c.a_address from addressbook c where c.a_id = '5')9、删除表且删除表所占的空间,且不能回退truncate table books10、oracle事务1)savepoint a 保存事务点2)rollback to a 回退到事务点a,且取消a之后的操作3)rollback取消全部操作4)只读事务set transaction read only;--1(会话1)update emp set sal = 3000where ename = 'smith';--2(会话2) select sal from emp where ename = 'smith';--3(会话1)当在1处设置了只读事务后,紧接着2处在3之前修改了该数据,但是在3处查看的数据还是1处这个时间点的数据,也就是修改前的数据提示:在read only事务中,是不允许进行增删改操作的5)顺序事务set transaction isolation level serializable;--1(会话1) update emp set sal = 3000where ename = 'smith';--2(会话2) select sal from emp where ename = 'smith';--3(会话1)在3处的查询语句只会查询到2处修改前的数据11、分组函数select i.item_type_id,i.submitter_id,count(1) from item i where i.item_type_id = 'ebook'or i.item_type_id = 'rwsk' group by rollup (i.item_type_id,i.submitter_id);select i.item_type_id,i.submitter_id,count(1) from item i where i.item_type_id = 'ebook'or i.item_type_id = 'rwsk' group by cube (i.item_type_id,i.submitter_id);12、同时利用两个或者多个分组函数select r.type,r.metaapplication_id,count(1) from resourceshowtype rgroup by grouping sets(r.type,r.metaapplication_id);13、自动执行内连接select c2i.collection_id,item_id,i.item_type_id fromcollection2item c2inatural join item i14、函数1)返回字符的ASCII码select ascii('a') from dual;2)将ASCII码转换为字符select chr(65) from dual;3)链接两个字符select concat('ab','cd') from dual;4)单词首字母大写select initcap('hello world') from dual;5)查看字符串a在字符串b中的位置instr(b,a,n,m),n为起始位置,初始为1,m为出现次数,初始为1select instr('hello world','l','1') from dual;6)返回字符串的长度select length('hello world') from dual;7)将条目id左边填充0直到字符长度达到10位select i.item_id,lpad(i.item_id,10,'0') from item i;select i.item_id,rpad(i.item_id,10,'0') from item i;8)将字符串中左边连续出现的'浙江大学'的任意组合去掉select ,ltrim(,'浙江大学') from community c;9)将字符串变为首字母大写或者全小写或者全部大写select nls_initcap(n'hello world') from dual;select nls_lower(n'SQL Server') from dual;select nls_upper(n'SQL Server') from dual;10)字符串替换select replace('浙江大学出版社','浙江','湖北') from dual;11)截取子字符串select substr('浙江大学出版社',1,4) from dual;15、时间1)在系统时间往后推100个月select add_months(sysdate,100),sysdate from dual;select add_months(sysdate,-100),sysdate from dual;select add_months(sysdate,-1000000000000),sysdate from dual;2)返回当前时区对应日期格式的时间select current_date from dual;3)返回当前日期格式的时间select current_timestamp from dual;4)从当前时间中抽取年月日,不能抽取时分秒select extract(year from sysdate) from dual;select extract(month from sysdate) from dual;select extract(day from sysdate) from dual;16、使用标量变量接收查询数据declarev_comtype_name %type;beginselect name into v_comtype_namefrom communitytypewhere community_type_id=&comtype_id;dbms_output.put_line('资源库名称:'||v_comtype_name); end;17、使用记录变量接受数据--oracle自定义类型种类:--1、子类型--subtype cc_num is number(16,2);--2、记录类型--type emp_record_type is record--(--ename varchar2(10),--job varchar2(9)--);--emp_record emp_record_type;--3、rowtype类型变量--emp_record emp%rowtype;declaretype emp_record_type is record(id munity_type_id%type,name %type);emp_record emp_record_type;beginselect munity_type_id,into emp_recordfrom communitytype ctwhere munity_type_id = 'ebook';dbms_output.put_line('资源库ID:'||emp_record.id); dbms_output.put_line('资源库名称:'||emp_); end;18、操纵数据declarev_community_type_namecommunitytype.english_name%type:='&englishname'; beginupdate communitytype tset t.english_name = v_community_type_namewhere munity_type_id = 'AcademicRes'; commit;end;19、数据库游标1)sql%isopen游标是否已经打开2)sql%found sql语句是否已经执行成功beginsavepoint a1;update communitytype tset t.english_name = '333'where munity_type_id = 'AcademicRes';if sql%foundthencommit;dbms_output.put_line('成功');elserollback to a1;dbms_output.put_line('失败');end if;end;3)sql%notfound4)sql%rowcount返回sql影响的行数。
一、概述Oracle数据库是一种非常流行的关系型数据库管理系统,它支持SQL 语言,使得用户可以进行各种数据操作。
在Oracle数据库中,SQL语句是至关重要的,它可以帮助用户实现数据的查询、修改、删除等功能。
除了基本的SQL语句之外,Oracle数据库还提供了许多其他实例的SQL语句,这些语句可以帮助用户更好地管理和优化数据库。
二、常用的实例SQL语句1. 数据查询在Oracle数据库中,用户经常需要进行数据查询操作。
除了基本的SELECT语句外,还有一些其他实例的SQL语句可以帮助用户更快地获取所需的数据。
- WITH子句:WITH子句是一种临时命名的子查询结果集,可以在查询中被引用多次。
它可以提高SQL语句的可读性和重复使用性。
- ROWNUM伪列:ROWNUM是Oracle数据库中的一个伪列,它可以用于对查询结果进行编号,并且在查询中进行筛选和排序。
2. 数据修改除了数据查询外,用户还需要对数据库中的数据进行修改操作。
Oracle数据库提供了一些其他实例的SQL语句,可以帮助用户实现数据的插入、更新和删除。
- MERGE语句:MERGE语句是一种灵活的数据修改语句,它可以根据指定的条件来进行插入、更新或删除操作。
- UPSERT语句:UPSERT是INSERT和UPDATE的组合,它可以根据指定的条件来进行插入或更新操作,提高了数据的操作效率。
3. 数据管理在数据库管理中,用户经常需要进行一些数据管理操作,例如索引的创建和删除、视图的管理等。
- CREATE INDEX语句:CREATE INDEX语句用于在数据库表上创建索引,提高数据的检索效率。
- ALTER VIEW语句:ALTER VIEW语句用于修改数据库中的视图结构,例如更改视图的列、重命名视图等。
4. 数据优化除了基本的数据操作外,用户还需要对数据库进行优化操作,以提高系统的性能和稳定性。
- EXPL本人N PLAN语句:EXPL本人N PLAN语句用于分析SQL语句的执行计划,帮助用户了解SQL语句的执行路径和效率,以便进行优化。
Oracle数据库常用的Sql语句
今天想查询一下Oracle数据库下所有的表名或某个用户下的所有表,半天没想起来.还是在网上找到了答案.
select table_name from all_tables;//所有的表明
select table_name from user_all_tables;//用户的所有的表
一下是转贴的sql语句的帖子.
select * from user_objects; //查询所有的表
select * from dba_tables; //查询所有的表
select * from all_tables; //查询所有的表
select * from user_users //查出一个用户
select * from all_users //查询所有用户
select * from dba_users //查询所有用户
select name,dbid from v$database; //查询数据库名和它的ID
select * from er_tab_columns; //查询表名,并显示列名
describe 表名//查询表结构
2: 查询数据库参数
show parameter db;
3:查询数据库的实例名
select instance_name from v$instance;
4: 数据库域名
数据库安装结束后,如果要知道正在运行额数据库是否有域名以及数据库域名名称可以用select value from v$parameter where name='db_domain'
show parameter domain
5:数据库服务名
如果数据库有域名,则数据库服务名就是全局数据库名,如果该数据库没有定义域名,则数据库服务名与数据库名相同
show parameter service_name
6:显示当前用户
show user
7:直接登陆
sqlplus "/as sysdba"
8:当前ORACLE系统时间
select sysdate from dual;
9:查询数据库字典v$nls_parameter产看字符集相关参数
select * from v$nls_parameters;
//*************
oracle基本操作语句(适合初学者)
oracle操作语句:
1.创建表
create table 表名(
列名1 类型,
列名2 类型
);
2.修改类属性
alter table 表名 modify(列名类型);
3.添加列
alter table 表名 add(列名类型);
4.添加主键约束和非空约束
alter table 表名 add constraint pk_表名 primary key(列名); alter table 表名 modify(列名 not null);
5.删除主键约束
alter table 表名 drop primary key;
alter table 表名 drop constraint pk_表名;
6.失效约束
alter table 表名 disable primary key;
alter table 表名 disable constraint pk_表名;
7.有效约束
alter table 表名 enable primary key;
alter table 表名 enable constraint pk_表名;
8.删除列
alter table 表名 drop column 列名;
9.设置某列不可用,然后删除
alter table 表名 set unused(列名);
alter table 表名 drop unused columns;
10.修改表名
rename 表名1 to 表名2
alter 表名1 rename to 表名2;
11.截断表
truncate table 表名;
12.截断表保留行空间
truncate table 表名 resue storage;
13.查看表结构
desc table 表名;
14.删除表
drop table 表名;
15.插入记录
例:insert into 表名 values(内容1,内容2,内容3,内容4); 16.带参数对话方式插入行
例:insert into 表名 values(&列名1,&列名2);
insert into 表名 values(内容1,内容2);
17.插入某几列记录
insert into 表名(列名1,列名2) values(内容1,内容2);
18.为列插入空值(其列不能为not null)
insert into 表名 values(内容1,null,null);
19.创建表(包括主键及外键设置)方法一
create table 表名(
列名1 类型
constraint pk_表名 primary key,
列名2 类型 not null,
列名3 类型
constraint fk_表名 reference 表名(列名),
列名3 类型
constraint ck_表名 check(列名3 in(''内容1'',''内容2'',''内容3''))
);
20.查询所有行
select * from 表名;
21.查询某几列
select 列名1,列名2 from 表名;
22.重复行消除
select distict 列名 from 表名;
23.where语句查询
select * from 表名 where 条件 order by 列名;
(注:如number类型查出自动按升序排列,如要按降序排列,则select * from 表名 where 条件 order by 列名 desc;)
24.创建表,方法二
create table 表名(
列名1 类型 primary key,
列名2 类型 not null,
列名3 类型 check(列名3 in('''','''','''')),
列名4 类型 refernce 表名(列名)
);
25.修改列=‘?’的数据
update 表名 set (列=?) where 列=‘?’;
26.删除行
delete from 表名 where 条件;
27.事务处理
--事务处理
update 表名
set 列名(日期) = ''30-5月-98''
where 条件;
savepoint mark1;
delete from 表名 where 条件;
savepoint mark2;
rollback to savepoint mark1;
rollback;
28.建立用户user1,密码为password
授予用户connect,resource的权限
connect角色用于登录
resource角色用于建表等.
connect system/manager
create user user1 identified by password;
grant connect,resource to password;
29.数据控制语言
connect scott/tiger
30.把对表1查询和修改的权限授予user1
grant select,update on 表1 to user1;
31.把对表表1中列1和列2修改的权限授予user1
grant update(列1,列2) on 表1 to user1;
32.把对表表1查询的权限授予用户user1
并且user1用户还可以把这个权限授予别的用户(with grant option) grant select on 表1 to user1 with grant option;
33.从用户user1撤销对表1查询和修改的权限
revoke select,update on 表1 from user1;。