‘壹’ 《sql必知必会》中,作者提供了一个例子在附录a中,该如何把它用到sql server 中
新建查询
然后把下载下来的脚本复制进去运行一下
‘贰’ 如何在db2命令行运行sql必知必会例子
db2 => connect to dbName user xxx using password
db2 => sql语句
如果要执行一个sql脚本文件:
db2 => quit
c:\> db2 -tvf sql文件名
db2 -td@ -f filename
@是语句结束符。
E:\>db2 ? options
db2 [option ...] [db2-command | sql-statement |
[? [phrase | message | sqlstate | class-code]]]
option:-a、-c、-e{c|s}、-finfile、-lhistfile、-n、-o、-p、-rreport、-s、-t、
-td;、-v、-w、-x 和 -zoutputfile。
选项 描述 缺省设置
------ ---------------------------------------- ---------------
-a 显示 SQLCA OFF
-c 自动落实 ON
-e 显示 SQLCODE/SQLSTATE OFF
-f 读取输入文件 OFF
-l 将命令记录到历史文件中 OFF
-n 除去换行字符 OFF
-o 显示输出 ON
-p 显示 db2 交互式提示符 ON
-r 将输出报告保存到文件 OFF
-s 在命令出错时停止执行 OFF
-t 设置语句终止字符 OFF
-v 回送当前命令 OFF
-w 显示 FETCH/SELECT 警告消息 ON
-x 不打印列标题 OFF
-z 将所有输出保存到输出文件 OFF
注意:
使用 DB2OPTIONS 环境变量定制选项缺省值。
紧跟选项字母后的减号(-)使该选项关闭。
使用 UPDATE COMMAND OPTIONS 更改选项设置(以交互式或
文件输入方式)。
只能提供nt环境下编写脚本的例子给你以供参考:
脚本样例:
db2 connect to yourdb user yourname using yourpassword
db2 insert into newuser(username,password,email) values('Amy','1234','[email protected]')
db2 insert into newuser(username,password,email) values('Judy','1234','[email protected]')
db2 commit
db2 disconnect yourdb
运行脚本: 运行db2cmd X:\XXX.bat
以下摘自本论坛的FAQ可参考:
"
在命令窗口中运行DB2脚本,可用 db2 -svtf 脚本文件名 来实现。
例如,脚本文件名为sample.sql,运行:db2 -svtf sample.sql
参数中:
s 代表遇到错误时中止运行脚本
v 代表输出结果到屏幕
t 指以;号作为每行的分隔符
f 指后面需跟脚本文件名 "---此摘录版权归斑竹非本人所有
具体在AS400如何编写脚本非常遗憾.
db2 -x select SERIALNO from tabname where clause
C:>db2 attach to db2164 user ccp
输入 ccp 的当前密码:
实例连接信息
实例服务器 = DB2/NT 8.2.0
授权标识 = CCP
本地实例别名 = DB2164
C:>db2 connect to dw164 user ccp
输入 ccp 的当前密码:
数据库连接信息
数据库服务器 = DB2/NT 8.2.0
SQL 授权标识 = CCP
本地数据库别名 = DW164
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
CUST_ID NOW_PRED_S LOAD_TIME
-------------------- -------------------- --------------------------
3094736. ZFS 2008-05-07-10.02.00.453000
3145886. ZFS 2008-05-07-10.02.00.453000
2 条记录已选择。
C:>db2 list command options
命令行处理器选项设置
后端进程等待时间(秒) (DB2BQTIME) = 1
连接至后端的重试次数 (DB2BQTRY) = 60
请求队列等待时间(秒) (DB2RQTIME) = 5
输入队列等待时间(秒) (DB2IQTIME) = 5
命令选项 (DB2OPTIONS) = +m
选项 描述 当前设置
------ ---------------------------------------- ---------------
-a 显示 SQLCA OFF
-c 自动落实 ON
-d 检索并显示 XML 声明 OFF
-e 显示 SQLCODE/SQLSTATE OFF
-f 读取输入文件 OFF
-i 显示 XML 数据并带有缩进 OFF
-l 将命令记录到历史记录文件中 OFF
-m 显示受影响的行数 OFF
-n 除去换行字符 OFF
-o 显示输出 ON
-p 显示交互式输入提示符 ON
-q 保留空格和换行符 OFF
-r 将输出保存到报告文件 OFF
-s 在命令出错时停止执行 OFF
-t 设置语句终止字符 OFF
-v 回传当前命令 OFF
-w 显示 FETCH/SELECT 警告消息 ON
-x 不打印列标题 OFF
-z 将所有输出保存到输出文件 OFF
C:>db2set DB2OPTIONS=-x
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
4654908. ZFS 2008-05-07-10.02.00.453000
3716687. ZFS 2008-05-07-10.02.00.453000
‘叁’ 《SQL必知必会(第4版)》epub下载在线阅读,求百度网盘云资源
《SQL必知必会》(福达 (Ben Forta))电子书网盘下载免费在线阅读
资源链接:
链接:https://pan..com/s/15flEL2_R2C2d5loRB5hDFA
书名:SQL必知必会
作者:福达 (Ben Forta)
译者:钟鸣
豆瓣评分:8.5
出版社:人民邮电出版社
出版年份:2013-5-1
页数:239
内容简介:
SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能。
本书是深受世界各地读者欢迎的SQL经典畅销书,内容丰富,文字简洁明快,针对Oracle、SQL Server、MySQL、DB2、PostgreSQL、SQLite等各种主流数据库提供了大量简明的实例。与其他同类图书不同,它没有过多阐述数据库基础理论,而是专门针对一线软件开发人员,直接从SQL SELECT开始,讲述实际工作环境中最常用和最必需的SQL知识,实用性极强。通过本书,读者能够从没有多少SQL经验的新手,迅速编写出世界级的SQL!
本书是麻省理工学院、伊利诺伊大学等众多大学的参考教材。除了作为教程之外,独特的编排方式还使本书成为方便的快速查询手册。
作者为本书专门开设了网站,提供下载、勘误和答疑:
http://forums.forta.com/threads.cfm?forumid=A1031720-3048-80A9-EF986F59D2959184
作者简介:
Ben Forta ,Adobe
公司开发者关系部总监,世界知名的技术作家,在计算机产品开发、支持、培训和营销等方面拥有20多年的丰富经验。多年来,他撰写了SQL、MySQL、正则表达式、JSP、WAP和Windows开发等方面的十多部技术图书,其中不少已被翻译为多种语言在世界各地出版发行并成为畅销经典。读者可以通过他的个人网站forta.com了解更多信息。
‘肆’ 求SQL数据库设计实例
在MySQL中,可以使用CREATEDATABASE语句创建数据库,语法格式如下:CREATEDATABASE[IFNOTEXISTS]<数据库名>[[DEFAULT]CHARACTERSET<字符集名>][[DEFAULT]COLLATE<校对规则名>];
[]中的内容是可选的。语法说明如下:
<数据库名>:创建数据库的名称。MySQL的数据存储区将以目录方式表示MySQL数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头轮拿,尽量要有实际意义。注意在MySQL中不区分大小写。
IFNOTEXISTS:在创建数据库之前进行判断,只有该数据库目顷纤前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。
[DEFAULT]CHARACTERSET:指定数据库的字符集。指定字符集的目的是为了避免在数雀桐仿据库中存储的数据出现乱码的情况。如果在创建数据库时不指定字符集,那么就使用系统的默认字符集。
[DEFAULT]COLLATE:指定字符集的默认校对规则。
MySQL的字符集(CHARACTER)和校对规则(COLLATION)是两个不同的概念。字符集是用来定义MySQL存储字符串的方式,校对规则定义了比较字符串的方式。后面我们会单独讲解MySQL的字符集和校对规则。
‘伍’ 急求SQL 数据库实例!~
直接给你代码,你在查询语句里执行一次就可以了
use master
go
----查询是否存在bbsDB数据库,有的话删除----
if exists (select * from sysdatabases where name='bbsDB')
drop database bbsDB
go
----创建bbsDB数据库----
create database bbsDB
on primary
(
name='bbsDB_data',
filename='D:\BBS数据库zxy\bbsDB_data.mdf',
size=10MB,
filegrowth=20%
)
log on
(
name='bbsDB_log',
filename='D:\BBS数据库zxy\bbsDB_log.ldf',
size=3MB,
maxsize=20MB,
filegrowth=10%
)
go
use bbsDB
go
----创建表----
--是否已经存在bbsUsers表(用户表),存在就删除
if exists (select * from sysobjects where name='bbsUsers')
drop table bbsUsers
--创建bbsUsers表
create table bbsUsers
(
UID int identity(1,1) not null,
Uname varchar(15) not null,
Upassword varchar(10),
Ubirthday datetime not null,
Uemail varchar(20),
Usex bit not null,
Uclass int not null,
Uremark varchar(20),
UregDate datetime not null,
Ustate int ,
Upoint int
)
go
--为bbsUsers表添加约束
alter table bbsUsers
add constraint PK_UID
primary key (UID)
alter table bbsUsers
add constraint DF_Upassword
default(888888)for Upassword
alter table bbsUsers
add constraint CK_Upassword
check (len(Upassword)>=6)
alter table bbsUsers
add constraint CK_Uemail
check(Uemail like '%@%')
alter table bbsUsers
add constraint DF_Usex
default (1) for Usex
alter table bbsUsers
add constraint DF_Uclass
default (1) for Uclass
alter table bbsUsers
add constraint DF_UregDate
default(getdate())for UregDate
alter table bbsUsers
add constraint DF_Ustate
default (0)for Ustate
alter table bbsUsers
add constraint DF_Upoint
default (20)for Upoint
go
‘陆’ 求SQL语言建数据库简单实例
建立S,P,J,SPJ表,代码如下:
CREATE SCHEMA SPJ AUTHORIZATION PENG
CREATE TABLE S
(SNO CHAR(4) PRIMARY KEY,
SNAME CHAR(20),
STATUS SMALLINT,
CITY CHAR(8)
)
CREATE TABLE P
(PNO CHAR(4) PRIMARY KEY,
PNAME CHAR(8),
COLOR CHAR(2),
WEIGHT SMALLINT
)
CREATE TABLE J
(JNO CHAR(4) PRIMARY KEY,
JNAME CHAR(20)UNIQUE,
CITY CHAR(8)
)
CREATE TABLE SPJ
(SNO CHAR(4),
PNO CHAR(4),
JNO CHAR(4),
QTY SMALLINT,
PRIMARY KEY (SNO,PNO,JNO),
FOREIGN KEY (SNO) REFERENCES S(SNO),
FOREIGN KEY (PNO) REFERENCES P(PNO),
FOREIGN KEY (JNO) REFERENCES J(JNO)
)
定义模式语句"CREATE SCHEMA" 和定义数据库语句"CREATE DATABASE"是等效的,只是"CREATE DATABASE"是99以前的版本出现的
‘柒’ 什么是SQL SERVER实例,以及相关知识点
什么是SQL SERVER实例,以及相关知识点
所谓“SQL实例”,实际上就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。
在一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是一个实例。
实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQLSERVER,命名设置保持默认的话,那这个实例就是默认实例。
‘捌’ [存储过程详解]sql存储过程实例详解
什么是存储过程: 存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。
存储过程的好处:
1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。
2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。
3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。
小结:总之存储过程是好东西,在做项目时属于必备利器,下面介绍存储过程的基本语法。
存储过程的语法和参数讲解
存储过程的一些基本语法:
创建存储过程的参数:
1.procere_name:存储过程的名称,在前面加#为局部临时存储过程,加##为全局临时存储过程。
2.; number:是可选的整数,用来对同名模镇派的过程分组,以便用一条 DROP PROCEDURE 语句即可将同组的过程一起除去。例如,名为 orders 的应用程序使用的过程可以命名为 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 语句将除去整个组。如果名称中包含定界标识符,则数字不应包含在标识符中,只应在 procere_name 前后使用适当的定界符。
3.@parameter:
存储过程的参数。可以有一个或多个。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。存储过程最多可以有2.100 个参数。使用 @ 符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则旅缺。每个过程的参数仅用于该过程本身;
相同的参数名称可以用在其它过程中。默认情况下,参数只能代替常量,而不能用于代替表名、列名或其它数据库对象的名称。有关更多信息,请参见 EXECUTE。
4.data_type:参数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。不过,cursor 数据类型只能用于 OUTPUT 参数。如果指定的数据类型为 cursor,也必须同时指定 VARYING 和 OUTPUT 关键字。有关 SQL Server 提供的数据类型旦贺及其语法的更多信息,请参见数据类型。说明 对于可以是 cursor 数据类型的输出参数,没有最大数目的限制。
5.VARYING:指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用于游标参数。
6.default:参数的默认值。如果定义了默认值,不必指定该参数的值即可执行过程。默认值必须是常量或 NULL。如果过程将对该参数使用 LIKE 关键字,那么默认值中可以包含通配符(%、_、[] 和 [^])。
7.OUTPUT:表明参数是返回参数。该选项的值可以返回给 EXEC[UTE]。使用 OUTPUT 参数可将信息返回给调用过程。Text、ntext 和 image 参数可用作 OUTPUT 参数。使用 OUTPUT 关键字的输出参数可以是游标占位符。
8.RECOMPILE:表明 SQL Server 不会缓存该过程的计划,该过程将在运行时重新编译。在使用非典型值或临时值而不希望覆盖缓存在内存中的执行计划时,请使用 RECOMPILE 选项。
9.ENCRYPTION:表示 SQL Server 加密 syscomments 表中包含 CREATE PROCEDURE 语句文本的条目。使用 ENCRYPTION 可防止将过程作为 SQL Server 复制的一部分发布。
说明 在升级过程中,SQL Server 利用存储在 syscomments 中的加密注释来重新创建加密过程。
10.FOR REPLICATION:指定不能在订阅服务器上执行为复制创建的存储过程。.使用 FOR REPLICATION 选项创建的存储过程可用作存储过程筛选,且只能在复制过程中执行。本选项不能和 WITH RECOMPILE 选项一起使用。
11.AS:指定过程要执行的操作。
12.sql_statement:过程中要包含的任意数目和类型的 Transact-SQL 语句。但有一些限制。
小结:看过这些基本语法后,下面我就根据语法创建各式的存储过程。
创建存储过程
针对上面的表,我使用存储过程对它做一些操作:
1.只返回单一记录集的存储过程
结果:相当于运行 select * fromUserAccount这行代码,结果为整个表的数据。
2.没有输入输出的存储过程
结果:相当于运行insertintoUserAccount (UserName,[PassWord],RegisterTime,RegisterIP)values(9,9,'2013-01-02',9)这行代码。
3.有返回值的存储过程
解释:这里的@@rowcount为执行存储过程影响的行数,执行的结果是不仅插入了一条数据,还返回了一个值即 return value =1 ,这个可以在程序中获取,稍后在c#调用存储过程中会有说到。
4.有输入参数和输出参数的存储过程
解释:@UserName为输入参数,@UserID为输出参数。运行结果为@userID为COOUT(*)即 =1。
5. 同时具有返回值、输入参数、输出参数的存储过程
结果:@userID为COOUT(*)即 =1,Retun Value=1。
6.同时返回参数和记录集的存储过程
结果:返回执行select*fromUserAccount 这句代码的结果集,同时@userID为COOUT(*)即 =1,Retun Value=9。
7.返回多个记录集的存储过程
结果:返回两个结果集,一个为select*fromUserAccount,另一个为select*fromUserAccountwhereUserID>5 。
小结:上面我们创建了各式的存储过程。