今天更换公司的开发服务器时用到了这两条命令,做个记录先。
如何导出PostgreSQL数据库中的数据:
$ pg_dump -U postgres -d mydatabase -f dump.sql
导入数据时首先创建数据库再用psql导入:
$ createdb newdatabase $ psql -d newdatabase -U postgres -f dump.sql
Oracle 10g2默认仅支持redhat enterprise系列和 SuSE 系列的几个版本的 Linux。 在 Ubuntu 上安装 Oracle 需要做些设置。下面是安装过程。
阅读全文 »Oracle管理中常用的SQL语句。
阅读全文 »
Oracle使用过程中经常会用到的SQL语句。
阅读全文 »
Oracle中试图对一个子查询进行更新时可能会出现ORA-01779错误。该错误的内容为:
ORA-01779: cannot modify a column which maps to a non-key-preserved table阅读全文 »
简单介绍一下使用tkprof工具调整Oracle SQL语句性能的方法。
阅读全文 »
启动时不连接服务器。
sqlplus /nolog
连接服务器的命令:
connect username/password@hoststring
设置行宽为1000字符。
set line 1000
设置列group_name的宽度为30字符。
col group_name format a30
启动外部编辑器编辑sql语句。
ed
设置ed命令启动的外部编辑器为vim。
define _EDITOR=vim
使用Windows下的gvim作为编辑器时应当加上-f参数。
define _EDITOR="gvim -f"
设置每页显示200条记录。
set pagesize 200
登录时自动执行的SQL脚本。
$ORACLE_HOME/sqlplus/admin/glogin.sql
各个用户自己的登录脚本。Oracle会在执行完glogin.sql之后执行该文件。搜索顺序为:当前目录->$SQLPATH。
login.sql
今天一个朋友问我,一个表有两个字段mac和ip,如何找出所有的mac相同而ip不同的记录?想了半天写出了下面的这个SQL语句。
mysql> select * from ip;
+-----+-----+
| mac | ip |
+-----+-----+
| abc | 123 |
| def | 456 |
| ghi | 245 |
| abc | 678 |
| def | 864 |
| abc | 123 |
| ghi | 245 |
+-----+-----+
7 rows in set (0.00 sec)
mysql> SELECT DISTINCT a.mac, a.ip
-> FROM ip a, ip b
-> WHERE a.mac = b.mac AND a.ip <> b.ip ORDER BY a.mac;
+-----+-----+
| mac | ip |
+-----+-----+
| abc | 678 |
| abc | 123 |
| def | 864 |
| def | 456 |
+-----+-----+
4 rows in set (0.00 sec)
NULL值不等于0,也不等于空,它表示该值不定。
任何运算(加减乘除、字符串连接等)的运算数中包括NULL值时,整个表达式的值即为NULL。使用单行函数对NULL值进行处理,得到的结果也为NULL(NVL等函数除外)。
但是NULL值的布尔运算结果并不一定是NULL,例外的情况为,FALSE AND NULL 结果为FALSE,TRUE OR NULL 结果为TRUE。这是因为在AND运算时只要有一个运算数为FALSE结果即为FALSE,即使另一个运算数为NULL,结果也是一定为FALSE的。反之OR运算中,只要有一个运算数为TRUE,结果即为TRUE。
分组函数均忽略NULL值。
排序时,NULL被看作是最大的值,即正序时NULL显示在最下方,逆序时NULL显示在最上方。
处理NULL值的函数有如下几个:
- NVL(参数1, 参数2):如果参数1不为NULL,则返回参数1;如果参数1为NULL,则返回参数2
- NVL2(参数1, 参数2, 参数3):如果参数1不为NULL,则返回参数2;如果参数1为NULL,则返回参数3。该函数的返回值的类型总是与参数2相同,当参数1为NULL时,Oracle会将参数3转换成参数2的数据类型之后再返回。
- NULLIF(参数1, 参数2) :如果参数1等于参数2,则返回NULL;如果参数1不等于参数2,则返回参数1。
- COALESCE(参数1, 参数2, ..., 参数n):返回参数1到参数n中第一个不为NULL的值。
