求一个sql写法

这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询。

1、获取当前月份的第一天

运行这个命令能快速返回当前月份的第一天。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

2、获取当前月份的最后一天

这个查询语句类似于上面那个语句,而且充分照顾到了闰年,所以当二月份有 29 号,那么就会返回 29/2 。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

3、获取当前年份的第一天

每年的第一天都是1 月1日,这个查询语句可以使用在存储过程中,需要对当前年份第一天做一些计算的时候。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

4、获取当前年份的最后一天

类似于上面的查询语句。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

5、获取当前月份的天数

这个语句非常有用,可以计算出当前月份的天数。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

6、获取当前月份剩下的天数

下面的语句用来计算当前月份剩下的天数。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

7、获取两个日期之间的天数

使用这个语句来获取两个不同日期自检的天数。

8、显示当前年份截止到上个月每个月份开始和结束的日期

这个是个很聪明的查询语句,用来显示当前年份每个月的开始和结束的日期,你可以使用这个进行一些类型的计算。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。

9、获取直到目前为止今天过去的秒数(从 00:00 开始算)

10、获取今天剩下的秒数(直到 23:59:59 结束)

11、检查在当前数据库模式下是否存在指定的表

这是一个简单的查询语句,用来检查当前数据库是否有你想要创建的表,允许你重新运行创建表脚本,这个也可以检查当前用户是否已经创建了指定的表(根据这个查询语句在什么环境下运行来查询)。

12、检查在当前表中是否存在指定的列

这是个简单的查询语句来检查表里是否有指定的列,在你尝试使用 ALTER TABLE 来添加新的列新到表中的时候非常有用,它会提示你是否已经存在这个列。

这 个查询语句会显示任何表的 DDL 状态信息。请注意我们已经将‘TABLE’作为第一个信息提交了。这个查询语句也可以用来获取任何数据库对象的 DDL 状态信息。举例说明,只需要把第一个参数替换成‘VIEW’,第二个修改成视图的名字,就可以查询视图的 DDL 信息了。

这是另一个可以获得当前模式的名字的查询语句。

这是另一个可以修改当前模式的查询语句,当你希望你的脚本可以在指定的用户下运行的时候非常有用,而且这是非常安全的一个方式。

返回一些系统默认的信息

18、数据库字符设置信息

显示数据库的字符设置信息

20、存储区分大小写的数据,但是索引不区分大小写

某些时候你可能想在数据库中查询一些独立的数据,可能会用 UPPER(..) = UPPER(..) 来进行不区分大小写的查询,所以就想让索引不区分大小写,不占用那么多的空间,这个语句恰好能解决你的需求 。

21、调整没有添加数据文件的表空间

另一个 DDL 查询来调整表空间大小

22、检查表空间的自动扩展开关

在给定的表空间中查询是否打开了自动扩展开关

23、在表空间添加数据文件

在表空间中添加数据文件

24、增加数据文件的大小

给指定的表空间增加大小

25、查询数据库的实际大小

给出以 GB 为单位的数据库的实际大小

26、查询数据库中数据占用的大小或者是数据库使用细节

给出在数据库中数据占据的空间大小

27、查询模式或者用户的大小

以 MB 为单位给出用户的空间大小

28、查询数据库中每个用户最后使用的 SQL 查询

此查询语句会显示当前数据库中每个用户最后使用的 SQL 语句。

这个语句是用来显示每个用户的 CPU 使用率,有助于用户理解数据库负载情况

30、查询数据库长查询进展情况

显示运行中的长查询的进展情况

31、获取当前会话 ID,进程 ID,客户端 ID 等

32、查询特定的模式或者表中执行的最后一个 SQL 语句

33、查询每个执行读取的前十个 SQL

34、在视图中查询并显示实际的 Oracle 连接

35、查询并显示通过打开连接程序打开连接的组

36、查询并显示连接 Oracle 的用户和用户的会话数量

37、获取拥有者的对象数量

实用/数学 相关的查询

38、把数值转换成文字

更多信息可以查看: 

39、在包的源代码中查询字符串

这个查询语句会在所有包的源代码上搜索‘FOO_SOMETHING’ ,可以帮助用户在源代码中查找特定的存储过程或者是函数调用。

40、把用逗号分隔的数据插入的表中

当 你想把用逗号分隔开的字符串插入表中的时候,你可以使用其他的查询语句,比如 IN 或者是 NOT IN 。这里我们把‘AA,BB,CC,DD,EE,FF’转换成包含 AA,BB,CC 等作为一行的表,这样你就很容易把这些字符串插入到其他表中,并快速的做一些相关的操作。

41、查询表中的最后一个记录

这个查询语句很直接,表中没有主键,或者是用户不确定记录最大主键是否是最新的那个记录时,就可以使用这个语句来查询表中最后一个记录。

这个查询语句使用一些复杂的数学函数来做每个行的数值乘法。更多内容请查阅: 

每个开发者都想能轻松生成一堆随机数据来测试数据库多好,下面这条查询语句就可以满足你,它可以在 Oracle 中生成随机的数据插入到表中。详细信息可以查看 

这是 Oracle 普通的旧的随机数值生成器。这个可以生成 0-100 之间的随机数值,如果你想自己设置数值范围,那么改变乘数就可以了。

45、检查表中是否含有任何的数据

这个可以有很多中写法,你可以使用 count(*) 来查看表里的行的数量,但是这个查询语句比较高效和快速,而且我们只是想知道表里是否有任何的数据。

  1. Oracle数据库监控软件(简称Oracle监控或Oracle监控软件)是企事业单位中最重要的监控需要,通过对Oracle数据库的监控,可以全面了解Oracle的运行状态、数据库响应情况、数据库表空用度情况。

    对Oracle数据库的监控十分全面,主要有:缓冲区命中率监控、表空间使用率监控、表空间监控、会话数监控、连接数监控等核心性能,这些性能均为DBA必须了解和随时掌握的性能,的监控为DBA提供了有力的帮助。在Oracle数据库的性能监控中其中表空间随时监控是DBA首要职责,因为一旦表空用尽,将无法再进行数据库的操作,这将给应用软件造成很大的损失。通过监控与短信报警功能,DBA可以设定表空间使用率阀值进行报警,比如可以设定表空间使用率达到95%后就立即短信通知指定的DBA进行表空间扩容,从而可以有效地避免因为表空间不足引起的应用程序错误和数据库错误。


    Oracle表空间监控与报警、Oracle共享池命中率监控


    Oracle数据库监控、Oracle监空、会话数监控、登录数监控

前言: 关系数据库的简单介绍
说明:父查询调用子查询只执行一次.

把绑定字符串和日期类型变量时,变量外面要加单引号
也可绑定变量来查询不同的字段名
输入变量值的时候不要加;等其它符号

4. 实体关系模型例子
每个订单都必须有一个或几个客户
每个客户可能是一个或几个订单的申请者

6. 校正实体关系的原则
属性是单一值的, 不会有重复
属性必须依存于实体, 要有唯一标记
没有非唯一属性依赖于另一个非唯一的属性
7. 定义结构时的注意事项
减少完整性约束产生的问题
确认省略的实体,关系和属性

9. 把实体关系图映射到关系数据库对象的方法
把简单实体映射到数据库里的表
把属性映射到数据库里的表的字段, 标明类型和注释
把唯一标记映射到数据库里的唯一关键字
把实体间的关系映射到数据库里的外键

建立视图,使信息有不同的呈现面, 减少复杂的SQL语句
重新定义完整性约束条件

2. 创建表时给字段加默认值 和约束条件
创建表时可以给字段加上默认值
这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间

4. 创建表时的命名规则和注意事项
表名和字段名的命名规则:必须以字母开头,可以含符号A-Z,a-z,0-9,_,$,#
不用SQL里的保留字, 一定要用时可用双引号把字符串括起来.
用和实体或属性相关的英文符号长度有一定的限制

建表时可以用中文的字段名, 但最好还是用英文的字段名
创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面
建表时如果有唯一关键字或者唯一的约束条件,建表时自动建了索引
一个表的最多字段个数也是有限制的,254个.

5. 约束名的命名规则和语法
约束名的命名规则约束名如果在建表的时候没有指明,系统命名规则是SYS_Cn(n是数字)
约束名字符串的命名规则同于表和字段名的命名规则

6. 使用约束时的注意事项
约束里不能用系统函数,如SYSDATE和别的表的字段比较
可以用本表内字段的比较

10. 用子查询建表的注意事项
可以关连多个表及用集合函数生成新表,注意选择出来的字段必须有合法的字段名称,且不能重复。
用子查询方式建立的表,只有非空NOT NULL的约束条件能继承过来, 其它的约束条件和默认值都没有继承过来.

12. 如果数据库表里有不满足的记录存在,建立约束条件将不会成功.

十、ORACLE里的数据字典
1. 什么是数据字典ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库
 的产生而产生, 随着数据库的变化而变化, 体现为sys用户下所有的一些表和视图.

2. 数据字典里存了以下内容:用户信息
 用户的权限信息
 所有数据对象信息表的约束条件统计分析数据库的视图等
 不能手工修改数据字典里的信息.

2. 插入字符串类型的字段的注意事项:
字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’
如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个   单引号’ ’
字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验
日期字段的字段值可以用当前数据库的系统时间SYSDATE, 精确到秒
INSERT时最大可操作的字符串长度小于等于4000个单字节,
如果要插入更长的字符串, 请考虑字段用CLOB类型, 方法借用ORACLE里自带的DBMS_LOB程序包.

7. DML操作的注意事项
以上SQL语句对表都加上了行级锁, 确认完成后, 必须加上事物处理结束的命令COMMIT 才能正式生效,
否则改变不一定写入数据库里.行级锁也未能得到释放.
如果想撤回这些操作, 可以用命令 ROLLBACK 复原.
应该把它限定在较小 (一万条记录) 范围内,. 否则ORACLE处理这个事物用到很大的回退段.
程序响应慢甚至失去响应. 如果记录数上十万以上这些操作,
可以把这些SQL语句分段分次完成, 其间加上COMMIT 确认事物处理.
太过频繁的commit不好

2. 删除表及表里的数据
按时间清空日志表里的记录,使用重新命名的方法(应用程序可能有短暂出错, 可以选择在不繁忙的时间执行)
按原来表A的建表语句创建新表A1,
把表A重命名为A2(如果表A上有较频繁的DML操作,会对表加上行级锁,重命名过程用递归的方式循环做,直到DML操作结束,命名成功).
把创建新表A1重命名为A
历史记录表A2备份或删除

3.  删除表后应该注意的问题
删除表后把表里的索引一起删去.
删除表后会结束基于它的悬而未决的事物

序列号的名称一般可以采用“表名_字段名”的命名规则

1. 视图的概念和优点
视图是基于一个或多个表及视图的一些查询语句, 它象显示数据的视窗, 它本身是不存储数据的.
视图可以限制数据库的访问, 更好的控制权限
使用户使用简单的查询语句
同一数据的不同表现形式

索引是数据库里的一种数据对象
它和表是分开存放的两个实体
索引创建好了后, 由系统自动调用和管理

2. 什么时候创建索引?
自动创建的索引:唯一关键字, 唯一的约束条件
手工需要创建的索引:大表查询时, sql语句where后经常用到的字段或字段组合
  字段内容差别很大有大量NULL值表很大, 返回记录数较少

3. B*树索引的结构 每个索引由字段值和指针或ROWID组成

5.创建索引的注意事项
 创建索引时会加行级独占锁
 一个表的索引最好不要超过三个 (特殊的大表除外)
 最好用单字段索引
 索引最好和表分不同的表空间存放
 结合SQL语句的分析执行情况, 也可以建立多字段的组合索引和基于函数的索引
 大表的索引会占用很大的存储空间
 不要建唯一的索引, 而应该加唯一的约束条件

注意: 数据字典里存放的字符都是大写的.

where后不经常使用的比较字段

角色是命名多个相关权限的组合. 能把它赋于其它的用户或角色我们能创建角色, 使权限管理更容易一些.

注意: 如果用WITH ADMIN OPTION通过中间用户赋于的系统权限 中间用户删除后, 系统权限仍然存在.

9、赋于数据对象级的权限语法和例子

我要回帖

更多关于 sql语句在哪里写 的文章