导读:
1.Socket简介
Socket是TCP/IP网络的API,可以用它来开发网络应用程序,Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符
2.Socket的建立
int socket(int domain, int type, int protocol)
函数返回:一个整型的Socket描述符,可以在后面调用它。
参数说明:
int domain:指明所使用的协议族, 通常是PF_INET, 表示网络(TCP/IP)协议族说明我们网络程序所在的主机采用的通讯协族(AF_UNIX和AF_INET等).
AF_UNIX:只能够用于单一的Unix系统进程间通信,
AF_INET:是针对Internet的,因而可以允许在远程主机之间通信(当我们man socket时发现domain可选项是 PF_*而不是AF_*,因为glibc是posix的实现所以用PF代替了AF,不过我们都可以使用的)
int type:指定socket的类型, 通常是 SOCK_STREAM 流式Socket这样会提供按顺序的,可靠,双向,面向连接的比特流和SOCK_DGRAM数据报式Socket这样只会提供定长的,不可靠,无连接的通信
int prottocol:通常为0 由于我们指定了type,所以这个地方我们一般只要用0来代替就可以了
应用示例:int sockfd = socket(PF_INET, SOCK_STREAM, 0); ......
Microsoft SQL server2000由一系列相互协作的组件构成。能满足最大的WEB站点和企业数据处理系统存储和分析数据的需要。本文带来的就是在windows环境下SQL2000的安装过程。
系统需求
这里以其四合一版本为例,以下安装过程同理。Microsoft SQL Server 2000 可在运行 Intel或兼容的 Pentium、Pentium Pro 或 Pentium II 处理器的计算机上运作。处理器必须以最低 166 MHz 的速度运行。需要 Internet Explorer 5.0 或更高版本。另外在在内存方面有如下要求:
企业版 最低 64 MB,推荐使用 128 MB
标准版 最低 64 MB
个人版 在 Windows 2000 上需要 64 MB,在所有其它操作系统上需要 32 MB
开发版 最低 64 MB
安装过程
第一步:将Microsoft SQL Server 2000安装光盘放入光驱中,安装程序会自动运行出现版本选择界面,我们以选择个人版为例。如下图:
图1 版本选择 点击看大图
第二步:在接下来的界面中选择“安装SQL Server 2000组件”选项。如下图:
图2 选择安装组件 点击看大图
第三步:接着选择 ......
数据采集中常用的SQL语句
相同的SQL语句运用到不同数据库中会有略微的差别,对字符变量的要求,相关函数的变化,以及语法规则的不同等等,例如:oracle数据库中对字段命名别名时不需要as 字符,没有month(),year()等时间函数等等,access数据库中在使用inner join执行内部联合时条件需用(),当然还有很多的细微差别,大家可以自己去寻找总结。下面的示例以SQL SERVER为基础编写。
1. 抽取非重复数据
select distinct var1 from tableName;
2. 抽取某个时间段间的数据
select var1,var2 from 数据表 where 字段名 between 时间1 and 时间2;
3. 连接多个变量
select '123'+cast(456 as varchar);
select '123'+cast(456 as varchar)+'789';
4. 用SQL语句找出表名为Table1中的处在ID字段中1-200条记录中Name字段包含w的所有记录
select * from Table1 where id between 1 and 200 and Name like '%w%';
5. 找出拥有超过10名客户的地区的列表
select country from test group by country having count(cus ......
sysforeignkeys
包含关于表定义中的 FOREIGN KEY 约束的信息。该表存储在每个数据库中。
列名 数据类型 描述
constid int FOREIGN KEY 约束的 ID。
fkeyid int 具有 FOREIGN KEY 约束的表对象 ID。
rkeyid int 在 FOREIGN KEY 约束中引用的表对象 ID。
fkey smallint 正在引用的列 ID。
rkey smallint 已引用的列 ID。
keyno smallint 该列在引用列列表中的位置。
sysindexes
数据库中的每个索引和表在表中各占一行。该表存储在每个数据库中。
列名 数据类型 描述
id int 表 ID(如果 indid = 0 或 255)。否则为索引所属表的 ID。
status int 内部系统状态信息。
first binary(6) 指向第一页或根页的指针。
indid smallint 索引 ID:
1 = 聚集索引
>1 = 非聚集
255 = 具有 text 或 image 数据的表条目
root binary(6) 如果 indid >= 1 和 < 255, root 是指向根页的指针。如果 indid = 0 或 indid = 255, root 是指向最后一页的指针。
minlen smallint 最小行 ......
SELECT LEFT(RTRIM('20080927p1058'),LEN('20080927p1058')-2)
SELECT SUBSTRING('20080927p1058',1,LEN('20080927p1058')-2)
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; } ......
在“新建”菜单中,有Program window,Test window,SQL window和Command window等。
SQL window和Command window有什么区别??
Command window实现了SQL*Plus的所有功能,允许运行sql*plus命令,sql命令,sql脚本。
SQL window用于执行sql语句,显示sql输出,执行统计信息。(测试sql语句,查看表中的数据,更新数据)
例如 desc table不能在SQL window中执行,必须在Command window中才能执行。
在Program window中创建一个存储过程,如下:
create or replace procedure TEST is
begin
DBMS_SESSION.set_nls('NLS_DATE_FORMAT','''YYYY-MM-DD HH24:MI:SS''');
DBMS_OUTPUT.PUT_LINE('HelloWorld!');
DBMS_OUTPUT.put_line(SYSDATE);
end TEST;
需要注意,SET_NLS
的第二
个参数VALUE
输入的值除了需要的格式外,还需要包含引号,否则会引发错误(选项缺失或无效)
在Command window中执行(或者在Test window中测试),如下:
set serveroutput on
exec TEST();
或者begin
2 test();
3 end;
4 / ......