Oracle常用语句
oracle数据库基本语句

oracle数据库基本语句oracle 数据库是一种常用的关系型数据库管理系统,常用的oracle数据库包括oracle10g、oracle11g和oracle12c。
要掌握oracle的基本用法,必须掌握其基本的语句。
oracle的常用基本语句有:一、数据定义语言(DDL)1、创建数据表:CREATE TABLE 表名(字段名数据类型[完整性约束条件],字段名数据类型[完整性约束条件],……);2、修改数据表: ALTER TABLE 表名 ADD(字段名数据类型[完整性约束条件],字段名数据类型[完整性约束条件],……);3、删除数据表: DROP TABLE 表名;4、创建索引:CREATE [UNIQUE] INDEX 索引名ON 表名[字段名[,字段名];5、删除索引: DROP INDEX 索引名;三、数据控制语言(DCL)1、建立用户: CREATE USER 用户名 IDENTIFIED BY 密码;2、删除用户: DROP USER 用户名;3、授权:GRANT 权限 ON 对象 TO 用户[WITH GRANT OPTION];4、回收授权: REVOKR 权限 ON 对象 FROM 用户;5、控制事务: COMMIT/ROLLBACK;四、数据库控制语言(DBCL)1、创建数据库:CREATE DATABASE 数据库名;2、删除数据库: DROP DATABASE 数据库名;3、创建表空间:CREATE TABLESPACE 表空间名 SEGMENT SPACE MANAGEMENT 自动;4、删除表空间: DROP TABLESPACE 表空间名;5、管理会话: ALTER SYSTEM KILL SESSION ['会话号'];。
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注:索引是不可更改的,想更改必须删除重新建。
Oracle导入的常见语句

Oracle导⼊的常见语句登录sql > sqlplus / as sysdba创建表空间sql > create tablespace TABLESPACE datafile 'e:\tables1.dbf' size 1m segment space management auto;赋予⾃动增长sql > alter database datafile 'e:\tables1.dbf' autoextend on;删除表空间及删除⽂件sql > drop tablespace TABLESPACE including contents and datafiles;创建⽤户sql > create user USERNAME identified by hanweb default tablespace TABLESPACE;权限赋予sql > grant connect,resource,dba,unlimited tablespace to USERNAME with admin option;sql > grant sysdba to USERNAME with admin option;删除⽤户sql > drop user USERNAME cascade;退出数据库:Ctrl+C 或 sql > quit/exitimp导⼊数据imp USERNAME/PASSWORD@ORCL file='D:\backup\DMPNAME.dmp' log='d:\backuplog\DMPNAME.log' ignore=y full=y impdp导⼊数据创建.dmp⽂件所在⽂件夹容器并需电脑⼿动创建sql > create directory DIRDP as 'd:\backup';退出数据库执⾏:impdp USERNAME/PASSWORD@ORCL directory=DIRDP dumpfile='DMPNAME.dmp' logfile='DMPNAME.log' full=y其它SQL语句查看各表空间分配情况sql > select tablespace_name, sum(bytes) / 1024 / 1024 from dba_data_files group by tablespace_name;关闭表空间⾃增长sql > alter database datafile 'e:\mytables1.dbf' autoextend off;查看表空间状态sql > select tablespace_name tb_n,file_name f_n,autoextensible auto from dba_data_files;查看各表空间空闲情况sql > select tablespace_name, sum(bytes) / 1024 / 1024 from dba_free_space group by tablespace_name;更改数据表⼤⼩(10G)sql > alter database datafile 'e:\DBFNAME.dbf' resize 10240m;。
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 条件判断语句
Oracle 条件判断语句的主要有:
1、IF语句:IF语句就是判断某个条件是否成立,根据条件的不同而
做出不同的处理。
例如:IFx>0THENy:=x;。
2、Case语句:Case语句可根据表达式的不同值或变量,做出不同的
处理,一般为控制语句.
例如:select CASE x WHEN 1 THEN 'A' WHEN 2 THEN 'B' ELSE 'C' END from table;。
3、Exists语句:Exists语句用于判断某个表达式的查询结果是否存在。
例如:SELECT * FROM table WHERE EXISTS(SELECT x FROM table WHERE x > 0);。
4、In语句:In语句是判断一个表达式是否存在于某个集合内。
例如:SELECT * FROM table WHERE x IN (1,2,3);。
5、Between语句:Between语句是判断一个表达式是否在某个范围内。
例如:SELECT * FROM table WHERE x BETWEEN 1 AND 10;。
oracle 数据字典查询语句

oracle 数据字典查询语句Oracle 数据字典是一个包含了数据库中所有对象和结构的元数据集合。
通过查询数据字典,可以获取数据库的详细信息,如表、列、索引、约束、触发器等对象的定义和属性。
下面列举了十个常用的Oracle 数据字典查询语句。
1. 查询所有表名:```sqlSELECT TABLE_NAME FROM ALL_TABLES;```这个查询语句将返回当前用户下所有表的名称。
2. 查询表的列信息:```sqlSELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '表名';```这个查询语句将返回指定表的所有列名、数据类型、数据长度和是否可空。
3. 查询表的索引信息:```sqlSELECT INDEX_NAME, COLUMN_NAME, COLUMN_POSITION FROM ALL_IND_COLUMNS WHERE TABLE_NAME = '表名';这个查询语句将返回指定表的所有索引名称、索引列名和索引列位置。
4. 查询表的主键信息:```sqlSELECT CONSTRAINT_NAME, COLUMN_NAME FROM ALL_CONS_COLUMNS WHERE TABLE_NAME = '表名' AND CONSTRAINT_NAME = 'PK_主键名'; ```这个查询语句将返回指定表的主键约束名和主键列名。
5. 查询表的外键信息:```sqlSELECT CONSTRAINT_NAME, COLUMN_NAME, R_CONSTRAINT_NAME, R_OWNER, R_TABLE_NAME, R_COLUMN_NAME FROM ALL_CONS_COLUMNS WHERE TABLE_NAME = '表名' AND CONSTRAINT_TYPE = 'R';```这个查询语句将返回指定表的外键约束名、外键列名、参考表的所有者、参考表名和参考列名。
oracle数据库常用检测语句

1、--查询每台电脑的连接数select username, t.MACHINE,t.PROGRAM, t.STATUS, count(username)from v$session twhere username is not nullgroup by username, t.MACHINE,t.PROGRAM, t.STATUSorder by username, t.MACHINE,t.PROGRAM, t.STATUS;2--查询可用连接数和已经用了的连接数select RESOURCE_NAME as A,--资源名,CURRENT_UTILIZATION as b,--资源的当前使用量,MAX_UTILIZATION as c,--资源使用达到的最大值,INITIAL_ALLOCATION as d,--初始化值一般等于limit_value,LIMIT_VALUE as e--系统设置的资源值from v$resource_limitwhere resource_name in ('sessions', 'processes');3--查询数据库内存select * from v$sga;select * from v$sgastat;4--查询耗时最长的sql,采用这个语句在业务高峰监控那个查询语句耗时长,占用数据库连接不释放select *from (select SQL_TEXT,SQL_FULLTEXT,round(ELAPSED_TIME / 1000000, 2) ccc,--总时长,EXECUTIONS dd,--执行次数,round(ELAPSED_TIME / 1000000 / EXECUTIONS, 3) ee,--每次时长,trunc((elapsed_Time - cpu_time) * 100 / elapsed_Time, 2) aa,--等待时间占比,round((elapsed_Time - cpu_time) / 1000000, 2) ff,--等待时长,round(USER_IO_WAIT_TIME / 1000000, 2) gg,--IO等待时间,buffer_gets bb,--读取缓冲区次数,disk_reads hh,--读盘次数,hash_value, --SQL的hash_value,以备获取完整SQLsql_id,SORTS --排序次数from (select *from v$sqlareawhere executions > 10and PARSING_SCHEMA_NAME = '***' --注意修改schema名称order by ELAPSED_TIME desc)where rownum < 500)order by ee desc;5--数据库分区表最大分区检查---查询结果当前最大分区要比当前日期提前半年以上。
oracle数据库语句汇总

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数据库语句,可以满足大部分基本的数据操作需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle:1、创建user用户:create user demo identified by demo account unlock 默认是lock;2、权限回收和设置:grant connect|resource to demo; revoke connect|resource from demo;3、修改用户信息:alter user demo identified by admin; alter user demo account lock;4、数据库连接: conn sys/change_on_install as sysdba; SYS用户必须要加后面sysdba5、Conn scott/tiger; conn system/admin;6、Oracle 服务开启startup open ; 关闭服务shutdowm;7、Oracle有两种权限操作数据库的系统权限比如说创建table session 还有一种是操作数据库中的对象,对表进行增删改查,有三种角色connect resource dba ,角色是一些系统权限的集合,conect角色主要是些临时的用户,特别是那些不需要建表的用户,resource是那些比较正式的数据库用户,可以有自己的表序列过程触发器索引等等,dba拥有所有系统权限8、在oracle中,客户端把SQL语句发送给服务器,服务器对SQL语句进行编译、执行,把执行的结果返回给客户端数据定义语言(DDL),包括CREATE(创建)命令、ALTER(修改)命令、DROP (删除)命令等。
数据操纵语言(DML),包括INSERT(插入)命令、UPDATE(更新)命令、DELETE (删除)命令、SELECT … FOR UPDA TE(查询)等。
数据查询语言(DQL),包括基本查询语句、Order By子句、Group By子句等。
事务控制语言(TCL),包括COMMIT(提交)命令、SA VEPOINT(保存点)命令、ROLLBACK(回滚)命令。
数据控制语言(DCL),GRANT(授权)命令、REVOKE(撤销)命令。
9、当查询单行函数的时候,from后面使用DUAL表,dual表在系统中只有一行一列,该表在输出单行函数时为了select…from的语法完整性而使用。
Select sysdate from dual; select 1+1 from dual; 返回值为2;10、创建表create table infos(....) 添加约束alter table infos add constraint info_pk primary key(stuid);11、Oracle外键约束alter table scores add constraint for_name foreign key(stuid) references infos(stuid); score表中添加约束stuid是外键是infos表中的主键;12、orderby 默认是升序排列13、一个数据库中的所有表select * from tab; desc emp; 查看表结构14、输入一个/ 是重复执行上一步操作;如果前面语句句尾没有写分号,则语句只是保存在缓冲区中,/可以提交语句;15、一个数据库中访问另一个数据库中的表比如在sys数据库中select * from scott.emp;16、根据结果集创建表create table demo as select * from infos;17、根据结果集复制表结构create table demo as select * from infos where 1=2;18、INSERT向表中插入一个结果集insert into demo select * from infos;19、添加数据insert into infos values (,,,,);20、Commit 是提交用户操作的结果只有提交了数据才真正的更新到表中别的用户才能看到最后操作的结果21、更新数据update infos set stuid='33', name-'整数' where age-'33';22、删除数据delete from infos where stuid -'33';23、删除整张表truncate table infos; delete from infos; 两者均能删除数据,但前者删除的数据不能回复,后者删除的数据可以通过日志文件恢复,表中记录过多,用truncate会比delete更加效率24、打开一个终端删除一条数据,然后再打开另一个终端,会发现数据依然存在,在oracle 中,每个连接到数据库的窗口,都会与数据库建立一个session,一个session对数据的操作不会马上反应到数据库的真实数据中去,可以允许回滚,当一个session提交所有操作后,数据库才会做真正的修改...25、提交事务commit 回滚rollback ; 回滚是在提交之前使用,如果已经提交了,回滚也没用...26、字符串连接符||27、起别名select empno id,ename name from emp; 最好回避中文28、package mytest;29、public class Main {30、public static void main(String[] args) {31、System.out.println(new A());32、}33、}34、class A35、{36、}37、Java在运行上述代码时输出一个很奇异的结果:38、mytest.A@60aeb039、尝试解释一下可能的原因.40、classA中虽然没有任何方法,不过他继承了object类,实现了里面的tostring()方法,打印出的是该对象在内存中的地址对象类型名@内存地址41、Select * from emp where sal between 1500 and 3000;42、Oracle 对大小写敏感,所以查询的时候应该大写select * from emp where ename=' SMITH';43、字段in的作用select * from emp where ename in('张三','李四','王五'); 另外一种就是not in select * from emp where empno not in(333,4444,555);44、Like 语句的作用模糊查询select * from emp where ename like '_S%'; _表示一个字符,% 表示多个字符45、Order by 的使用升序asc 降序desc select * from emp where deptno=10 order by sal desc ,hiredate asc; 薪水降序雇佣日期升序select * from emp where empno<>4444; select * from emp where empno!=4444;46、Concat select concat('hello','world') from dual ; 连接两个字符串47、字符串截取select substr('hello',1,4) from dual 返回hell substr从一开始截取48、字符串截取后面几位比如说名字的后三位select substr(ename,length(ename)-2,) from emp 或者select substr(ename,-3,999) from emp ;从倒数第三个一直到最后截取49、NVL()可以指定值nvl(comm,0) 可以把null值转换成另外一个值比如说050、Decode() 相当于if else。
Select decode(1,1,'hah ',2,'weiwei',3,'huhu') from dual; 最前面是1,后面的那些都是选项,对应了哪个就相应的打印出哪个...51、decode(job,'CLERK','业务员','SALESMAN','销售人员','MANAGER','经理','ANALYST','分析员','PRESIDENT','总裁')52、统计一张表中的记录数select count(*) from emp;53、Where 只能对单行进行过滤,而不能对行组进行过滤,group by 如果要有条件过滤的话应该用having select deptno,A VG(sal) from emp having A VG(sal)>2000 group by deptno; 54、使用where 也可以同时使用having ,where 是对行进行筛选,而having是对组进行筛选having 是放在group by 后面进行组筛选55、在组函数存在的时候就不要出现分组查询语句了select deptno,sum(avg(sal)) from emp order by deptno; 这就错了不要出现deptno ,因为有组函数了56、子查询:查询出工资比7654高,同时与7788从事同样工作的全部雇员信息:select * from emp where sal>(select sal from emp where empno=7654) and job=(select job from emp where empno=7788);57、表的修改: alter table demo add(列名,类型) ;alter table demo add(address varchar(30) default '无名氏'); 修改表字段的值alter table demo modify(address varchar(50) default '张三'); modify 关键字58、为表重命名rename demo to demo01; rename emp to empdemo;59、约束的种类:主键约束唯一约束外键约束非空约束检查约束60、Primary key unique foreign key not null check61、添加约束的语句alter table demo add constraint 约束名primary key(id);62、Alter table demo add constraint 约束名not null(name); check(sec in('男','女')) unique(name) foreign key (id) references 表名(id);63、Rownum select rownum ,empno,ename from emp ; rownum 就是显示行数每一行一个数,前五行select rownum,ename from emp where rownum<=5; 假如是十行中的后五行,那就只能先做一个子查询select * from (select rownum r,ename from emp where rownum<=10) k where k.r>5;64、约束的作用就是保证了数据的完整性关联上的约束如果要删除表的话应该先删除子表再删除父表如果要强制删除父表则drop table demo cascade constraint ; 还有一种是级联删除父类删除子表也删除drop table demo on delete cadcade;65、Dual表是sys用户下的一张表从scott用户下访问此表应该要sys.dual,但是现在没有,这就是一个同义词的概念,用dual代替用户名.表名创建同义词create synonym emp for scott.emp; 为scott表中的emp 表建一个同义词,然后再其他用户下就可以直接通过emp 直接访问了... Drop synonym emp;删除同义词66、序列,是序列号的生成器,可以为数据库表中的行自动生成序号语句为:create sequence demo increment by 1 start with 10 nomaxvalue(无最大值) maxvalue 100 minvalue 10。