应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字 (Socket)的接口,区分不同应用程序进程间的网络通信和连接。 More …
1、sysdate
获取系统当前日期和时间
SQL> select sysdate from dual;
SYSDATE
———–
2008-12-12
2、to_date
将字符串转化为日期类型
SQL> select to_date(‘2008-10-10 15:23:24′,’yyyy-mm-dd hh24:mi:ss’) from dual;
TO_DATE(‘2008-10-1015:23:24′,’
——————————
2008-10-10 下午 03:23:24
3、trunc(date[,fromat])
按指定格式截断日期,format为可用的日期格式化字符串
SQL> select trunc(sysdate,’yy’) from dual;
TRUNC(SYSDATE,’YY’)
——————-
2008-1-1
SQL> select trunc(sysdate,’mm’) from dual;
TRUNC(SYSDATE,’MM’)
——————-
2008-12-1
SQL> select trunc(sysdate,’dd’) from dual;
TRUNC(SYSDATE,’DD’)
——————-
2008-12-12
4、round(date[,formate])
按指定格式对日期进行四舍五入操作
SQL> select round(sysdate,’dd’) from dual;
ROUND(SYSDATE,’DD’)
——————-
2008-12-13
SQL> select round(sysdate,’mm’) from dual;
ROUND(SYSDATE,’MM’)
——————-
2008-12-1
SQL> select round(to_date(‘2008-12-16′,’yyyy-mm-dd’),’mm’) from dual;
ROUND(TO_DATE(‘2008-12-16′,’YY
——————————
2009-1-1
SQL> select round(sysdate,’yyyy’) from dual;
ROUND(SYSDATE,’YYYY’)
———————
2009-1-1
说明:
format可用的日期格式化字符串见:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions230.htm#i1002084
5、Last_day
本月最后一天
SQL> select last_day(sysdate) from dual;
LAST_DAY(SYSDATE)
—————–
2008-12-31 下午 0
6、Add_months(d,n)
当前日期d后推n个月,用于从一个日期值增加或减少一些月份
date_value:=add_months(date_value,number_of_months)
SQL> select add_months(to_date(‘2008-10-31′,’yyyy-mm-dd’),1) from dual;
SQL> select add_months(to_date(‘2008-10-30′,’yyyy-mm-dd’),1) from dual;
ADD_MONTHS(TO_DATE(‘2008-10-30
——————————
2008-11-30
SQL> select add_months(to_date(‘2008-10-29′,’yyyy-mm-dd’),1) from dual;
ADD_MONTHS(TO_DATE(‘2008-10-29
——————————
2008-11-29
7、Months_between(f,s)
日期f和s间相差月数
SQL> select months_between(to_date(‘2008-12-01′,’yyyy-mm-dd’),to_date(‘2008-11-01′,’yyyy-mm-dd’)) from dual;
MONTHS_BETWEEN(TO_DATE(‘2008-1
——————————
1
SQL> select months_between(to_date(‘2008-12-01′,’yyyy-mm-dd’),to_date(‘2008-11-30′,’yyyy-mm-dd’)) from dual;
MONTHS_BETWEEN(TO_DATE(‘2008-1
——————————
0.0645161290322581
参考:
http://www.psoug.org/reference/date_func.html
以下是oracle内建函数索引:
http://www.psoug.org/reference/builtin_functions.html
方法1:
ctrl + R调出替换窗口,将^p^p替换成^p即可。
方法2:
ctrl + R调出替换窗口,在“查找”输入框中输入%[ ^t]++^p,在替换输入框中不要输入任何东西,选中“正则表达式”复选框,“正则表达式引擎”中选择“UltraEdit”前的复选框,然后全部替换即可。
格式化字符串不区分大小写,to_date函数和to_char函数会用到格式化字符串。
Y或YY或YYY
年的最后一位,两位或三位
SYEAR或YEAR SYEAR
使公元前的年份前加一负号 Select to_char(sysdate,’SYEAR’) from dual; -1112表示公元前111 2年
Q 季度
1~3月为第一季度 Select to_char(sysdate,’Q’) from dual; 2表示第二季度①
MM
月份值
RM
月份的罗马表示
month
用9个字符长度表示的月份名
SQL> select to_char(sysdate,’month’) from dual;
TO_CHAR(SYSDATE,’MONTH’)
————————
12月
W
本月第几周
SQL> select to_char(sysdate,’w’) from dual;
TO_CHAR(SYSDATE,’W’)
——————–
2
WW
当年第几周
SQL> select to_char(sysdate,’ww’) from dual;
TO_CHAR(SYSDATE,’WW’)
———————
50
D表示周内第几天,DD当月第几天,DDD 当年第几天
SQL> select to_char(sysdate,’d’) from dual;
TO_CHAR(SYSDATE,’D’)
——————–
6
SQL> select to_char(sysdate,’dd’) from dual;
TO_CHAR(SYSDATE,’DD’)
———————
12
SQL> select to_char(sysdate,’ddd’) from dual;
TO_CHAR(SYSDATE,’DDD’)
———————-
347
DY 周内第几天缩写
SQL> select to_char(sysdate,’dy’) from dual;
TO_CHAR(SYSDATE,’DY’)
———————
星期五
HH或HH12
12进制小时数
HH24
24小时制
MI
分钟数(0~59)
SS
秒数(0~59)
重命名表
ALTER TABLE table_name RENAME TO new_table_name;
添加列
语法:
alter table tablename add(column1 datatype, column2 datatype, …)
说明:
添加多列的话,用逗号隔开。
范例:
SQL> desc s_dept;
Name Type Nullable Default Comments
——— ———— ——– ——- ——–
ID NUMBER(7)
NAME VARCHAR2(25)
REGION_ID NUMBER(7) Y
SQL> alter table s_dept add(age number(1));
Table altered
SQL> desc s_dept;
Name Type Nullable Default Comments
——— ———— ——– ——- ——–
ID NUMBER(7)
NAME VARCHAR2(25)
REGION_ID NUMBER(7) Y
AGE NUMBER(1) Y
修改已有列的定义
语法:
alter table tablename modify (column datatype);
范例:
SQL> alter table s_dept modify(age number(2));
Table altered
SQL> desc s_dept;
Name Type Nullable Default Comments
——— ———— ——– ——- ——–
ID NUMBER(7)
NAME VARCHAR2(25)
REGION_ID NUMBER(7) Y
AGE NUMBER(2) Y
修改列的名称
语法:
ALTER TABLE table_name RENAME COLUMN supplier_name to sname;
范例:
SQL> alter table s_dept rename column age to age1;
Table altered
SQL> desc s_dept;
Name Type Nullable Default Comments
——— ———— ——– ——- ——–
ID NUMBER(7)
NAME VARCHAR2(25)
REGION_ID NUMBER(7) Y
AGE1 NUMBER(1) Y
删除一列
语法:
ALTER TABLE table_name DROP COLUMN column_name;
范例:
SQL> alter table s_dept drop column age;
Table altered
SQL> desc s_dept;
Name Type Nullable Default Comments
——— ———— ——– ——- ——–
ID NUMBER(7)
NAME VARCHAR2(25)
REGION_ID NUMBER(7) Y
参考链接:
http://www.techonthenet.com/sql/tables/alter_table.php
索引概述
索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和完整性检查。建立索引是一项技术性要求高的工作。一般在数据库设计阶段的与数据库结构一道考虑。应用系统的性能直接与索引的合理直接有关。下面给出建立索引的方法和要点。
索引的目的
1、提高对表的查询速度;
2、对表有关列的取值进行检查。
注意事项
1、当然索引也是一把双刃剑,虽然能够加快查询的速度,但也会降低对insert、update、delete的处理速度(因为要将表的存放位置记录到索引项中。),所以一个基表不能建太多的索引;
2、空值不能被索引
3、只有唯一索引才真正提高速度,一般的索引只能提高30%左右。
索引建立语法:
CREATE INDEX
CREATE [unique] INDEX [user.]index
ON [user.]table (column [ASC | DESC] [,column
[ASC | DESC] ] … )
[CLUSTER [scheam.]cluster]
[INITRANS n]
[MAXTRANS n]
[PCTFREE n]
[STORAGE storage]
[TABLESPACE tablespace]
[NO SORT]
Advanced
其中:
schema ORACLE模式,缺省即为当前帐户
index 索引名
table 创建索引的基表名
column 基表中的列名,一个索引最多有16列,long列、long raw 列不能建索引列
DESC、ASC 缺省为ASC即升序排序
CLUSTER 指定一个聚簇(Hash cluster不能建索引)
INITRANS、MAXTRANS 指定初始和最大事务入口数
Tablespace 表空间名
STORAGE 存储参数,同create table 中的storage.
PCTFREE 索引数据块空闲空间的百分比(不能指定pctused)
NOSORT 不(能)排序(存储时就已按升序,所以指出不再排序)
例1:
商场的商品库表结构如下,我们为该表的商品代码建立一唯一索引,使得在前台POS收款时提高查询速度。
Create table good(
good_id number(8) not null,/* 商品条码 */
Good_desc varchar2(40), /* 商品描述 */
Unit_cost number(10,2) /* 单价 */
Good_unit varchar2(6), /* 单位 */
Unit_pric number(10,2) /* 零售价 */
);
例子有问题?只是建立了非空约束,没有建立索引啊!
注:提高查询速度的方法还有在表上建立主键,主键与唯一索引的差别在于唯一索引可以空,主键为非空,比如:
Create table good(
good_id number(8) primary key,
Good_desc Varchar2(40),
Unit_cost number(10,2),
Good_unit char(6),
Unit_pric number(10,2)
);
例2:
create unique index pk_dfnd_org_msg_spec on dFnd_org_msg_spec(acct_id) tablespace SYSTEM_INDEX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 50M
next 50M
minextents 1
maxextents unlimited
pctincrease 0
);
修改索引
对于较早的Oracle版本,修改索引的主要任务是修改已存在索引的存储参数适应增长的需要或者重新建立索引。而Oracle8I及以后的版本,可以对无用的空间进行合并。这些的工作主要是由管理员来完成。简要语法结构如下,更详细的语法图见电子文档《Oracle8i Reference 》 中的 Alter index.
ALTER [UNIQUE] INDEX [user.]index
[INITRANS n]
[MAXTRANS n]
REBUILD
[STORAGE n]
其中:
REBUILD 是 根据原来的索引结构重新建立索引,实际是删除原来的索引后再重新建立。
提示:DBA经常用 REBUILD 来重建索引可以减少硬盘碎片和提高应用系统的性能。
例:
alter index pk_detno rebuild storage(initial 1m next 512k);
ALTER INDEX emp_ix REBUILD REVERSE;
Oracle8i 的新功能可以对索引的无用空间进行合并,它由下面命令完成:
ALTER INDEX . . . COALESCE;
例如:
ALTER INDEX ename_idx COALESCE;
删除索引
当不需要时可以将索引删除以释放出硬盘空间。命令如下:
DROP INDEX [schema.]indexname
例如:
sql> drop index pk_dept;
注:当表结构被删除时,有其相关的所有索引也随之被删除。
新索引类型
Oracle8i为了性能优化而提供新的创建新类型的索引。这些新索引在下面介绍:
基于函数的索引
基于函数的索引就是存储预先计算好的函数或表达式值的索引。这些表达式可以是算术运算表达式、SQL或PL/SQL函数、C调用等。值得注意的是,一般用户要创建函数索引,必须具有GLOBAL QUERY REWRITE和CREATE ANY INDEX权限。否则不能创建函数索引,看下面例子:
例1:为EMP表的ename 列建立大写转换函数的索引idx :
CREATE INDEX idx ON emp ( UPPER(ename));
这样就可以在查询语句来使用:
SELECT * FROM EMP WHERE UPPER(ename) LIKE ‘JOH%’;
例2:为emp 的工资和奖金之和建立索引:
1) 查看emp 的表结构:
SQL> desc emp
Name Null? Type
—————————————– ——– ——————
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
2)没有授权就创建函数索引的提示:
SQL> create index sal_comm on emp ( (sal+comm)*12, sal,comm)
2 tablespace users storage(initial 64k next 64k pctincrease 0);
create index sal_comm on emp ( (sal+comm)*12, sal,comm)
*
ERROR at line 1:
ORA-01031: insufficient privileges
3) 连接到DBA帐户并授权:
SQL> connect sys/sys@ora816
Connected.
SQL> grant GLOBAL QUERY REWRITE to scott;
Grant succeeded.
SQL> grant CREATE ANY INDEX to scott;
Grant succeeded.
4)在连接到scott帐户,创建基于函数的索引:
SQL> connect scott/tiger@ora816
Connected.
SQL> create index sal_comm on emp ( (sal+comm)*12, sal,comm)
2 tablespace users storage(initial 64k next 64k pctincrease 0);
Index created.
5)在查询中使用函数索引:
SQL> select ename,sal,comm from emp where (sal+comm)*12 >5000;
ENAME SAL COMM
———————- —————- —————-
ALLEN 1600 300
WARD 1250 500
MARTIN 1250 1400
TURNER 1500 0
赵元杰 1234.5 54321
反向键索引
反向键索引通过反向键保持索引的所有叶子键上的插入分布。有时,可用反向键索引来避免不平衡的索引。对于反向键索引可以进行下面操作:
1.通过在ALTER INDEX命令后加REBUILD NOREVERSE或REBUILD REVERSE子句来使索引边为反向键索引或普通索引;
2、采用范围扫描的查询不能使用反向键索引;
3、位图索引不能反向;
4、索引编排表不能反向。
例1:创建一个反向键索引:
CREATE INDEX i ON t (a,b,c) REVERSE;
例2:使一个索引变为反向键索引:
ALTER INDEX i REBUILD NOREVERSE;
索引组织表
与普通的索引不一样,索引组织表(Index_Organized Table)是根据表来存储数据,即将索引和表存储在一起。这样的索引结构表(Index_organized table—IOT)的特点是:对表数据的改变,如插入一新行、删除某行都引起索引的更新。
索引组织表就象带一个或多个列所有的普通表一样,但索引组织表在B-树索引结构的叶节点上存储行数据。通过在索引结构中存储数据,索引组织表减少了总的存储量,此外,索引组织表也改善访问性能。
由于表中的行与B_树索引存放在一起,每个行都没有ROWID,而是用主键来标识。但是Oracle会“猜”这些行的位置并为每个行分配逻辑的ROWID。此外,你可以为这样的表建立第二个索引。
创建索引结构表也是用CREATE TABLE 命令加ORGANIZATION INDEX关键字来实现。但是,这样的表在创建完后,你还必须为该表建立一个主键。
例子:
CREATE TABLE IOT_EXPAMPLE
(
Pk_col1 number(4),
Pk_col2 varchar2(10),
Non_pk_col1 varchar2(40),
Non_pk_col2 date,
CONSTRAINT pk_iot PRIMARY KEY
( pk_col1, pk_col2)
)
ORGANIZATION INDEX
TABLESPACE INDEX
STORAGE( INITIAL 1M NEXT 512K PCTINCREASE 0 );
索引组织表有些限制:
1、不能使用唯一约束;
2、必须具有一个主键;
3、不能建立簇;
4、不能包含LONG类型列;
5、不支持分布和复制。
提示:如果建立了索引组织表,则会在DBA_TABLES中的IOT_TYPE和IOT_NAME列上记录有索引组织表的信息。
例1.修改索引结构表 docindex 的索引段的INITRANS参数:
ALTER TABLE docindex INITRANS 4;
例2.下面语句加一个的溢出数据段到索引组织表 docindex中:
ALTER TABLE docindex ADD OVERFLOW;
例3.下面语句为索引组织表 docindex的溢出数据段修改INITRANS参数:
ALTER TABLE docindex OVERFLOW INITRANS 4;
参考连接:http://www.popday.net/www/oracle/2007-10/127.html
VENI VIDI VICI[1](国际音标:/weːniː wiːdiː wiːkiː/,一般翻译为“我来,我见,我征服”;而在文法上,是三个动词:来、见、胜利的第一人称完成式)尤利乌斯·恺撒在泽拉战役中打败本都国王法尔纳克二世之后写给罗马元老院的著名捷报。他以三个双音节的拉丁词汇,写成了这句口号。
from:http://zh.wikipedia.org/wiki/VENI_VIDI_VICI
1、
数字(number)是最基本的数据类型,在JavaScript中,数字不区分整型数值和浮点型数值,所有的数字都是由浮点型组成。JavaScript使用标准的8字节IEEE浮点数值格式表示数值。
2、
当数值过大时,JavaScript会自动将数值转换为科学计数法格式显示。
示例:
alert(10000000000000000000000000);
显示为:
可以直接在IE地址栏中输入:
javascript:alert(10000000000000000000000000);
挺方便的吧,:-D
3
Math对象包含了一组用来处理数值的函数。
示例:
alert(Math.abs(-1));
输出为1。
详细介绍参阅:http://www.w3school.com.cn/js/jsref_obj_math.asp
4
将数字型变量转换为字符串型使用如下方法:
alert(typeof(”+1));
输出:
line-height
line-height用来设置行间距离,该值比font-size大的话,距离就会变宽,该值比font-size小的话,距离就会变窄。
经常在字体设置的时候使用,如下是一个例子:
font: 12px/1.4 sans-serif;
其中的1.4就是line-height;
推荐阅读:
http://www.ddcat.net/blog/?p=227
该处的讲解实在是异常详细,orz 。
其他的一些参考链接:
http://www.w3school.com.cn/css/pr_dim_line-height.asp
http://css-discuss.incutio.com/?page=LineHeight