| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

SQL非常全面的入门教程

红***8

贡献于2020-12-21

字数:81984

SQL语言快速入门


入门教程 2
SQL语言快速入门 2
SQL语言快速入门二 3
SQL语言快速入门三 5
基础教程 10
SQL数操作基础(初级)1 10
SQL数操作基础(初级)2 13
SQL数操作基础(初级)3 16
SQL数操作基础(初级)4 20
SQL数操作基础(初级)5 25
SQL数操作基础(中级) 27
SQL数操作基础(中级)1 27
SQL数操作基础(中级)2 28
SQL数操作基础(中级)3 31
SQL数操作基础(中级)4 35
SQL数操作基础(中级)5 39
全面接触SQL 44
全面接触SQL语法(1) 44
全面接触SQL语法(2) 46
全面接触SQL语法(3) 47
全面接触SQL语法(4) 49
全面接触SQL语法(5) 51
全面接触SQL语法(6) 53
全面接触SQL语法(7) 55
SQL语法详解 59
SQL语句详解(1) 59
SQL语句详解(2) 63
SQL语法参考手册 67
SQL实践 71
SQL实践(1) 71
SQL实践(2) 75
Sql连接查询 80



入门教程
SQL语言快速入门
SQL英文Structured Query Language缩写意思结构化查询语言SQL语言功种数库建立联系进行沟通ANSI(美国国家标准协会)规定SQL作关系型数库理系统标准语言SQL语句执行种样操作例更新数库中数数库中提取数等目前绝数流行关系型数库理系统Oracle Sybase Microsoft SQL Server Access等采SQL语言标准然数库SQL语句进行开发扩展包括Select Insert Update Delete CreateDrop标准SQL命令然完成数库操作面详细介绍SQL语言基知识
数库表格
典型关系型数库通常称作表格象组成数库中数信息保存数库表格中数库中表格具唯表格名称行列组成中列包括该列名称数类型列属性等信息行具体包含某列记录数名天气数库表格实例
城市 高气温 低气温
北京 10 5
海 15 8
天津 8 2
重庆 20 13
该表格中城市 高气温低气温三列表格中行包含具体表格数
数查询
众SQL命令中select语句应该算频繁Select语句数库进行查询返回符合户查询标准结果数Select语句语法格式:
select column1 [ column2etc] from tablename
[where condition]
([]表示选项)
select语句中位select关键词列名决定列作查询结果返回户需选择意列通配符*设定返回表格中列
select语句中位from关键词表格名称决定进行查询操作目标表格
Select语句中where选句规定数值行作查询结果返回显示
where条件句中运算符设定查询标准:

>
<
>等
<等
<>等
面提运算符外LIKE运算符where条件句中非常重LIKE运算符功非常强通LIKE运算符设定选择户规定格式相记录外通配符代字符串举例:
select firstname lastname city
from employee
where firstname LIKE E’
(注意字符串必须包含单括号)
述SQL语句会查询名称E开头姓名者通语句:
select * from employee
where firstname May’
查询名称May行
SQL语言快速入门二
创建表格
SQL语言中create table语句建立新数库表格Create table语句格式:
create table tablename
(column1 data type
column2 data type
column3 data type)
果户希建立新表格时规定列限制条件选条件选项:
create table tablename
(column1 data type [constraint]
column2 data type [constraint]
column3 data type [constraint])
举例:
create table employee
(firstname varchar(15)
lastname varchar(20)
age number(3)
address varchar(30)
city varchar(20))
简单说创建新表格时关键词create table面加入建立表格名称然括号次设定列名称数类型选限制条件等注意SQL语句结尾处符号
SQL语句创建数库表格表格中列名称必须字母开头面字母数字划线名称长度超30字符注意户选择表格名称时SQL语言中保留关键词select create insert等作表格列名称
数类型设定某具体列中数类型例姓名列中采varcharchar数类型number数类型
SQL语言中较常数类型:
char(size):固定长度字符串中括号中size设定字符串长度Char类型长度255字节
varchar(size):变长度字符串长度size设定
number(size):数字类型中数字位数size设定
Date:日期类型
number(sized):数字类型size决定该数字总位数d设定该数字数点位数
创建新表格时需注意点表格中列限制条件谓限制条件特定列输入数时必须遵守规例unique限制条件求某列中存两值相记录记录值必须唯unique外较常列限制条件包括not nullprimary key等Not null规定表格中某列值空Primary key表格中记录规定唯标识符
表格中插入数
SQL语言insert语句数库表格中插入添加新数行Insert语句格式:
insert into tablename
(first_columnlast_column)
values (first_valuelast_value)
例:
insert into employee
(firstname lastname age address city)
values (Li’ Ming’ 45 No77 Changan Road’ Beijing)
简单说数库表格中添加新记录时关键词insert into面输入添加表格名称然括号中列出添加新值列名称关键词values面前面输入列序应输入添加记录值
更新记录
SQL语言update语句更新修改满足规定条件现记录Update语句格式:
update tablename
set columnname newvalue [ nextcolumn newvalue2]
where columnname OPERATOR value [and|or column OPERATOR value]
例:
update employee
set age age+1
where first_name Mary’and last_name Williams’
update语句时关键点设定进行判断where条件句
删记录
SQL语言delete语句删数库表格中行记录Delete语句格式:
delete from tablename
where columnname OPERATOR value [and|or column OPERATOR value]
例:
delete from employee
where lastname May
简单说需删某行某记录时delete from关键词输入表格名称然where句中设定删记录判断条件注意果户delete语句时设定where句表格中记录全部删
删数库表格
SQL语言中drop table命令删某表格该表格中记录Drop table命令格式:
drop table tablename
例:
drop table employee
果户希某数库表格完全删需drop table命令输入希删表格名称Drop table命令作删表格中记录删表格中全部记录该表格然存表格中列信息会改变drop table命令会整数库表格信息全部删
SQL语言命令语句进行较详细介绍应该说SQL语句语法结构风格相简单直观户结合实践加练定会短期迅速掌握
SQL语言快速入门三
日常SQL语言工作程中已建立数库中查询信息面详细介绍SQL语言实现种数库查询操作
SELECT…FROM
方便讲解数库中创建名Store_Information数表
Store_Information
Store_Name
Sales
Date
Los Angeles
1500
Jan102000
San Diego
250
Jan112000
Los Angeles
300
Jan122000
Boston
700
Jan122000
SQL语言中数库查询简单命令SELECT…FROM语法格式:
SELECT column_name FROM table_name
例果希查询Store_Information数表中商店名称时命令:
SELECT store_name FROM Store_Information
查询结果显示:
Store_Name
Los Angeles
San Diego
Los Angeles
Boston
果户希次查询字段查询字段名称次加入SELECT关键字中间隔开
DISTINCT
SELECT关键字支持户查询数表中指定字段数样时会避免出现重复信息果户希查询具记录值信息话SQL语言DISTINCT关键字语法格式:
SELECT DISTINCT column_name
FROM table_name
例命令查询Store_Information数表具记录值记录
SELECT DISTINCT Store_Name FROM Store_Information
查询结果:
Store_Name
Los Angeles
San Diego
Boston
WHERE
选择具记录值记录外时会需根某条件数库中数进行查询例需查询Store_Information数表中销售额超1000美圆商店SQL语言WHERE关键字设定查询条件语法格式:
SELECT column_name
FROM table_name
WHERE condition
命令查询销售额超1000美圆商店信息:
SELECT store_name FROM Store_Information WHERE Sales > 1000
查询结果显示:
store_name
Los Angeles
运算函数
现已解SQL语言进行数库查询操作时通数值判断设定灵活查询条件增强运算支持力SQL提供众实运算函数供广户例直接SQL命令中调SUMAVG两分计算总数均数函数语法格式:
SELECT function type(column_name)
FROM table_name
果希查询Store_Information数表中商店总销售额话命令:
SELECT SUM(Sales) FROM Store_Information
查询结果显示:
SUM(Sales)
2750
COUNT
SUMAVG函数外COUNT函数SQL语言中较常运算函数COUNT函数计算数表中指定字段包含记录数目语法格式:
SELECT COUNT(column_name)
FROM table_name
例果希查询Store_Information数表中关商店记录条数时命令:
SELECT COUNT(store_name)
FROM Store_Information
查询结果显示:
Count(store_name)
4
COUNT函数DISTINCT关键字起查询数表中指定字段中具记录值记录数目例果希查询Store_Information数表中商店数目时命令:
SELECT COUNT(DISTINCT store_name)
FROM Store_Information
查询结果显示:
Count(DISTINCT store_name)
3
GROUP BY
面进步SQL语言中集合函数文中SUM函数计算商店销售总额果希计算家商店总销售额时该办呢?实现目需做两件事:首先需查询商店名称销售额两字段然SQL语言GROUP BY命令销售额商店进行分组计算出商店销售总额GROUP BY命令语法格式:
SELECT column_name1 SUM(column_name2)
FROM table_name
GROUP BY column_name1
命令实现述查询目:
SELECT store_name SUM(Sales)
FROM Store_Information
GROUP BY store_name
查询结果显示:
store_name SUM(Sales)
Los Angeles 1800
San Diego 250
Boston 700
注:
GROUP BY关键字般应时查询字段字段进行算术运算SQL命令中
HAVING
户SQL语言程中希解决问题sum集合函数运算结果输出进行限制例希Store_Information数表中销售总额超1500美圆商店信息时需HAVING句语法格式:
SELECT column_name1 SUM(column_name2)
FROM table_name
GROUP BY column_name1
HAVING (arithematic function condition)
(GROUP BY句选)
命令实现述查询目:
SELECT store_name SUM(sales)
FROM Store_Information
GROUP BY store_name
HAVING SUM(sales) > 1500
查询结果显示:
store_name SUM(Sales)
Los Angeles 1800
注:
SQL语言中设定集合函数查询条件时HAVING句WHERE句通常情况HAVING句放置SQL命令结尾处
ALIAS
面重点介绍SQL命令中设定名SQL语言中般两种类型名分字段名数表名
简单说字段名帮助效组织查询输出结果例文列举实例中计算商店销售总额时显示结果中会出现SUM(sales)然SUM(sales)会理解查询结果带便果需查询中项复杂运算时显示结果会直观果时字段名会极提高查询结果读性
数表名通名直接放置FROM句中数表名称面设定数表名面讲述连接数表进行查询操作中极
字段数表名语法格式:
SELECT table_aliascolumn_name1 column_alias
FROM table_name table_alias
名直接放置应名称面中间空格分开
Store_Information数表例GROUP BY节中SQL命令中设置字段数表名:
SELECT A1store_name Store SUM(Sales) Total Sales
FROM Store_Information A1
GROUP BY A1store_name
查询结果显示:
Store Total Sales
Los Angeles 1800
San Diego 250
Boston 700
连接数表
果SQL语言连接数表实现数表查询方便讲解数库中分创建两名Store_InformationRegion数表
Store_Information
Store_Name
Sales
Date
Los Angeles
1500
Jan102000
San Diego
250
Jan112000
Los Angeles
300
Jan122000
Boston
700
Jan122000
Region
Region_Name
Store_Name
East
Boston
East
New York
West
Los Angeles
West
San Diego
面通数表连接实现区域查询销售额
注意名Region数表中包含区域商店两字段信息名Store_Information数表中包含家商店销售信息区域划分销售信息需两数表信息结合起进行查询通述两数表分析发现数表中包含名Store_Name字段命令实现查询目:
SELECT A1region_name REGION SUM(A2Sales) SALES
FROM Geography A1 Store_Information A2
WHERE A1store_name A2store_name
GROUP BY A1region_name
查询结果显示:
REGION SALES
East 700
West 2050
说明:
述查询命令前两行指定查询目标字段分Region数表中Region_Name字段Store_Information数表中Sales字段记录值总数里设定两字段名分REGIONSALES两数表名分A1A2果字段名设定数表名话述SQL命令第行变成 形式:
SELECT RegionRegion_Name REGION SUM(Store_InformationSales) SALES
出效数表名极简化数表进行操作SQL命令
述查询命令第3行WHERE句正该句设定两数表连接条件希确保Region数表中Store_Name字段够Store_Information数表中名字段相应规定两字段记录值应相等连接数表时定准确设定数表连接条件果WHERE句设定正确导致查询结果中出现众相关数
基础教程
SQL数操作基础(初级)1
建立交互站点需数库存储访问者信息例建立职业介绍服务站点需存储诸简历感兴趣工作等等样信息创建动态网叶需数库果想显示符合访者求工作需数库中取出份工作信息会发现许情况需数库
章里学会样结构化查询语言(SQL〕操作数库SQL语言数库标准语言Active SeverPages中时访问数库SQL语言掌握SQLASP编程非常重
注意:
SQL读作sequel单字母读音读作S-Q-L 两种发音正确种发音量支持者书里认SQL读作sequel
通章学理解样SQL实现数库查询学会样种查询数表中取出信息学会样设计建立数库
注意:
通面章SQL介绍SQL足够解效Active Sever PagesSQL种复杂语言书包括全部细节全面掌握SQL语言需学Microsoft SQL Sever中SQL附书店买Microsoft SQL Sever 65
SQL介绍:
书假设SQL操作Microsoft SQL Sever数库SQL操作许类型数库SQL操作数库标准语言(事实关SQL语言专门ANSI标准〕
注意:
站点试图Microsoft Access代Microsoft SQL SeverSQL Sever时服务许户果希站点较高访问率MS Access胜
学SQL细节前需理解两特点特点容易掌握掌握起点困难
第特点SQL数库中数存储表中表行列组成例面简单表包括nameemail
address:
Name Email Address

Bill Gates billg@microsoftcom
president Clinton president@whitehousecom
Stephen Walther swalther@somewherecom
表两列(列称字段域〕:NameEmail Address三行行包含组数行中数组合起称条记录
时表中添加新数添加条新记录数表十记录千甚十亿记录然许永远需存储十亿Email址知道样做总许天会样需
数库包含十表存储数库中信息存储表中考虑样信息存储数库中时应该考虑样存储表中
SQL第二特点难掌握种语言设计允许某种特定序取出记录样做会降低SQL Sever取记录效率SQL查询条件读取记录
考虑表中取出记录时然会想记录位置读取例许会尝试通循环逐记录扫描选出特定记录SQL时必须训练种思路
假想选出名字Bill Gates记录果传统编程语言许会构造循环逐查表中记录名字域否Bill Gates
种选择记录方法行效率高SQL说选择名字域等Bill Gates记录SQL会选出符合条件记录SQL会确定实现查询佳方法
建设想取出表中前十记录传统编程语言做循环取出前十记录结束循环标准SQL查询实现SQL角度说表中存前十记录种概念
开始时知道SQL实现某感觉应该实现功会受挫折许会头撞墙甚想写恶毒信件SQL设计者会认识SQL特点仅限制反长处SQL根位置读取记录读取记录快
综述SQL两特点:数存储表中SQL角度说表中记录没序节学会样SQL表中选择特殊记录
SQL表中取记录
SQL功实现数库查询果熟悉Internet引擎已熟悉查询查询取满足特定条件信息例果想找ASP信息全部站点连接 Yahoo执行Active Sever Pages搜索输入查询会收列表表中包括描述中包含搜索表达式站点
数Internet引擎允许逻辑查询逻辑查询中包括特殊运算符ANDORNOT运算符选择特定记录例AND限制查询结果果执行Active Sever Pages AND SQL搜索描述中时包含Active Sever PagesSQL记录需限制查询结果时AND
果需扩展查询结果逻辑操作符OR例果执行搜索搜索描述中包含Active Sever Pages OR SQL站点收列表中包括描述中时包含两表达式中表达式站点
果想搜索结果中排特定站点NOT例查询Active Sever Pages AND NOT SQL返回列表列表中站点包含Active Sever Pages包含SQL必须排特定记录时NOT
SQL执行查询Internet搜索引擎执行搜索非常相似执行SQL查询时通包括逻辑运算符查询条件记录列表时查询结果表
SQL查询句法非常简单假设名email_table表包含名字址两字段Bill Gatese_mail址面查询:
SELECT email from email_table WHERE nameBill Gates
查询执行时名email_table表中读取Bill Gatese_mail址简单语句包括三部分:
■ SELECT语句第部分指名选取列例中email列选取执行 时显示email列值 billg@microsoftcom
■ SELECTT语句第二部份指明()表中查询数例中查询表名email_table
■SELECT语句WHERE子句指明选择满足什条件记录例中查询条件name列值Bill Gates记录选取
Bill Gates拥止email址果表中包含Bill Gatesemail址述SELECT语句读取email址SELECT语句表中取出name字段值Bill Gates记录email字段值
前面说查询查询条件中包含逻辑运算符假想读取Bill GatesClinton总统email址面查询语句:
SELECT email FROM email_table WHERE nameBill Gates OR
namepresident Clinton
例中查询条件前复杂点语句表email_table中选出name列Bill Gatespresident Clinton记录果表中含Bill Gatespresident Clinton址址读取
SELECT语句结构起直观果请朋友表中选择组记录许非常相似方式提出求SQL SELECT语句中SELECT特定列FROM表WHERE某列满足特定条件
节介绍样执行SQL查询选取记录帮助熟悉SELECT语句表中取数种方法

SQL数操作基础(初级)2
ISQL执行SELECT查询
安装SQL Sever时时安装作ISQLw应程序ISQLw允许执行交互SQL查询查询包括ASP网页中前ISQLw进行测试非常
注意:
书第部份学样安装配置Microsoft SQL Sever果没安装SQL Sever者SQL Sever运行请参阅第三章安装SQL Sever
选择务SQL Sever程序组中ISQL_w启动该程序程序启动时首先会出现话框求输入服务器信息登录信息Sever框中输入SQL服务器名字果服务器正运行计算机服务器名字计算机名字登录信息框中输入登录帐号密码选择信连接然单击Connect钮
注意:
果SQL Sever配置完整安全混合安全信连接果标准安全需提供户帐号密码解更信息参见第三章
果切正常单击连接钮会出现查询窗口(果异常请参考第三章)
执行查询前需选择数库安装 SQL Sever时已创建数库SQL Sever许系统数库mastermodelmsdbtempdb
方便SQL Sever带特殊名pubs例子数库库 pubs中包含供虚拟出版商表文档中例子程序针库设计书中许例子数库
查询窗口顶部DB拉框中选择数库pubs样选择数库查询针库中表执行现执行第查询真兴奋
第查询针名autrors表表中包含某虚拟出版商工作作者相关数单击查询窗口输入语句:
SELECT phone FROM authors WHERE au_nameRinger
输入完成单击执行查询钮(绿色三角形起VCR播放键)单击钮出现查询窗口中语句均会执行查询窗口会动变成结果显示窗口查询结果
SQL Sever版中库pubs中数会SQL Sever 65说会找两条记录结果显示窗口中应显示容:
phone
………………
801 826_0752
801 826_0752
(2 row(s) affected)
执行SELECT语句表authors中取出名字Ringer作者电话号码通WHERE子句中特殊选择条件限制查询结果忽略选择条件表中取出作者电话号码做点单击Query标签返回查询窗口输入SELECT语句:
SELECT Phone FROM authors
查询执行会取出表authors中电话号码(没特定序)果表authors中包含百电话号码会百记录取出果表中十亿电话号码十亿条记录会取出(许需时间)
表authrs字段包括姓名字电话号码址城市州邮政编码通SELECT语句第部份指定表中取出字段SELECT语句中次取出字段:
SELECT au_fname au_lname phone FROM authors
SELECT语句执行取出三列值面查询结果示例(节省纸张显示查询结果部分余记录省略号代):
au_fname au_lname phone
…………………………………………………………………………
Johnson White 408 496_7223
Marjorie Green 415 986_7020
Cheryl Carson 415 548_7723
Michael O’Leary 408 286_2428

(23 row(s) affected)
SELECT语句中需列出少字段列出少忘字段名逗号隔开星号(*)表中取出字段里星号例子:
SELECT * FROM authors
SELECT语句执行表中字段值取出会发现SQL查询中频繁星号
技巧:
星号查表列名字做点需执行完SELECT语句查询结果列标题
操作表
现止尝试句SQL查询表中取出数SELECT语句时表中取出数需SELECT语句FROM句中列出中取出数表名称:
SELECT au_lname title FROM authors titles
SELECT语句执行时时表authors表titles中取出数表authors中取出作者名字表titles中取出书名ISQLw程序中执行查询查询结果会发现奇怪出意料情况:作者名字没著书相匹配出现作者名字书名组合许希见
出什差错?问题没指明两表间关系没通方式告诉SQL表表关联起知道关联两表服务器简单返回取两表中记录组合
两表中选出意义记录组合需通建立两表中字段关系关联两表做点途径创建第三表专门描述外两表字段间关系
表authors名au_id字段包含作者唯标识表titles名title_id字段包含书名唯标识果字段au_id字段title_id间建立关系关联两表数库pubs中名titleauthor表正完成工作表中记录包括两字段表titles表authors关联起面SELECT语句三表正确结果:
SELECT au_nametitle FROM authorstitlestitleauthor
WHERE authorsau_idtitleauthorau_id
AND titlestitle_idtitleauthortitle_id
SELECT语句执行时作者正确书名相匹配表titleauthor指明表authors表titles关系通包含分两表字段实现点第三表唯目外两表字段间建立关系身包含附加数
注意例子中字段名书写区表authors表titles中相字段名au_id字段名前面加表名前缀句号名authorau_id字段属表authors名titleauthorau_id字段属表titleauthor两者会混淆
通第三表两表字段间建立种类型关系例作者许写许书者书许许作者完成两表字段间种关系时需第三表指明种关系
许情况两表间关系复杂需指明表titles表publishers间关系书名出版商相匹配需通第三表指明两表间关系指明表titles表publishers间关系两表公字段数库pubs中表titles表publishers名pub_id字段果想书名出版商列表语句:
SELECT titlepub_name FROM titlespublishers
WHERE titlespub_idpublisherspub_id
然果书两出版商联合出版需第三表代表种关系
通常予先知道两表字段间存关系时第三表关联两表反果两表字段间关系公字段关联门
SQL数操作基础(初级)3
操作字段
通常表中取出字段值时该值创建该表时定义字段名联系起果表authors中选择作者名字值会字段名au_lname相联系某情况需字段名进行操作SELECT语句中缺省字段名面仅新名字取代例更直观易读名字Author Last Name代字段名au_lname:
SELECT au_lname Author Last Name FROM authors
SELECT语句执行时字段au_lname值会Author Last Name相联系查询结果样:
Author Last Name
……………………………………………………………………
White
Green
Carson
O’Leary
Straight

(23 row(s) affected)
注意字段标题au_lnameAuthor Last Name取代
通执行运算操作表返回字段值例果想表titles中书价格加倍面SELECT语句:
SELECT price*2 FROM titles
查询执行时书价格表中取出时会加倍通种途径操作字段会改变存储表中书价字段运算会影响SELECT语句输出会影响表中数时显示书原始价格涨价新价格面查询:
SELECT price Original price price*2 New price FROM titles
数表titles中取出时原始价格显示标题Original price面加倍价格显示标题New price面结果样:
original price new price
………………………………………………………………
3998
1195 2390
598
3998

(18 row(s) affected)
数标准数学运算符操作字段值加(+)减()(*)()次字段进行运算例:
SELECT price*ytd_sales total revenue FROM titles
例子中通价格销售量相计算出种书总销售额SELECT语句结果样:
total revenue
……………………………………………
8185905
4631820
5597878
8185905
4061968

(18 row(s) affected)
连接运算符(起加号)连接两字符型字段:
SELECT au_fname+ +au_lname author name FROM authors
例子中字段au_fname字段au_lname粘贴起中间逗号隔开查询结果标题指定author name语句执行结果样:
author names
…………………………………………………………
Johnson White
Marjorie Green
Cheryl Carson
Michael O’Leary
Dean Straight

(23 row(s) affected)
SQL提供查询结果许控制应该ASP编程程中充分利优点SQL操作查询结果总样作脚效率更高
排序查询结果
章介绍中强调SQL表没序例表中取第二记录没意义SQL角度没记录记录前
然操SQL查询结果序缺省情况记录表中取出时记录特定序出现例表authors中取出字段au_lname时查询结果显示成样:
au_lname
……………………………………
White
Green
Carson
O’Leary
Straight

(23 row(s) affected)
列没特定序名字方便果名字字母序排列读起会容易通ORDER BY子句强制查询结果升序排列样:
SELECT au_lname FROM authors ORDER BY au_lname
SELECT语句执行时作者名字显示字母序排列ORDER BY子句作者名字升序排列
时列ORDER BY子句例果想时升序显示字段au_lname字段au_fname需两字段进行排序:
SELECT au_lnameau_fname FROM authors ORDER BY au_lname au_fname
查询首先结果au_lname字段进行排序然字段au_fname排序记录序取出:
au_lname au_fname
……………………………………………………………………
Bennet Abraham
Ringer Albert
Ringer Anne
Smith Meander

(23 row(s) affected)
注意两作者相名字Ringer名Albert Ringer作者出现名Anne Ringer作者前姓Albert字母序应排姓Anne前
果想查询结果相反序排列关键字DESC关键字DESC查询结果降序排列例示:
SELECT au_lnameau_fname FROM authors
WHERE au_lnameRinger ORDER BY au_lname au_fname DESC
查询表authors中取出名字Ringer作者记录ORDER BY子句根作者名字姓查询结果降序排列结果样:
au_lname au_fname
………………………………………………………………………………………
Ringer Anne
Ringer Albert
(2 row(s) affectec)
注意表中姓Anne出现姓Albert前作者名字降序显示
数值型字段查询结果进行排序例果想降序取出书价格SQL查询:
SELECT price FROM titles ORDER BY price DESC
SELECT语句表中取出书价格显示结果时价格低书先显示价格高书显示
警告:
特需时查询结果进行排序服务器完成项工作费力气意味着带ORDER BY子句SELECT语句执行起般SELECT语句花时间长
取出互相记录
表列中重复值例数库pubs表authors中两作者名字Ringer果表中取出名字名字Ringer会显示两次
特定情况兴趣表中取出互相值果字段重复值许希值选取次关键字DISTINCT做点:
SELCET DISTINCT au_lname FROM authors WHERE au_lnameRinger
SELECT语句执行时返回记录通SELECT语句中包含关键字DISTINCT删重复值例假设关新闻组信息发布表想取出新闻组中发布信息名字关键字DISTINCT户名字取次——户发布止篇信息
警告:
ORDER BY子句样强制服务器返回互相值会增加运行开销福气花费时间完成项工作必须时候关键字DISTINCT
创建新表
前面说数库中数存储表中数表包括行列列决定表中数类型行包含实际数
例数库pubs中表authors九字段中字段名au_lname字段存储作者名字信息次表中添加新作者时作者名字添加字段产生条新记录
通定义字段创建新表字段名字特定数类型(数类型面字段类型节中讲述)例字段au_lname存储字符型数字段存储类型数
SQL Sever创建新表方法执行SQL语句SQL事务理器(SQL Enterprise Manager)创建新表节里学会SQL语句创建新表
SQL数操作基础(初级)4
SQL创建新表
注意:
果没建立数库现跳回第三章创建库绝mastertempdb系统数库中添加数
SQL Sever程序组(务栏中)中启动ISQLw程序出现查询窗口窗口顶部拉列表中选择第三章创建数库步查询窗口中键入面SQL语句单击执行查询钮执行语句:
CREATE TABLE guestbook (visitor VARCHAR(40)comments TEXTentrydate
DATETIME)
果切正常会结果窗口中文字(果出现异常请参阅第三章):
This command dit not return data and it did not return any rows
祝贺已建立第表
创建表名guestbook表存储字站点访问者信息REEATE TABLE语句创建表语句两部分:第部份指定表名子第二部份括括号中字段名称属性相互间逗号隔开
表guestbook三字段:visitorcommentsentrydatevisitor字段存储访问者名字comments字段存储访问者站点意见entrydate字段存储访问者访问站点日期时间
注意字段名面专门表达式例字段名comments面表达式TEXT表达式指定字段数类型数类型决定字段存储什样数字段comments包含文信息数类型定义文型
字段许数类型节讲述SQL支持重数类型
字段类型
字段类型存放类型数创建表时更应该理解五种常字段类型:字符型文型数值型逻辑性日期型
字符型数
字符型数非常需存储短字符串信息时总字符型数例HTML form文框中搜集信息放字符型字段中
建立字段存放变长度字符串信息表达式 VARCHAR考虑前面创建表guestbook:
CREATE TABLE guestbook (visitor VARCHAR(40)comments TEXTentrydate
DATETIME)
例子中字段visitor数类型VARCHAR注意数类型面括号中数字数字指定字段允许存放字符串长度例子中字段visitor存放字符串长四十字符果名字太长字符串会截断保留四十字符
VARCHAR类型存储字符串长255字符存储更长字符串数文型数(节中讲述)
种字符型数存储固定长度字符数面种数类型例子:
CREATE TABLE guestbook (visitor CHAR(40)comments TEXTentrydate
DATETIME)
例子中字段visitor存储四十字符固定长度字符串表达式CHAR指定字段应该固定长度字符串
VARCHAR型CHAR型数差细微非常重假长度四十字符VARCHAR型字段中输入数Bill Gates字段中取出数时取出数长度十字符——字符串Bill Gates长度
现假字符串输入长度四十字符CHAR型字段中取出数时取出数长度四十字符字符串面会附加余空格
建立站点时会发现VARCHAR型字段CHAR型字段方便VARCHAR型字段时需剪掉数中余空格操心
VARCHAR型字段突出处CHAR型字段占更少存硬盘空间数库时种存磁盘空间节省会变非常重
文型数
字符型数限制字符串长度超255字符文型数存放超二十亿字符字符串需存储串字符时应该文型数
里文型数例子:
CREATE TABLE guestbook (visitor VARCHAR(40)comments TEXTentrydate
DATETIME)
例子中字段comments存放访问者站点意见注意文型数没长度节中讲字符型数长度文型字段中数通常空
HTML form行文编辑框(TEXTAREA)中收集数时应该收集信息存储文型字段中时避免文型字段应该适文型字段慢滥文型字段会服务器速度变慢文型字段会吃掉量磁盘空间
警告:
旦文型字段中输入数(甚空值)会2K空间动分配该数非删该记录否法收回部分存储空间
数值型数
SQL Sever支持许种数值型数存储整数数钱数
通常需表中存放数字时整型(INT)数INT型数表数范围21474836472147483647整数面INT型数例子:
CREATE TABLE visitlog (visitor VARCHAR(40)numvisits INT)
表记录站点访问次数没访问站点超2147483647次nubvisits字段存储访问次数
节省存空间SMALLINT型数SMALLINT型数存储3276832768整数种数类型方法INT型完全相
果实需节省空间TINYINT型数样种类型方法INT型相种类型字段存储0255整数TINYINT型字段存储负数
通常节省空间应该整型数TINYINT型数占字节INT型数占四字节起似差较表中字节数增长快方面旦已创建字段修改困难安全起见应该预测字段需存储数值然选择适数类型
字段存放数更控制NUMERIC型数时表示数整数部分数部分NUMERIC型数表示非常数——INT型数NUMERIC型字段存储10381038范围数NUMERIC型数表示数部分数例NUMERIC型字段中存储数314
定义NUMERIC型字段时需时指定整数部分数部分里种数类型例子:
CREATE TABLE numeric_data (bignumber NUMERIC(280)
fraction NUMERIC (54) )
语句执行时创建名numeric_data包含两字段表字段bignumber存储直28位整数字段fraction存储五位整数部分四位数部分数
NUMERIC型数整数部分28位数部分位数必须等整数部分位数数部分零
INT型NUMERIC型数存储钱数专门外两种数类型目果希网点挣钱MONEY型数果野心SMALLMONEY型数MONEY型数存储92233720368547758089223372036854775807钱数果需存储金额NUMERIC型数
SMALLMONEY型数存储21474836482147483647钱数样果话应该SMALLMONEY型代MONEY型数节省空间面例子显示两种表示钱数类型:
CREATE TABLE products (product VARCHAR(40)price MONEY
Discount_price SMALLMONEY)
表存储商品折扣普通售价字段price数类型MONEY字段discount_price数类型SMALLMONEY
存储逻辑值
果复选框(CHECKBOX)网页中搜集信息信息存储BIT型字段中BIT型字段取两值:01里种字段例子:
CREATE TABLE opinion (visitor VARCHAR(40)good BIT)
表存放网点进行民意调查信息访问者投票表示否喜欢网点果投YESBIT型字段中存入1反果投NO字段中存入0(章里学会计算投票)
心创建表表中添加BIT型字段果算表中包含BIT型字段必须创建表时完成
存储日期时间
建立网点时许需记录段时间访问者数量够存储日期时间需DATETIME型数例示:
CREATE TABL visitorlog( visitor VARCHAR (40) arrivaltime DATETIME
departuretime DATETIME)
表记录访问者进入离开网点时间日期DATETIME型字段存储日期范围1753年1月1日第毫秒9999年12月31日毫秒
果需覆盖范围日期时间SMALLDATETIME型数DATETIME型数样表示日期时间范围DATETIME型数DATETIME型数精确SMALLDATETIME型字段够存储1900年1月1日2079年6月6日日期精确秒
DATETIME型字段输入日期时间前包含实际数认识点重章学样量SQL函数读取操作日期时间(参见面缺省值节)VBScriptJScript中日期时间函数DATETIME型字段中输入日期时间
字段属性
节介绍建立包含类型字段表节中学会字段三属性属性允许控制空值缺省值标识值
允许禁止空值
数字段接受空值(NULL)字段接受空值果改变直保持空值空值(NULL)零严格说空值表示没值
允许字段接受空值字段定义面表达式NULL例面表中两字段允许接受空值:
CREATE TABLE empty (empty1 CHAR (40) NULLempty2 INT NULL(
注意:
BIT型数空值种类型字段必须取0者1
时需禁止字段空值例假设表存储着信卡号码信卡效日期会希输入信卡号码输入效日期强制两字段输入数面方法建立表:
CREATE TABLE creditcards (creditcard_number CHAR(20) NOT NULL
Creditcard_expire DATETIME NOT NULL)
注意字段定义面表达式NOT NULL通包含表达式NOT NULL禁止字段中插入数输入字段数
会发现建设网点程中种禁止空值力非常果指定字段接受空值试图输入空值时会错误警告错误警告程序调试提供价值线索
缺省值
假设存储址信息表表字段包括街道城市州邮政编码国家果预计址部分美国值作country字段缺省值
创建表时指定缺省值表达式DEFAULT请面创建表时缺省值例子:
CREATE TABLE addresses (street VARCHAR(60) NULL
city VARCHAR(40) NULL
state VARCHAR(20) NULL
zip VARCHAR(20) NULL
country VARCHAR(30) DEFAULT USA’)
例子中字段country缺省值指定美国注意单引号引号指明字符型数非字符型字段指定缺省值该值扩引号中:
CREATE TABLE orders(price MONEY DEFAULT 3800
quantity INT DEFAULT 50
entrydate DATETIME DEFAULT GETDATE())
CREATE TABLE语句中字段指定缺省值注意DATETIME型字段entrydate指定缺省值该缺省值函数Getdate()返回值该函数返回前日期时间
标识字段
表标识字段标识字段唯标识表中条记录特殊字段例数库pubs中表jobs包含唯标识工作标识字段:
job_id job_desc
……………………………………………………………
New Hire Job not specified
Chief Executive officer
Bushness Operations Manager
Chief Financial Officier
Publisher
字段job_id工作提供唯数字果决定增加新工作新增记录job_id字段会动赋新唯值
建立标识字段需字段定义面加表达式IDENTITYNUMERIC型INT型字段设标识字段里例子:
CREATE TABLE visitorID (theID NUBERIC(18) IDENTITYname VARCHAR(40))
语句创建表包含名theid标识字段新访问者名字添加表中时字段动赋新值表站点户提供唯标识
技巧:
建立标示字段时注意足够数类型例TINYINT型数表中添加255记录果预计表会变应该NUMERIC型数
标识字段存会想尝试许事情例许想利标识字段记录进行基表中位置运算应该抛弃种意图记录标识字段值互相禁止标识字段标识数字间存间隔例永远试图利表标识字段取出表中前十记录种操作会导致失败说6号记录7号记录根存
SQL数操作基础(初级)5
SQL事务理器创建新表
前面节讲方法创建新表事务理器创建新表会更容易节介绍程序创建新表
务栏SQL Sever程序组中选择SQL Enterprise Manager启动该程序浏览服务理器窗口中树形结构选择名Database文件夹开文件夹Database选择第三章中建立数库
注意:
果没创建数库回第三章创建决mastertempdb系统数库中添加数
选择数库会名Groupusers文件夹名objects文件夹开文件夹objects会许文件夹中名Tables右键单击文件夹Tables选择New table
Manager Tables窗口创建新表Manager Tables窗口7列:KeyColumnNameDatatypeSizeNullsDefaultManager Tables窗口中行标明表中字段信息
建立新表少输入行信息名Column Name列面键入mycolumn步选择Datatype列拉列表中选择CHAR两列中输入信息
已建立字段简单表单击保存扭保存新表求输入新表名字时输入mytable单击OK现表已保存数库中
果开服务理器窗口中文件夹Tables会建立新表列出双击该表图表编辑时Manager Tables窗口会重新出现增加新字段重新保存
SQL事务理器做工作SQL语句实现事务理器建表程变更加简单
表中添加数
章讨SQL表中插入数果需表中添加许条记录SQL语句输入数方便幸运Microsoft SQL Sever带称Microsoft Query客户端应程序程序表中添加数变容易
启动位务栏SQL Sever程序组中Microsoft Query程序窗口顶部菜单中选择File|New Query时会显示Select Data Source话框选择数源名字单击Use
输入登录帐号密码程序求选择表数库选择节中建立表(mytable )单击钮Add然单击钮Close关闭该话框
窗口左角会出现话框框中取表mytable列字段名双击字段添加窗口中果双击星号(*)字符字段会添加窗口中
果表中记录现已出现窗口字段标题面刚刚建立表表空添加新记录选择Records|Allow Editing窗口中会出现条新记录输入行数完成记录表中添加条新记录
转条新记录时条记录中输入值会动保存果需Microsoft Query表中输入百条记录
删修改表
应该建立表前仔细设计改变已存表时会受限制例旦已建立表删表中字段者改变字段数类型种情况做删表然重头开始(参见第十章中级SQL中SQL创建记录表节)
删表SQL语句DROP TABLE例数库中彻底删表mytable语句:
DROP TABLE mytable
警告:
DROP TABLE命令时定心旦表删法恢复
建设站点时需数库中输入测试数准备世界提供网点时会想清空表中测试信息果想清表中数删表TRUNCATE TABLE语句例面SQL语句表mytable中删数:
TRUNCATE TABLE mytable
然删修改已存字段增加新字段容易实现方法SQL事务理器中Manager Tables窗口SQL语句ALTER TABLE面种语句例子:
ALTER TABLE mytable ADD mynewcolumn INT NULL
语句表mytable中增加新字段mynewcolumn增加新字段时必须允许接受空值表中原已许记录
总结
章介绍SQLSQL操作Microsoft SQL Sever数库已学会SELECT语句数库中取出数学会样CREATE TABLE语句SQL事务理器创建新表学会指明系列重字段属性
章介绍索引增强SQL查询操作通许SQL语句函数SQL知识进步扩充
SQL数操作基础(中级)
SQL数操作基础(中级)1
第十章SQL基础初步介绍SQL学会SELECT语句进行查询学会建立表章里加深SQL知识学建立索引加快查询速度学会果更SQL语句函数操作表中数
建立索引
假设想找书中某句子页页逐页搜索会花时间通书索引快找搜索题
表索引附书面索引非常相似极提高查询速度较表说通加索引通常花费时完成查询分钟完成没理需频繁查询表增加索引
注意:
存容量硬盘空间足时许想表增加索引包含索引数库SQL Sever需观额外空间例建立聚簇索引需约12倍数空间表索引数库中占空间系统存储程sp_spaceused象名指定索引表名
聚簇索引非聚簇索引
假设已通书索引找句子页码旦已知道页码漫目翻寻书直找正确页码通机翻寻终达正确页码种找页码更效方法
首先书翻概半方果找页码半书处页码书翻四分处否书翻四分三方通种方法继续书分成更部分直找正确页码附找书页非常效种方法
SQL Sever表索引类似方式工作表索引组页组成页构成树形结构根页通指外两页表记录逻辑分成两部分根页指两页分记录分割成更部分页记录分成更分割直达叶级页
索引两种类型:聚簇索引非聚簇索引聚簇索引中索引树叶级页包含实际数:记录索引序物理序相非聚簇索引中叶级页指表中记录:记录物理序逻辑序没必然联系
聚簇索引非常象目录表目录表序实际页码序致非聚簇索引更象书标准索引表索引表中序通常实际页码序致书许索引例许时题索引作者索引样表非聚簇索引
通常情况聚簇索引应该两种类型索引优缺点理解
表聚簇索引表中记录种物理序存放通常表标识字段建立聚簇索引类型字段建立聚簇索引字符型数值型日期时间型字段
建立聚簇索引表中取出数建立非聚簇索引表快需取出定范围数时聚簇索引非聚簇索引例假设表记录访问者网点活动果想取出定时间段登录信息应该表DATETIME型字段建立聚簇索引
聚簇索引限制表建立聚簇索引表止非聚簇索引实际表建立249非聚簇索引表时建立聚簇索引非聚簇索引
假仅想根日期想根户名网点活动日志中取数种情况时建立聚簇索引非聚簇索引效日期时间字段建立聚簇索引户名字段建立非聚簇索引果发现需更索引方式增加更非聚簇索引
非聚簇索引需量硬盘空间存外然非聚簇索引提高表中 取数速度会降低表中插入更新数速度改变建立非聚簇索引表中数时必须时更新索引表建立非聚簇索引时慎重考虑果预计表需频繁更新数建立太非聚簇索引外果硬盘存空间限应该限制非聚簇索引数量
索引属性
两种类型索引两重属性:两者中种类型时字段建立索引(复合索引)两种类型索引指定唯索引
字段建立复合索引甚复合聚簇索引假表记录网点访问者姓名字果希根完整姓名表中取数需建立时姓字段名字字段进行索引分两字段建立单独索引希时止字段进行查询时应该建立字段索引果希字段进行分查询应该字段建立独立索引
两种类型索引指定唯索引果字段建立唯索引字段输入重复值标识字段会动成唯值字段类型字段建立唯索引假设表保存网点户密码然希两户相密码通强制字段成唯值字段防止种情况发生
SQL数操作基础(中级)2
SQL建立索引
表建立索引启动务栏SQL Sever程序组中ISQLw程序进入查询窗口输入面语句:
CREATE INDEX mycolumn_index ON mytable (myclumn)
语句建立名mycolumn_index索引索引起名字应该索引名中包含索引字段名弄清楚建立该索引意图帮助
注意:
书中执行SQL语句会收信息:
This command did not return dataand it did not return any rows
说明该语句执行成功
索引mycolumn_index表mytablemycolumn字段进行非聚簇索引非唯索引(索引缺省属性)
果需改变索引类型必须删原索引重建 建立索引面SQL语句删:
DROP INDEX mytablemycolumn_index
注意DROP INDEX语句中包含表名字例子中删索引mycolumn_index表mytable索引
建立聚簇索引关键字CLUSTERED)记住表聚簇索引(里表建立聚簇索引例子:
CREATE CLUSTERED INDEX mycolumn_clust_index ON mytable(mycolumn)
果表中重复记录试图语句建立索引时会出现错误重复记录表建立索引关键字ALLOW_DUP_ROW点告诉SQL Sever:
CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn)
WITH ALLOW_DUP_ROW
语句建立允许重复记录聚簇索引应该量避免表中出现重复记录果已出现种方法
表建立唯索引关键字UNIQUE聚簇索引非聚簇索引关键字里例子:
CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn)
常索引建立语句时应该量表建立唯聚簇索引增强查询操作
建立字段索引──复合索引──索引建立语句中时包含字段名面例子firstnamelastname两字段建立索引:
CREATE INDEX name_index ON username(firstnamelastname)
例子两字段建立单索引复合索引中16字段进行索引
事务理器建立索引
事务理器建立索引SQL语句容易事务理器已建立索引列表通图形界面选择索引选项
事务理器两种方式建立索引:Manage Tables窗口Manage Indexes窗口
Manage Tables窗口建立新索引单击钮Advanced Options(起象前面加号表)样开Advanced Options话框话框部分标名Primary Key
建立新索引拉列表中选择想建立索引字段名果想建立字段索引选择字段名选择索引聚簇非聚簇保存表信息索引会动建立Manage Tables窗口中字段名旁边会出现钥匙
已表建立索引索引必须包含空值字段建立外索引强制字段成唯值字段
建立没限制索引需Manage Indexes窗口菜单中选择Manage|Indexes开Manage Indexes窗口Manage Indexes窗口中通拉框选择表特定索引建立新索引Index拉框中选择New Index然选择建立索引字段单击钮Add字段加索引中
索引选择许选项例选择该索引聚簇非聚簇指定该索引唯索引设计索引单击钮Build建立该索引
注意:
唯索引指该字段重复值建立索引
SQL核心语句
第十章学会SQL SELECT语句表中取数现止没讨添加修改删表中数节中学容
插入数
表中添加新记录SQL INSERT语句里种语句例子:
INSERT mytable (mycolumn) VALUES (some data’)
语句字符串’some data’插入表mytablemycolumn字段中插入数字段名字第括号中指定实际数第二括号中出
INSERT语句完整句法:
INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES |
Values_list | select_statement}
果表字段通字段名字段值逗号隔开字段中插入数假设表mytable三字段first_columnsecond_columnthird_column面INSERT语句添加条三字段值完整记录:
INSERT mytable (first_columnsecond_columnthird_column)
VALUES (some data’’some more data’’yet more data’)
注意:
INSERT语句文型字段中插入数果需输入长字符串应该WRITETEXT语句部分容书说太高级加讨解更信息请参考Microsoft SQL Sever文档
果INSERT语句中指定两字段数会样呢?换句话说表中插入条新记录字段没提供数种情况面四种:
果该字段缺省值该值会例假设插入新记录时没字段third_column提供数字段缺省值’some value’种情况新记录建立时会插入值’some value’
果该字段接受空值没缺省值会插入空值
果该字段接受空值没缺省值会出现错误会收错误信息:
The column in table mytable may not be null
果该字段标识字段会动产生新值标识字段表中插入新记录时忽略该字段标识字段会赋新值
注意:
标识字段表中插入新记录SQL变量@@identity访问新记录
标识字段值考虑SQL语句:
INSERT mytable (first_column) VALUES(some value’)
INSERT anothertable(another_firstanother_second)
VALUES(@@identity’some value’)
果表mytable标识字段该字段值会插入表anothertableanother_first字段变量@@identity总保存次插入标识字段值
字段another_first应该字段first_column相数类型字段another_first应该标识字段Another_first字段保存字段first_column值
删记录
表中删记录需SQL DELETE语句DELETE语句提供WHERE子句WHERE子句选择删记录例面DELETE语句删字段first_column值等’Delete Me’记录:
DELETE mytable WHERE first_column’Deltet Me’
DELETE语句完整句法:
DELETE [FROM] {table_name|view_name} [WHERE clause]
SQL SELECT语句中条件DELECT语句WHERE子句 中例面DELETE语句删first_column字段值’goodbye’second_column字段值’so long’记录:
DELETE mytable WHERE first_column’goodby’ OR second_column’so long’
果DELETE语句提供WHERE子句表中记录删应该种想法果想删应该表中记录应第十章讲TRUNCATE TABLE语句
注意:
什TRUNCATE TABLE语句代DELETE语句?TRUNCATE TABLE语句时记录删作记录说意味着TRUNCATE TABLEDELETE快
SQL数操作基础(中级)3
更新记录
修改表中已存条条记录应SQL UPDATE语句DELETE语句样UPDATE语句WHERE子句选择更新特定记录请例子:
UPDATE mytable SET first_column’Updated’ WHERE second_column’Update Me’
UPDATE语句更新second_column字段值’Update Me’记录选中记录字段first_column值置’Updated’
面UPDATE语句完整句法:
UPDATE {table_name|view_name} SET [{table_name|view_name}]
{column_list|variable_list|variable_and_column_list}
[{column_list2|variable_list2|variable_and_column_list2}…
[{column_listN|variable_listN|variable_and_column_listN}]]
[WHERE clause]
注意:
文型字段UPDATE语句果需更新长字符串应UPDATETEXT语句部分容书说太高级加讨解更信息请参考Microsoft SQL Sever文档
果提供WHERE子句表中记录更新时例果想表titles中书价格加倍UPDATE语句:
时更新字段例面UPDATE语句时更新first_columnsecond_columnthird_column三字段:
UPDATE mytable SET first_column’Updated’
Second_column’Updated’
Third_column’Updated’
WHERE first_column’Update Me1’
技巧:
SQL忽略语句中余空格SQL语句写成容易读格式
SELECT创建记录表
许已注意INSERT语句DELETE语句UPDATE语句点次操作记录然方法INSERT语句次添加记录作点需INSERT语句SELECT语句结合起象样:
INSERT mytable (first_columnsecond_column)
SELECT another_firstanother_second
FROM anothertable
WHERE another_first’Copy Me’
语句anothertable拷贝记录mytable表anothertable中字段another_first值’Copy Me’记录拷贝
表中记录建立备份时种形式INSERT语句非常删表中记录前先种方法拷贝表中
果需拷贝整表SELECT INTO语句例面语句创建名newtable新表该表包含表mytable数:
SELECT * INTO newtable FROM mytable
指定特定字段创建新表做点需字段列表中指定想拷贝字段外WHERE子句限制拷贝新表中记录面例子拷贝字段second_columnd值等’Copy Me’记录first_column字段
SELECT first_column INTO newtable
FROM mytable
WHERE second_column’Copy Me’
SQL修改已建立表困难例果表中添加字段没容易办法外果心字段数类型错没办法改变节中讲述SQL语句绕两问题
例假设想表中删字段SELECT INTO语句创建该表拷贝包含删字段删该字段保留想删数
果想改变字段数类型创建包含正确数类型字段新表创建该表结合UPDATE语句SELECT语句原表中数拷贝新表中通种方法修改表结构保存原数
集合函数
现止学根特定条件表中取出条条记录假想表中记录进行数统计例果想统计存储表中次民意测验投票结果者想知道访问者站点均花费少时间表中类型数进行统计需集合函数
Microsoft SQL支持五种类型集合函数统计记录数目均值值值者求集合函数时返回数该数值代表统计值
注意:
ASP网页中集合函数返回值需该值起名字作点SELECT语句中集合函数面紧字段名例示:
SELECT AVG(vote) the_average’ FROM opinion
例子中vote均值命名 the_average现ASP网页数库方法中名字
统计字段值数目
函数COUNT()许集合函数函数统计表中少条记录里例子:
SELECT COUNT(au_lname) FROM authors
例子计算表authors中名字(last name)数目果相名字出现止次该名字会计算次果想知道名字某特定值作者少WHERE子句例示:
SELECT COUNT(au_lname) FROM authors WHERE au_lname’Ringer’
例子返回名字’Ringer’作者数目果名字表authors中出现两次次函数返回值2
假想知道名字作者数目通关键字DISTINCT该数目例示:
SELECT COUNT(DISTINCT au_lname) FROM authors
果名字’Ringer’出现止次计算次关键字DISTINCT决定互相值计算
通常COUNT()时字段中空值忽略般说正希果仅仅想知道表中记录数目需计算表中记录─否包含空值面做点例子:
SELECT COUNT(*) FROM authors
注意函数COUNT()没指定字段语句计算表中记录数目包括空值记录需指定计算特定字段
函数COUNT()情况例假设表保存站点质量进行民意调查结果表名vote字段该字段值010表示反票1表示赞成票确定赞成票数量面SELECT语句:
SELECT COUNT(vote) FROM opinion_table WHERE vote1
计算字段均值
函数COUNT()统计字段中少值时需计算值均值函数AVG()返回字段中值均值
假站点进行次较复杂民意调查访问者110间投票表示喜欢站点程度投票结果保存名voteINT型字段中计算户投票均值需函数AVG():
SELECT AVG(vote) FROM opinion
SELECT语句返回值代表户站点均喜欢程度函数AVG()数值型字段函数计算均值时忽略空值
计算字段值
假设站点出售卡片已运行两月该计算赚少钱时候假设名orders表记录访问者定购信息计算定购量总函数SUM():
SELECT SUM(purchase_amount) FROM orders
函数SUM()返回值代表字段purchase_amount中值均值字段purchase_amount数类型许MONEY型数值型字段函数SUM()
返回值值
次假设表保存站点进行民意调查结果访问者选择110值表示站点评价果想知道访问者站点高评价语句:
SELECT MAX(vote) FROM opinion
许希站点予高评价通函数MAX()知道数值型字段值中值果站点投数字10函数MAX()返回该值
方面假想知道访问者站点低评价函数MIN()例示:
SELECT MIN(vote) FROM opinion
函数MIN()返回字段值中值果字段空函数MIN()返回空值
常SQL表达式函数程
节介绍SQL技术学表中取出数某字段值处定范围学字段值种类型转换成种类型操作字符串日期时间数学会发送邮件简单方法
通匹配定范围值取出数
假设表保存站点进行民意调查结果现想站点评价710间访问者发送书面感谢信名字SELECT语句:
SELECT username FROM opinion WHERE vote>6 and vote<11
SELECT语句会实现求面SELECT语句样结果:
SELECT username FROM opinion WHERE vote BETWEEN 7 AND 10
SELECT语句语句等价种语句编程风格问题会发现表达式BETWEEN语句更易读
现假设想取出站点投1者10访问者名字表opinion中取出名字SELECT语句:
SELECT username FROM opinion WHERE vote1 or vote
SELECT语句会返回正确结果没理存种等价方式SELECT相结果:
SELECT username FROM opinion WHERE vote IN (110)
注意表达式INSELECT语句取出vote值等括号中值记录
IN匹配字符数例假设想取出Bill GatesPresident Clinton投票值SELECT语句:
SELECT vote FROM opinion WHERE username IN (Bill Gates’’President Clinton’)
BETWEENIN时表达式NOT例取出投票值710间名字SELECT语句:
SELECT username FROM opinion WHERE vote NOT BETWEEN 7 and 10
选取某字段值列值中记录时NOTIN例示:
SELECT vote FROM opinion
WHERE username NOT IN (Bill Gates’’President Clinton’)
必须SQL语句中BETWEENIN查询更接然语言两表达式帮助
SQL数操作基础(中级)4
转换数
SQL Sever足够强需时候部分数值种类型转换种类型例较SMALLINT型INT型数需进行显式类型转换SQL Sever会完成项工作想字符型数类型数间进行转换时确需进行转换操作例假设想MONEY型字段中取出值结果面加字符串US Dollars需函数CONVERT()例示:
SELECT CONVERT(CHAR(8)price)+’US Dollars’ FROM orders
函数CONVERT()带两变量第变量指定数类型长度第二变量指定进行转换字段例子中字段price转换成长度8字符CHAR型字段字段price转换成字符型面连接字符串’US Dollars’
BIT型DATETIME型INT型者NUMERIC型字段添加字符串时需进行样转换操作例面语句SELECT语句查询结果中加入字符串’The vote is’该SELECT语句返回BIT型字段值
SELECT The vote is’+CONVERT(CHAR(1)vote) FROM opinion
面语句结果示例:
The vote is 1
The vote is 1
The vote is 0
(3 row(s) affected)
果进行显式转换会收错误信息:
Implicit conversion from datatype varchar’ to bit’ is not allowec
Use the CONVERT function to run this query
操作字符串数
SQL Sever许函数表达式字符串进行趣操作包括种样模式匹配字符转换节中学重字符函数表达式
匹配通配符
假设想建立Yahoo功相似Internet目录建立表保存系列站点名称统资源定位器(URL)描述类允许访问者通HTML form中输入关键字检索容
假访问者想目录中描述中包含关键字trading card站点列表取出正确站点列表许试图样查询:
SELECT site_name FROM site_directory WHERE site_desc’trading card’
查询工作返回描述中trading card字符串站点例描述We have the greatest collection of trading cards in the world站点会返回
字符串字符串部分相匹配需通配符通配符关键字LIKE实现模式匹配面语句通配符关键字LIKE重写面查询返回正确站点名字:
SELECT SITE_name FROM site_directory
WHERE site_desc LIKE trading cark’
例子中描述中包含表达式trading card站点返回描述We have the greatest collection of trading cards in the world站点返回然果站点描述中包含I am trading cardboard boxes online该站点名字返回
注意例中百分号百分号通配符例子代表0字符通trading card括百分号中中嵌字符串trading card字符串匹配
现假设站点目录变太页中完全显示决定目录分成两部分第页想显示首字母AM间站点第二页想显示首字母NZ间站点第页站点列表SQL语句:
SELECT site_name FROM site_directory WHERE site_name LIKE [AM]’
例子中表达式[AM]取出首字母AM间站点中括号([])匹配处指定范围单字符第二页中显示站点应语句:
SELECT site_name FROM site_directory
WHERE site_name LIKE [NZ]’
例子中括号中表达式代表处NZ间单字符
假设站点目录变更现需目录分成更页果想显示ABC开头站点面查询实现:
SELECT site_name FROM site_directory WHERE site_name LIKE [ABC]’
例子中括号中表达式指定范围出字符名字字符中开头站点返回
通括号表达式中时包含范围指定字符两种方法结合起例面查询取出首字母CF间者字母Y开头站点:
SELECT site_name FROM site_directory WHERE site_name LIKE [CFY]’
例子中名字CollegescapeYahoo站点会选取名字Magicw3站点会选取
脱字符(^)排特定字符例名字Y开头站点查询:
SELECT site_name FROM site_directory WHERE site_name LIKE [^Y]’
定字符字符范围均脱字符
通划线字符(_)匹配单字符例面查询返回名字第二字符字母站点:
SELECT site_name FROM site_directory WHERE site_name LIKE M_crosoft’
例子返回名Microsoft站点返回名Macrosoft站点名字Moocrosoft站点返回通配符’%’划线代表单字符
注意:
果想匹配百分号划线字符身需括方括号中果想匹配连字符()应指定方括号中第字符果想匹配方括号应括方括号中例面语句返回描述中包含百分号站点:
SELECT site_name FROM site_directory WHERE site_desc LIKE []’
匹配发音
Microsoft SQL两允许发音匹配字符串函数函数SOUNDEX()字符串分配音标码函数DIFFERENCE()发音较两字符串知道名字确切拼写少知道点发音时两函数助取出该记录
例果建立Internet目录许想增加选项允许访问者站点名发音搜索站点名字拼写考虑语句:
SELECT site_name FROM site_directory
WHERE DIFFERENCE(site_name Microsoft’>3
语句函数DEFFERENCE()取名字发音Microsoft非常相似站点函数DIFFERENCE()返回04间数字果该函数返回4表示发音非常相果该函数返回0说明两字符串发音相差
例面语句返回站点名MicrosoftMacrosoft两名字发音Microsoft相似果语句中3改2名ZicrosoftMegasoft站点返回果需差等级1名PicosoftMinisoft站点匹配
深入解函数DIFFERENCE()工作函数SOUNDEX()返回函数DIFFERENCE()音标码里例子:
SELECT site_name site name’SOUNDEX(site_name) sounds like’
语句选取字段site_name数音标码面查询结果:
site name sounds like
………………………………………………………………
Yahoo Y000
Mahoo M000
Microsoft M262
Macrosoft M262
Minisoft M521
Microshoft M262
Zicrosoft Z262
Zaposoft Z121
Millisoft M421
Nanosoft N521
Megasoft M221
Picosoft P221
(12 row(s) affected)
果仔细音标码会注意音标码第字母字段值第字母相例YahooMahoo音标码第字母发现MicrosoftMacrosoft音标码完全相
函数DIFFERENDE()较两字符串第字母辅音字母该函数忽略元音字母(包括y)非元音字母字符串第字母
幸SOUNDEX()DIFFERENCE()欠缺WHERE子句中包含两函数查询执行起效果应该心两函数
删空格
两函数TTRIM()LTRIM()字符串中剪掉空格函数LTRIM()应该字符串前面空格函数RTRIM()字符串尾部空格里函数RTRIM()例子:
SELECT RTRIM(site_name) FROM site_directory
例子中果站点名字尾部余空格余空格查询结果中删
嵌套两函数字符串前空格时删:
SELECT LTRIM(RTRIM(site_name) FROM site_directory
会发现CHAR型字段中剪掉余空格时两函数非常记住果字符串保存CHAR型字段中该字符串会追加余空格匹配该字段长度两函数掉空格解决问题
SQL数操作基础(中级)5
操作日期时间
日期时间函数建立站点非常站点表中数时更新感兴趣通日期时间函数毫秒级踪表改变
返回前日期时间
通函数GETDATE()获前日期时间例语句SELECT GETDATE()返回结果:
……………………………
NOV 30 1997 329AM
(1 row(s) affected)
显然果函数日期时间晚者梗早
函数GETDATE()作DATEDIME()型字段缺省值插入记录时保存时时间例假设表保存站点活动日志访问者访问站点时表中添加条新记录记访问者名字活动进行访问时间建立表中记录包含前日期时间添加DATETIME型字段指定缺省值函数GETDATE()返回值象样:
CREATE TABLE site_log (
username VARCHAR(40)
useractivity VARCHAR(100)
entrydate DATETIME DEFAULT GETDATE())
转换日期时间
许已注意节例子中函数GETDATE()返回值显示时显示秒实际SQL Sever部时间精确毫秒级(确切说精确333毫秒)
格式日期时间需函数CONVERT()例面语句执行时显示时间包括毫秒:
SELECT CONVERT(VARCHAR(30)GETDATE()9)
注意例子中数字9数字指明显示日期时间时种日期时间格式语句执行时显示日期时间:
…………………………………
Nov 30 1997 32955170AM
(1 row(s) affected)
函数CONVERT()中许种风格日期时间格式表111显示格式
表111日期时间类型
类型值 标准 输出
0 Default mon dd yyyy hhmiAM
1 USA mmddyy
2 ANSI yymmdd
3 BritishFrench ddmmyy
4 German ddmmyy
5 Italian ddmmyy
6 dd mon yy
7 mon ddyy
8 hhmiss
Default + millisecondsmon dd yyyy
hhmissmmmAM(or )
10 USA mmddyy
11 JAPAN yymmdd
12 ISO yymmdd
13 Europe Default + millisecondsdd mon yyyy
hhmissmmm(24h)
14 hhmissmmm(24h)
类型0913总返回四位年类型显示世纪style值加100类型1314返回24时时钟时间类型0713返回月份三位字符表示(Nov代表November)
表111中列种格式类型值加100显示世纪年(例00年显示2000年)例日标准显示日期包括世纪应语句:
SELECT CONVERT(VARCHAR(30)GETDATE()111)
例子中函数CONVERT()日期格式进行转换显示19971130
抽取日期时间
许情况许想日期时间部分完整日期时间例假设想列出站点目录中站点查询月份时希完整日期时间网页弄乱抽取日期特定部分函数DATEPART()象样:
SELECT site_name Site Name’
DATEPART(mmsite_entrydate) Month Posted’ FROM site_directory
函数DATEPART()参数两变量第变量指定抽取日期部分第二变量实际数例子中函数DATEPART()抽取月份mm代表月份面SELECT语句输出结果:
Site Name Month Posted
………………………………………………………………
Yahoo 2
Microsoft 5
Magicw3 5
(3 row(s) affected)
Month Posted列显示站点查询月份函数DATEPART()返回值整数函数抽取日期部分表112示
表112日期部分简写
日期部分 简写 值
year yy 17539999
quarter qq 14
month mm 112
day of year dy 1366
day dd 131
week wk 153
weekday dw 17(SundaySaturday)
hour hh 023
minute mi 059
second ss 059
milisecond ms 0999
需进行日期时间较时函数DATEPART()返回整数例中查询结果(25)十分易读更易读格式部分日期时间函数DATENAME()例示:
SELECT site_name Site Name’
DATENAME(mmsite_entrydate) Month Posted’
FROM site_directory
函数DATENAME()函数DATEPART()接收样参数返回值字符串整数面例该DATENAME()结果:
Site Name Month Postec
…………………………………………………………………
Yahoo February
Microsoft June
Magicw3 June
(3 row(s) affected)
函数DATENAE()抽取星期中某天面例子时抽取周中某天日期中月份:
SELECT site_name Site Name’
DATENAME(dwsite_entrydate)+ ’ + DATENAME(mmsite_entrydate)
Day and Month Posted’ FORM site_directory
例子执行时返回结果:
Site Name Day and Month Posted
………………………………………………………………………
Yahoo Friday February
Microsoft Tuesday June
Magicw3 Monday June
(3 row(s) affected)
返回日期时间范围
分析表中数时许希取出某特定时间数许特定某天中――说2000年12月25日――访问者站点活动感兴趣取出种类型数许会试图样SELECT语句:
SELECT * FROM weblog WHERE entrydate122520000
样做SELECT语句会返回正确记录――返回日期时间12252000 120000000AM记录换句话说刚午夜零点输入记录返回
注意:
节讨中假设字段entrydateDATETIME型SMALLDATETIME型节讨SMALLDATETIME型字段适SMALLDATETIME型字段精确秒
问题SQL Sever完整日期时间代部分日期时间例输入日期输入时间时SQL Sever加缺省时间12:00:00:000AM输入时间输入日期时SQL Sever加缺省日期Jan 1 1900
返回正确记录需适日期时间范围止种途径做点例面SELECT语句返回正确记录:
SELECT * FROM weblog
WHERE entrydate>12252000 AND entrydate<12262000
语句完成务选取表中日期时间等12252000 120000000AM12262000 120000000AM记录换句话说正确返回2000年圣诞节天输入条记录
种方法LIKE返回正确记录通日期表达式中包含通配符%匹配特定日期时间里例子:
SELECT * FROM weblog WHERE entrydate LIKE Dec 25 2000’
语句匹配正确记录通配符%代表时间
两种匹配日期时间范围函数选择某月某天某年某时某分钟某秒甚某毫秒输入记录果LIKE匹配秒毫秒首先需函数CONVERT()日期时间转换更精确格式(参见前面转换日期时间节)
较日期时间
两日期时间函数根日期时间取出记录函数DATEADD()DATEDIFF()较日期早晚例面SELECT语句显示表中条记录已输入少时:
SELECT entrydate Time Entered’
DATEDIFF(hhentrydateGETDATE()) Hours Ago’ FROM weblog
果前时间2000年11月30号午6点15分会返回结果:
Time Entered Hours Ago
…………………………………………………
Dec 30 2000 409PM 2
Dec 30 2000 413PM 2
Dec 1 2000 409PM 698
(3 row(s) affected)
函数DADEDIFF()参数三变量第变量指定日期某部分例子中时日期进行较(解日期部分详细容请参考表112)日期2000年11月1日2000年11月30日指定时间间689时外两参数进行较时间返回正数较早时间应该先
函数DATEADD()两日期相加需计算截止日期类数时函数处例假设访问者必须先注册站点注册免费站点月确定什时候免费时间会完SELECT语句:
SELECT username User Name’
DATEADD(mm1firstvisit_date) Registration Expires’
FROM registration_table
函数DATEADD()参数三变量第变量代表日期某部分例子代表月份mm第二变量指定时间间隔――例中月变量日期例子中日期取DATETIME型字段firstvisit_date假设前日期June 302000语句返回容:
User Name Registration Expires
……………………………………………………………………………
Bill Gates Jul 30 2000 409PM
President Clinton Jul 30 2000 413PM
William Shakespeare Jul 1 2000 409PM
(3 row(s) affected)
注意:
预料相反函数DATEADD()日期加月加30天函数简单月份值加1意味着11月注册2月注册2天3天时间避免问题函数DATEADD()直接增加天数月份
发送邮件
SQL Sever发送简单e_mail信息做点需系统中安装邮件服务器Microsoft Exchange Sever(参见第四章Exchange Active SeverIndex SeverNetShow)需配置SQL Sever识邮件服务器
SQL Sever识邮件服务器启动事务理器菜单中选择Sever|SQL Mail|Configue时会出现图113示话框输入邮件服务器中注册户名口令然单击OK
注意:
果Microsoft Exchange Sever配置SQL Sever程会需(域)户帐号运行Microsoft SQL SeverExchange Sever需安装SQL Sever机器安装Exchange Cliect帐号创建配置文件完成SQL Mail Configuration话框中输入该配置文件名字
图113
发送邮件前先启动SQL Mail菜单中选择Sever|SQL Mail|Start果邮件服务器配置正确输入正确户名口令SQL Mail会成功启动
注意:
SQL Sever配置动启动邮件服务做点Set Sever Optons话框(菜单中选择Sever|SQL Sever|Configure)中选择Auto Start Mail Client
发送邮件名xp_sendmail扩展存储程里程例子:
masterxp_sendmail president@whitehousegovHello Mr President
程调e_mail址president@whitehousegov发送简单email信息:Hello Mr Presidentemail址信息取代例中相应容发送信息超255字符长度
想时解站点数库状态时存储程xp_sendmail处例页面理程序发送信息果站点出什问题马知道章讲述更关存储程容
总结
章加深SQL知识学会建立索引查询速度更快学会插入删更新表中数集合函数表中数统计信息学会许价值表达式函数程操作字符串日期时间邮件
章进步加深Microsoft SQL Sever掌握学SQL进行程序设计建立存储程触发器执行计划更兴奋学会SQL Sever动创建网页简单方法
全面接触SQL
全面接触SQL语法(1)
SQL功特性
实前面文章中已提SQL命令基功然通SQL命令程序设计师数库理员(DBA):
()建立数库表格(包括设置表格空间)
(二)改变数库系统环境设置
(三)针某数库表格授予户存取权限
(四)数库表格建立索引值
(五)修改数库表格结构(新建删修改表格字段)
(六)数库进行数新建
(七)数库进行数删
(八)数库进行数修改
(九)数库进行数查询
项便通SQL命令完成事情起起查询两字代表功呢?
SQL语法分类
实SQL命令非常SQL出神入化需短短命令便够SQL命令针关系型数库建立出语法叙述SQL类数库中发挥功非常强针VB中常SQL语法基命令加分类介绍说明SQL命令语法前SQL做分类致SQL语法类型说已包含类中
第类属性词(Predicates)
SQL命令中指明选择记录方式ALLTOPDISTINCT等等
第二类声明(Declaration)
针SQL ParameterParameter Query名称数类型做声明PARAMETERS声明等等
第三类条件子句(Clause)
SQL查询中利表达式定义出查询条件缩寻找范围WHERE
第四类运算符(Operator)操作数(Operation)
SQL查询中Operation组成表达式(Expression)BETWEENAND运算符INNER JOIN操作数
第五类函数(Function)
SQL常见函数AVG()求算数均数函数
第六类SQL语句(Statement)
SQL语句说SQL语法体某特定数库发出指示返回相关数SQL语法结构基利面
式子表示:命令+条件子句
例:
SELECT*FROM TAB WHERE TABNAME'A'
中FROMWHERE便条件子句实SQL语法难您需记住样规相信快解SQL法
SQL语法命令
SELECT语句
SELECT[predicate]{*|table*|[table]field [[table]field2[]]} [AS alias1 [alias2[]]]
FROM tableexpression [][IN externaldatabase]
[WHERE]
[GROUP BY]
[HAVING]
[ORDER BY]
[WITH OWNERACCESS OPTION]
SELECT语句包括面部分
predicate
前面述包括ALLDISTINCTDISTINCTROWTOP利样语句限制查询结果
*
指定表格中指定字段
table
针选择出记录字段指定表格名称
field1field2
想读取数字段名称果包含字段会列出序读取数
alias1alias2
代表格实际字段名称化名
tableexpression
表格名称包含想数表格
externaldatabase
目前数库名字定义externaldatabase中
ALLDISTINCTDISTINCTROWTOP属性词法
SELECT [ALL|DISTINCT|DISTINCTROW|[TOP n[PERCENT]]] FROM table
ALL
您指定字段数Microsoft Jet数库引擎(database engine)会选择字段定条件查询出需求数集
全面接触SQL语法(2)
例面两例子会具相效果会职员表格中返回字段数
例:
查询出职员表格中记录通面语句完成
SELECT ALL* FROM职员表格 DISTINCT
某表格选择字段数略重复情况说针某字段查询出记录结果唯例许存放职员表格职员
数许会具相姓名SQL语句中SELECT DISTINCT查询出结果会针样姓名加筛选您
DISTINCT加省略样查询会显示记录
DISTINCTROW
整条记录重复记录忽略掉针某字段数
table
指定查询记录需表格
例:
SELECT DISTINCTROW公司名称
FROM顾客表格 INNER JOIN订单表格
ON顾客表格顾客ID=订单表格顾客ID
ORDER BY公司名称
果您忽略 DISTINCTROW会公司产生行订单数外DISTINCTROW表格中会省略掉
TOP
第条条开始(利ORDER BY条件子句)返回特定条数数
例:
您想知道2000年班前25名学生姓名数时您输入样语句:
SELECT TOP 25学生姓名
FORM学生表格
WHERE毕业年份1994
ORDER BY毕业成绩均分数 DESC
果您没加ORDER BY行条件话您数会机数外TOP语句加数字外利保留
字PERCENT查询
例:
SELECT TOP 10 PERCENT学生姓名
FROM学生表格
WHERE毕业年份1994
ORDER BY毕业成绩均DESC
PARAMETERS(参数)声明法
参数型查询语法中参数名称数类型作 声明操作
PARAMETERS name datatype[name datatype[]]
name
PARAMETERS名称您参数名称作字符串名称中包含空字符串利中括号处理例:VBeden
datatype
输入参数数类型
例:
您查询时需机动输入姓名 利列方式完成:
PARAMETERS 输入姓名 Text
SELECT*
FROM职员表格
WHERE姓名输入姓名:
全面接触SQL语法(3)
  ORDER BY条件语句
  条件子句通常SELECT语句合目查询结果指定字段加排序
  SELECT fieldlist
  FROM table
  WHERE selectcriteria
  ORDER BY field[ASC|DESC][field2[ASC|DESC][]]
  fieldlist
  欲查询字段名称中ALLDISTINCTDISINCTROWTOP起
  table
  欲查询表格名称
  selectcriteria
  查询标准设置
  field1
  指定字段作排序没加ORDER BY查询出数集会作排序操作
  ASC
  递增序类(默认值)
  DESC
  递减序类
  例:
  输出数出生先次序排列利面命令
  SELECT姓名生日
  FROM职员表格
  ORDER BY生日
  SELECT LastNameFirstName
  FROM Employees
  ORDER BY LastName ASC
  IN条件子句
  指定速胜外部数库表格(必须Microsoft Jet数库引擎连接数库dBaseParadox等等)
  
SELECT|INSERT]INTO destination IN
{path|[path type]|[[typeDATABASEpath]]}
FROM tableexpression IN
{path|[path type]|[[typeDATABASEpath]]}
destination
  欲插入数外部表格名称
  tableexpression
  表格名称读取数表格名称参数单表格名称段已存储SQL查询等
  path
  包含该表格完整路径名称
  type
  数库类型名称 通常数库部属Jet database时会(例:dBASE IIIdBASE IVParadox 3xParadox 4x Btrieve)
  例:面两段意义相
PartAFROM Table
IN [dBASE IVDATABASEC\DBASE\DATA\SALES]
PartBFROM Table
IN C\DBASE\DATA\SALES dBASE IV
  例:Microsoft Jet database
SELECT顾客编号
FROM顾客表格
IN CUSTOMERMDB
WHERE顾客编号 Like A*
中CUSTOMERMDBOJet database数库名称中包含顾客表格
例:dBASE III or IV
SELECT顾客编号
FROM顾客表格
IN C\DBASE\DATA\SALES dBASE IV
WHERE顾客编号 Like A*
ACCESS数库时必须指明该数库类型名称

全面接触SQL语法(4)
HAVING条件子句
指定特定分组记录满足HAVING指定条件状态条件针分组条件设置
SELECT fieldlist
FROM table
WHERE selectcriteria
GROUP BY groupfieldlist
HAVING groupcriteria
fieldlist
显示查询字段名称(ALLDISTINCTDISTINCTROWTOP相结合)
table
欲查询数表格名称
selectcriteria
选取标准
groupfieldlist
分组记录字段名称10字段字段序决定高低分组阶层
groupcriteria
决定什样分组记录显示
HAVINGWHERE法相类似处HAVING必须GROUP分组数
例:
SELECT分类编Sum(库存数量)
FROM产品表格
GROUP BY分类编号
HAVING Sum(库存数量)>100 AND产品名称 LIKE *纸
GROUP BY条件子句
指定字段具相数值记录合成条
SELECT fieldlist
FROM table
WHERE criteria
GROUP BY groupfieldlist
fieldlist
欲读取字段名称(ALLDISTINCTDISTINCTROWTOP合)
table
查询表格名称
groupfieldlist
分组记录字段名称10字段字段序决定高低分组层次
例:
SELECT姓名Count(姓名)AS职员姓名
FROM职员表格
WHERE部门名称'业务部'
GROUP BY姓名
FROM条件子句
指定表格名称查询中包含列SELECT语句字段数
SELECT fieldlist
FROM tableexpression[IN externaldatabase]
fieldlist
表格中字段名称(ALLDISTINCTDISTINCTROWTOP相结合)
tableexpression
表格名称表格算式
externaldatabase
该表格参考外部数库时完整路径名称记
例:
职员表格查询出姓名字段数(姓名字段查询显示)
SELECT姓名 FROM职员表格
WHERE条件子句
指定查询条件限制
SELECT fieldlist
FROM tableexpression
WHERE criteria
fieldlist
字段名称(ALLDISTINCTDISTINCTROWTOP相结合)
tableexpression
表格名称表格算式
criteria
查询结果必须限制标准
例:
查询出职员表格中姓氏李数面语句
SELECT姓名
FROM职员表格
WHERE姓氏'李'
全面接触SQL语法(5)
BETWEENAND运算符
决定某数值否介特定范围运算符SQL语句中
expr[Not]BETWEEN value1 AND value2
expr
指定加计算字段表达式组合
value1value2
指明数值范围
例:
职员表格查询出年龄介2530岁员工利面程序做
SELECT姓名年龄 BETWEEN 25 AND 30
FROM职员表格
LIKE操作数
字符串特定字符串样式(pattern)较符合该字符串样式记录滤出
expression LIKE pattern
expression
WHERE条件子句SQL表达式
pattern
较字符串样式
例:
查询出李首姓氏利面式子
Like 李*
LIKE操作数种范例:
1字符:
(1)a*a
筛选:aaaBaaBBBa筛选:aBC
(2)*ab*
筛选:abcAABBXab筛选:aZbbac
2特殊字符:
a*a
筛选:a*a筛选:aaa
3单字符:
aa
筛选:aaaa3aaBa筛选:aBBBa
4单数字:
a#a
筛选:a0aa1aa2a筛选:aaaa10a
5字符范围:
az
筛选:fpj筛选:2&
6指定字符外部范围:
az
7指定非数字:
09
筛选:Aa&~筛选:019
8组合式结构:
abm#
筛选:An9az0a99筛选:abcaj0
SQL数字函数
1AVG:算数均数
AVG(expr)
expr
字段名称表达式
例:
计算职员身高超165厘米职员均身高利面SQL语句完成
SELECT Avg(身高)
AS均身高
FROM职员表格 WHERE身高>165
2COUNT:计算记录条数
COUNT(expr)
expr
字段名称表达式
例:
统计出业务部门职员数查询出职员姓名利面程序
SELECT Count(姓名) AS职员姓名
FROM职员表格
WHERE部门名称'业务部'
3FIRSTLAST:返回某字段第条数条数
FIRST(expr)
LAST(expr)
expr
字段名称表达式
例:
找出货品数量字段第条数货品价格字段条数时利面查询方式
SELECT FIRST(货品数量)LAST(货品价格)
FROM订单表格
4MAXMIN:返回某字段值值
法FIRSTLAST
5SUM:返回某特定字段运算总数值
SUM(expr)
expr
字段名称表达式
例:
计算出货品总价面程序
SELECT
Sum(单位价格*货品数量)
AS货品总价 FROM订单表格
层SQL查询
顾名思义层SQL查询便:SQL语句中包含SQL查询语句形成部嵌套查询类型
comparison[ANY|ALL|SOME](sqlstatement)
expression[NOT]IN (sqlstatement)
[NOT]EXISTS(sqlstatement)
comparison
表达式层查询结果较操作
expression
层查询结果作搜索表达式
sqlstatement
SELECT语句构成SQL查询必须()该语句括起
例:
先订单表格中查询出单位产品表格中单位查询出高订单表格单位价格记录
SELECT * FROM产品表格
WHERE单位价格>ANY (SELECT单位价格 FROM订单表格 WHERE折扣>25)
全面接触SQL语法(6)
SQL数库维护
表格建立
SQL中基语法作番介绍偏数库数查询滤实际通SQL命令做事接介绍便利SQL语法命令建立数库中表格
CREATE TABLE语句
利命令建立全新表格前提:数库必须已存
CREATE TABLE table(field1 type[(size)][index1][field2 type[(size)][index2][]][nultifieldindex[]])
table
欲建立新表格名称
field1field2
新表格中新字段名称少字段
type
字段数类型
size
字段
index1index2
利CONSTRAINT条件子句定义单字段索引名称
multifieldindex
利CONSTRAINT条件子句定义重字段索引名称
例:
建立拥职员姓名部门字段表格
CREATE TABLE职员表格 (姓名TEST部门TEST职员编号 INTEGER CONSTRAINT职员字段索引PRIMARY KEY)
范例中建立表格名称职员表格表格定义该表格键值限制数重复输入
表格索引建立
CREATE INDEX语句
命令已存表格建立索引法:
CREATE[UNIQUE]INDEX index ON table(field[ASC|DESC][field[ASC|DESC]])
[WITH {PRIMARY|DISALLOWNULL|IGNORENULL}]
index
欲建立索引名称
table
欲建立索引表格名称
field
欲建立索引字段名称通DESC保留字决定索引序
例:
职员表格中建立索引
CREATE INDEX新索引名称
ON职员表格(姓名部门)
表格字段更新
CONSTRAINT条件子句
CONSTRAINT功类似索引(INDEX)然CONSTRAINT建立表格间关联性
单字段索引:
CONSTRAINT name{PRIMARY KEY|UNIQUE|REFERENCES foreigntable[(foreignfield1foreignfield2)]}
字段索引:
CONSTRAINT name
{PRIMARY KEY(primary1[primary2[]])
|UNIQUE(unique1[unique2[]])
|FOREIGN KEY (ref1[ref2[]])
|REFERENCES foreigntable[(foreignfield1[foreignfield2[]])]}
name
建立CONSTRAINT名称
primary1primary2
设计成键值字段名称()
unique1unique2
设计成唯键值字段名称()
foreign key
字段名称参考表格中字段字段名称
foreigntable
前述参考表格
foreignfield1foreignfield2
参考表格中ref1ref2字段指定字段果参考字段参考表格中键值省略条件子句
例:
建立新职员数表格表格包含姓名部门名称生日三字段三字段建立唯索引时面段SQL语句
CREATE TABLE职员数表格
(姓名 TEST部门名称 TEST生日 DATETIMECONSTRAINT职员数表格限制 UNIQUE(姓名部门名称生日))
SQL中数库表格建立相关命令利命令通SQL语句数库表格完整建立出接章节针数库建立维护增删SQL语句作介绍
全面接触SQL语法(7)
表删
DELETE语句
利DELETE语句表格中记录删(注意:记录删法复原条件设置正确)
DELETE[table*]
FROM tableexpression
WHERE criteria
table
欲删记录表格名称*取代
tableexpression
表格名称参数单表格名称INNER JOINLEFT JOINRIGHTJOIN等运算结果
criteria
决定表格中记录删标准
例:
职员表格中姓名姓名做'李名'记录删利面SQL语句完成
DELETE * FROM职员表格
WHERE姓名'李名'
数库表格相关操作命令
SQL作查询数库表格建立工具外数库表格新建删修维护具相错功读者SQL命令宜整效率提高着帮助SQL语句带优势常常会遇情况:表格作复杂步骤处理时许SQL语句完成需求目标乍许觉玄妙接章节会解中妙处
SELECTINTO语句
通命令利存表格查询建立新表格查询语句
SELECT field1[field2[]]INTO newtable[IN externaldatabase]
FROM source
field1field2
欲拷贝新表格字段名称
newtable
欲建立新表格名称已存表格
externaldatabase
该表格外外部数库时该数库名称
source
记录数拷贝源表格名称单表格段SQL查询语句
例:
通面SQL语句建立新训练名册表格
SELECT职员表格姓名职员表格部门
INTO训练名册 FROM职员表格
WHERE职称'新进员'
INNER JOIN操作数
某字段数相等时两表格记录加组合
SELECT fields
FROM table1 INNER JOIN table2
ON table1field1 compopr table2field2
table1table2
欲进行记录组合表格名称
field1field2
欲组合字段名称(必须具相数类型)
compopr
较关系运算符:<><<>等
例:
分类表格产品表格作组合参考面SQL语句
SELECT分类名称产品名称
FROM分类表格 INNER JOIN产品表格
ON分类表格分类编号产品表格分类编号
UNION操作数
通UNION操作数建立连接查询条件UNION操作数两表格查询结果组合起
[TABLE]query1 UNION [ALL][TABLE]query2 [UNION [ALL]
[TABLE]queryn []]
query1query2queryn
SELECT语句已存查询名称已存表格名称
例:
利面SQL语句订单数量超1000顾客表格记录新客户表格作UNION操作
TABLE新客户表格 UNION ALL
SELECT *
FROM顾客表格
WHERE订单数量>1000
ALTER语句
表格建立利ALTER语句修改表格字段设计
ALTER TABLE table
{ADD {COLUMN field type[(size)][CONSTRAINT index]
|CONSTRAINT multifieldindex}
|DROP {COLUMN field|CONSTRAINT indexname}}
table
欲ALTER表格名称
field
增加删字段名称
type
字段数类型
size
字段
index
字段索引
例:
职员表格中新建薪水字段
ALTER TABLE职员表格
ADD COLUMN薪水 CURRENCY
例:
职员表格中删薪水字段
ALTER TABLE职员表格 DROP COLUMN薪水
DROP语句
针指定表格字段加删索引删
DROP {TABLE table|INDEX index ON table}
table
欲删表格索引附表格名称
index
欲表格中删索引名称
例:
职员表格中删编号索引
DROP INDEX MyIndex ON Employees
例:
数库中删整表格
DROP TABLE职员表格
INSERT INTO语句
新建条数表格中
条记录新建查询:
INSERT INTO target [IN externaldatabase][(field1[field2[]])]
SELECT [source]field1[field2[]
FROM tableexpression
单条记录新建查询:
INSERT INTO target[(field1[field2[]])]
VALUES(value1[value2[])
target
新建记录表格名称
externaldatabase
外部数库路径搭配IN条件子句
source
记录表格中拷贝时指明该表格名称
field1field2
欲增加数字段名称
tableexpression
表格名称描述记录表格中插入表格名称配合INNER JOINLEFT JOIN RIGHT JOIN运算符起
value1value2
欲插入表格中数值
例:
客户数表格中新表格插入数
INSERT INTO客户数表格
SELECT新客户数表格*
FROM新客户数表格
例:
职员表格中插入数
INSERT INTO职员表格(姓名生日职称)
VALUES(王荣571211理)
例:
训练员表格中职员雇时间超30天者加入正式职员表格中
INSERT INTO职员表格
SELECT训练员表格*
FROM训练员表格
WHERE雇天数>30
UPDATE语句
建立UPDATE查询通条件限制修改特定数
UPDATE table
SET newvalue
WHERE criteria
table
欲修改数表格名称
newvalue
欲修改成数值(该项数值插入特定字段中)
criteria
查询条件决定修改记录
例:
订单表格中订单数量修改成11倍运费103倍利列SQL语句完成
UPDATE订单表格
SET订单数量订单数量 * 11运费运费 * 103倍
WHERE运达点'美国'
完成修改利 SELECT语句配合样 WHERE条件子句察修改数否正确
事实利SQL完成某似复杂操作需繁琐SQL命令组合许许步骤完成实重活SQL命令会精简SQL语句里获高效率
SQL语法详解
SQL语句详解(1)
1 CREATE DATABASE database_name [WITH LOG IN pathname]
创建数库
database_name:数库名称
pathname:事务处理日志文件
创建database_namedbs目录存取权限GRANT设定日志文件
BEGIN WORK等事务语句(START DATABASE语句改变)
选定前数库日志文件
:select dirpath form systables where tabtype L
例:create databse customerdb with log in usrjohnlogcustomerlog
1 DATABASE databsename [EXCLUSIVE]
选择数库
database_name:数库名称
EXCLUSIVE:独占状态
存取前目录DBPATH中指定目录数库事务中处理程中语句
例:dtabase customerdb
3 CLOSE DATABASE
关闭前数库
database_name:数库名称
语句列语句合法:
CREATE DATABASE DATABASE DROP DATABSE ROLLFORWARD DATABASE
删数库前必须语句
例:close database
4 DROP DATABASE database_name
删指定数库
database_name:数库名称
户DBA表拥者删文件包括数库目录允许删前数库(须先关闭前数库)事务中处理程中语句通ROLLBACK WORK数库恢复
例:drop databse customerdb
5 CREATE [TEMP] TABLE tablename(column_name datatype [NOT NULL] …)
[IN pathname]
创建表时表
tablename:表名称
column_name:字段名称
datatype:字段数类型
pathname:指定表存放位置
TEMP指定建立时表表名唯字段唯CONNECT权限户建立时表创建表缺省允许CONNECT户存取ALTER
例:create table user
( c0 serial not null c1 char (10)
c2 char(2)
c3 smallint
c4 decimal(63)
c5 date
) in usrjohncustomerdbsuser
6 ALTER TABLE
ALTER TABLE tablename
{ADD (newcol_name newcol_type [BEFORE oldcol_name] …) | DROP (oldcol_name …)
| MODIFY (oldcol_name newcol_type [NOT NULL] … )} …
修改表结构
tablename:表名称
newcol_name:新字段名称
newcol_type:新字段类型
oldcol_name:老字段名称
单ADD子句DROP子句MODIFY子句某字句失败操作中止原字段NULL允许MODIFYNOT NULL非NULL字段中均非空反ALTER者表拥者拥DBA权限授权事务中处理程中语句
例:alter table user
add ( c6 char(20) before c5)
7 RENAME TABLE oldname TO newname
修改表名
oldname:原名称
newname:新名称
RENAME者表拥者拥DBA权限授权事务中处理程中语句
例:rename user to bbb
8 DROP TABLE tablename
删表
tablename:表名称
删表意味着删中数字段索引表赋权视图等户删系统目录表语句者表拥者拥DBA权限事务中处理程中语句
9 RENAME COLUMN tableoldcolumn TO newcolumn
修改字段名
tableoldcolumn:表名原字段名称
newcolumn:新字段名称
语句者表拥者拥DBA权限ALTER权限户事务中处理程中语句
例:rename column userc6 to c7
10CREATE VIEW viewname columnlist
CREATE VIEW viewname columnlistAS select_statement [WITH CHECK OPTION]
创建视图
viewname:视图名称
columnlist:字段列表
select_statement:SELECT语句
语句视图:ALTER TABLEDROP INDEXALTER INDEXLOCK TABLECREATE INDEX RENAME TABLE视图延基表字段名表达式等虚字段表间字段重名必须指明标识字段名视图中某字段命名字段必须命名视图中数类型延基表中数类型虚字段起诀表达式ORDER BYUNION子句视图中字段SELECT权限事务中处理程中语句事务回滚视图建立恢复
例:create view v_user as select * from user where c1 B1
11DROP VIEW viewname
删视图
viewname:视图名称
户删建立视图视图代视图删事务中处理中语句
例:drop view v_user
12CREATE INDEX
CREATE [UNIQUEDISTINCT] [CLUSTER] INDEX index_name ON table_name
([column_name ASCDESC]…)
创建索引
index_name:索引名称
table_name:表名称
column_name:字段名称
UNIQUEDISTINCT:唯索引
CLUSTER:表物理存放序索引排列
ASCDESC:升序降序缺省升序
语句执行时表状态置EXCLUSIVE复合索引包含8字段字段长度120字节事务中处理程中语句事务回滚索引建立恢复
例:create cluster index ix_user on user(c5)
13ALTER INDEX indexname TO [NOT] CLUSTER
修改索引性质
indexname:索引名称
TO [NOT] CLUSTER:掉加CLUSTER属性
语句执行时表状态置EXCLUSIVE事务中处理程中语句事务回滚索引性质改变恢复
例:alter index ix_user to not cluster
14DROP INDEX indexname
删索引
indexname:索引名称
语句者索引拥者拥DBA权限事务中处理程中语句否事务法恢复
例:drop index ix_user
15CREATE SYNONYM synonym FOR tablename
创建义名
synonym:义名
tablename:表名称
数库创建者义名没赋予义名权限户义名义名表名相事务中处理程中语句
例:create synonym user_alias for user
16DROP SYNONYM synonym
删义名
synonym:义名
删建立义名事务中处理程中语句否法恢复
例:drop synonym user_alias
17UPDATE STATISTICS [FOR TABLE tablename]
更新数库统计数字
tablename:表名称
语句仅作前数库提高查询效率执行语句改变统计数
例:update statistics for table user
SQL语句详解(2)
1 GRANT {DBA|RESOURCE|CONNECT} TO {PUBLIC|userlist}
授权命令
PUBLIC|userlist:全部指定户
三种权限居仅居事务处理程中执行GRANT语句
例:grant resource to pulbic
GRANT tabprivilege ON tablename TO {PUBLIC|userlist} [WITH GRANT OPTION]
授表级权限
tabprivilege:表级权限
tablename:表名称
PUBLIC|userlist:全部指定户
[WITH GRANT OPTION]:表示授权户否权限进行二次授权
户建立表达式[WITH GRANT OPTION]准许表中进行赋权限定越权限优先级越高
例:grant update(c1c6) on user to dick with grant option
附(INFORMIX权限)
(1)数库权限(控制数库访问数库中表创建删)
DBA权限:全部权利修改系统表建立删表索引增加恢复表数授予户数库权限等
RESOURCE权限:允许数库表中数进行存取建立永久性表索引
CONNECT权限:允许数库表中数进行存取建立删视图时表
(2)表级权限(表建立修改检索更新等权限)
ALTER:更改权限
DELETE:删权限
INDEX:索引权限
INSERT:插入权限
SELECT [(cols)]:指定字段字段查询权限指明字段缺省字段
UPDATE [(cols)]:指定字段字段更新权限指明字段缺省字段
ALL [PRIVILEGES]:表级权限
2 REVOKE {DBA|RESOURCE|CONNECT} FROM {PUBLIC|userlist}
收权命令
PUBLIC|userlist:全部指定户
三种权限居仅居事务处理程中执行GRANT语句
例:revoke resource from john
REVOKE tabprivilege ON tablename FROM {PUBLIC|userlist}
收表级权限
tabprivilege:表级权限
tablename:表名称
PUBLIC|userlist:全部指定户
[WITH GRANT OPTION]:表示授权户否权限进行二次授权
户取消赋予户表级存取权限取消权限SELECTUPDATE作取消时取消表中字段SELECTUPDATE权限
例revoke update on user from dick
3 LOCK TABLE tablename IN {SHARE|EXCLUSIVE} MODE
记录级加锁表级加锁文件加锁
tablename:表名称
SHARE:允许读表中数允许作修改
EXCLUSIVE:禁止形式访问表
次表琐定次事务处理程中BEGIN WORK立执行LOCK TABLE取代记录级加锁COMMIT WORKROLLBACK WORK语句取消表加锁没事务处理锁保持户退出执行UNLOCK止
例:lock table user in exclusive mode
4 UNLOCK TABLE tablename
取消记录级加锁表级加锁文件加锁
tablename:表名称
例:unlock user
5 SET LOCK MODE TO [NOT] WAIT
改变锁定状态
TO [NOT]:等解锁死锁等提示错误信息表示记录锁缺省值
访问EXCLUSIVE状态记录返回错误
6 START DATABSE db_name [WITH LOG IN pathname]
启动事务处理
pathname:事务处理日志文件
执行该语句前需先关闭前数库
例clost database
start databse customer with log in usrjohnlogcustomerlog
7 BEGIN WORK
开始事务例:begin work
8 COMMIT WORK
提交(正常结束)事务例:commit work
9 ROLLBACK WORK
回滚(非正常结束)事务例:rollback work
10 SELECT
SELECT select_list FROM tab_name|view_name
WHERE condition
GROUP BY column_name
HAVING condition
ORDER BY column_list
INTO TEMP table_name
查询语句
select_list:选择表*
tab_name:表名称
view_name:视图名称
condition:查询条件BETWEENINLIKEIS NULLLIKEMATCHESNOT
ANDOR<>> ><column_name:分组字段名称
condition:群聚条件
column_list:排序字段列表缺省ASC指定DSC排序时NULL值非零值
table_name:时表名称
例:略
附(常函数)
(1)集合函数:
count(*)
sum(数项表达式)avg(数项表达式)max(数项表达式)min(数项表达式)
count(distinct数项表达式)sum(distinct数项表达式)avg(distinct数项表达式)
(2)代数函数三角函数
HEX(数项表达式)ROUND(数项表达式)TRUNC(数项表达式)
TAN(数项表达式)ABS(数项表达式)MOD(数数)
(3)统计函数
标准差stdev()方差variance()范围rang()
(4)时间函数
DAY(日期时间表达式):返回数字型
MONTH(日期时间表达式):返回整数
WEEKDAY(日期时间表达式):0�<星期天1星期返回整数
YEAR(日期时间表达式)返回整数
DATE(非日期表达式):返回日期型
EXTEND(日期时间表达式[第]):返回指定整数
MDY(月日年):返回日期型
CURRENT:返回日期型
(5)时间函数
ROUND()四舍五入:ROUND(1095position)position进行四舍五入前位置
TRUNC()截取:TRUNC(10950)position截取位置
INFORMIX时表列情况动取消:
A退出数库访问工具(DBACCESS)
BSQL通话结束(DISCONNECT)
C发出取消表语句
D退出程序时
11 INSERT
INSERT INTO view_name|table_name [(column_list)] VALUES (value_list)
INSERT INTO view_name|table_name [(column_list)] select_statement
插入数
view_name|table_name:视图名表名称
column_list:数项列表
value_list:值列表
select_statement:查询语句
例:略
12 DELETE FROM view_name|table_nameWHERE searchconditions
删语句
view_name|table_name:视图名表名称
searchconditions删条件
例:略
13 UPDATE
UPDATE view_name|table_nameSET column_1 value_1istWHERE search_conditions
UPDATE view_name|table_nameSET column_1|* value_1istWHERE search_conditions
更新数语句
view_name|table_name:表名称视图表名称
value_1ist:字段值
search_conditions:更新数条件
例:略
14 CHECK TABLE tablename
检查索引语句
语句者表拥者拥DBA权限systable语句
例:略
15 REPAIR TABLE tablename
修复索引
语句者表拥者拥DBA权限systable语句
例:略
16 LOAD FROM filename INSERT INTO table_name [(column_name[…])]
文数栽入表中
例:load form aatxt insert into user
17 UNLOAD TO pathname
表中数卸文
例:unload to aatxt select * from user
18 INFO
系统信息查询
INFO TABLES:前数库表名字
INFO columns FOR table_name:指定表字段信息
INFO INDEXES FOR table_name:指定表索引信息
INFO [ACCESS|PRIVILEGES] FOR table_name:指定表存取权限
INFO STATUS FOR table_name:指定表状态信息
例: info tables
SQL语法参考手册
DB2提供关连式资料库查询语言 SQL (Structured Query Language) 种非常口语化易学易懂语法语言资料库系统必须提供表示关连式操作包含资料定义(DDL)资料 处理(DML)SQL原拼成 SEQUEL语言原型系统 R名 字 IBM圣荷西实验室完成 IBM部许性效率测试结果相令满意决定系统R技术基础发展出 IBM产品美国国家标准学会(ANSI)国际标准化组织(ISO  1987遵循 IBM SQL基础标准关连式资料语言定义
资料定义 DDL(Data Definition Language)
资料定语言指资料格式形态定义语言资料库建立时候 时首先面举资料分表格关系表格什麽栏位键表格表格间互相参考关系等等开始时候必须规划
建表格:
语法:
CREATE TABLE table_name(
column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY]
column2 DATATYPE [NOT NULL]

说明 
DATATYPE 资料格式详见表
NUT NULL 允许资料空(尚未资料填入)
PRIMARY KEY 表键
更改表格 
ALTER TABLE table_name
ADD COLUMN column_name DATATYPE
说明 增加栏位(没删某栏位语法)
ALTER TABLE table_name
ADD PRIMARY KEY (column_name)
说明 更改表定义某栏位设键
ALTER TABLE table_name
DROP PRIMARY KEY (column_name)
说明 键定义删
建立索引 
CREATE INDEX index_name ON table_name (column_name)
说明 某表格栏位建立索引增加查询时速度
删 
DROP table_name
DROP index_name
资料形态 DATATYPE
SQL 资料形态 DATATYPEs
smallint
16位元整数
interger
32位元整数
decimal(ps)
p精确值 s十进位整数精确值 p指全部数(digits)
值 s指数点後位数
果没特指定系 统会设 p5 s0
float
32位元实数
double
64位元实数
char(n)
n长度字串n超 254
varchar(n)
长度固定长度 n字串n超 4000
graphic(n)
char(n)样单位两字元 doublebytes n超 127形态支援两字元长度字体例中文字
vargraphic(n)
变长度长度 n双字元字串n超 2000
date
包含 年份月份日期
time
包含 时分钟秒
timestamp
包含 年月日时分秒千分秒
资料操作 DML (Data Manipulation Language)
资料定义後接资料操作资料操作外增加资料(insert) 查询资料(query)更改资料(update)删资料(delete)四种模式分介绍语法:
增加资料:
INSERT INTO table_name (column1column2) VALUES ( value1value2 )
说明:
1没指定column系统会表格栏位序填入资料
2栏位资料形态填入资料必须吻合
3table_name景观 view_name
INSERT INTO table_name (column1column2) SELECT columnxcolumny FROM another_table
说明:子查询(subquery)表格资料填入
查询资料:
基查询
SELECT column1columns2 FROM table_name
说明:table_name 特定栏位资料全部列出
SELECT *
FROM table_name
WHERE column1 xxx
[AND column2 > yyy] [OR column3 <> zzz]
说明:
1'*'表示全部栏位列出
2WHERE後接条件式符合条件资料列出
SELECT column1column2
FROM table_name
ORDER BY column2 [DESC]
说明:
ORDER BY指定某栏位做排序[DESC]指排列
没指明排列
组合查询
组合查询指查询资料源单表格联合表格够结果
SELECT *
FROM table1table2
WHERE table1colum1table2column1
说明:
1查询两表格中中 column1值相资料
2然两表格相互较栏位资料形态必须相
3复杂查询动表格会
整合性查询:
SELECT COUNT (*)
FROM table_name
WHERE column_name xxx
说明:
查询符合条件资料笔
SELECT SUM(column1)
FROM table_name
说明:
1计算出总选栏位必须数数字形态
2外 AVG()计算均MAX()MIN()
计算值整合性查询
SELECT column1AVG(column2)
FROM table_name
GROUP BY column1
HAVING AVG(column2) > xxx
说明:
1GROUP BYcolumn1组计算 column2均值
必须 AVGSUM等整合性查询关键字起
2HAVING 必须 GROUP BY起作整合性限制
复合性查询
SELECT *
FROM table_name1
WHERE EXISTS (
SELECT *
FROM table_name2
WHERE conditions )
说明:
1WHERE conditions外 query
2EXISTS指存否
SELECT *
FROM table_name1
WHERE column1 IN (
SELECT column1
FROM table_name2
WHERE conditions )
说明 
1 IN後面接集合表示column1存集合里面
2 SELECT出资料形态必须符合 column1
查询
SELECT *
FROM table_name1
WHERE column1 LIKE 'x'
说明:
1LIKE必须後面'x'相呼应表示 x开头字串
SELECT *
FROM table_name1
WHERE column1 IN ('xxx''yyy')
说明 
1 IN後面接集合表示column1存集合里面
SELECT *
FROM table_name1
WHERE column1 BETWEEN xx AND yy
说明 
1 BETWEEN表示 column1值介於 xx yy间
更改资料:
UPDATE table_name
SET column1'xxx'
WHERE conditoins
说明:
1更改某栏位设定值'xxx'
2conditions符合条件没 WHERE
整 table栏位会全部更改
删资料:
DELETE FROM table_name
WHERE conditions
说明:删符合条件资料
SQL实践
SQL实践(1)
1 NULL值
RDSQL中字段缺省值空数值型0空值字符型空白空值区
数值表达式中某变空整表达式值空
聚合函数中空值忽略计全部空值COUNT(*)返回0外余返回空值
布尔表达式中结果未知(见表)TRUE AND NULL结果 未知
未知结果RDSQL中作符合查询条件
and
T
F


or
T
F


not

T
T
F


T
T
T
T

T
F
F
F
F


F
T
F


F
T


F



T





结合表分析列子句 中n120n2空n330结果右
where n1*n2 < 1000 and n3 30结果:符合查询条件
where n1*n2 < 1000 or n3 30结果:符合查询条件
ORDER BY子句中空值空值组
INSERTUPDATE时关键字NULLnull表示空值
字段否空CREATE TABLE语句中否NOT NULL指定ALTER修改
Q:select count(*) from t1select count(c1) from t1否样
2 字符查找LIKEMATCHES
LIKE
MATCHES
意义

*
匹配0字符


匹配字符


转义字符

[]
选择匹配
例:matches *Sp’匹配字符开始Sp结束字段值
matches l*’ 匹配第字符意第二字符l余字符意字段值
matches [AN]*’ 匹配AN字符开始余字符意字段值
matches *[sS]*’ 匹配含sS字段值扩展case insensitive查询
like \’ 匹配含字段值
3 SQL语句求表中关name少num结果表二
4 表:                     表二:
5 id   name   num              name    count1
6 1   AA   1               CC       2
7 2   AA   2               BB       2
8 3   AA   3               AA      3
9 4   AA   1
10 5   AA   2
11 6   BB   4
12 7   BB   5
13 8   BB   4
14 9   BB   5
15 10   CC   6
16 11   CC   6
17 12   CC   7
SQL语句:
create table t1
(
id smallint
name char(10)
num smallint
)
insert into t1 values(1'AA'1)
insert into t1 values(2'AA'2)
insert into t1 values(3'AA'3)
insert into t1 values(4'AA'1)
insert into t1 values(5'AA'2)
insert into t1 values(6'BB'4)
insert into t1 values(7'BB'5)
insert into t1 values(8'BB'4)
insert into t1 values(9'BB'5)
insert into t1 values(10'CC'6)
insert into t1 values(11'CC'6)
insert into t1 values(12'CC'7)
A:select name count(distinct num) from t1 group by name
4)旋转矩阵表中关id月份费变横
中表id某月份记录数>1表:
id  d1 fee费(分)
1 20000124 100
1 20000424 100
2 20000224 200
2 20000624 200
3 20000424 400
4 20000424 400
5 20000524 500
6 20000624 600
7 20000924 900
8 20001124 1100
表二:
id 1月份费 2月份费 …… … …12月份费
1 100 0 0 100 0 0 0 0 0 0 0  0
2 0 200 0 0  0 200 0  0 0 0 0  0
3 0 0 0 400 0 0 0 0 0 0 0  0
4 0 0 0 400 0 0 0 0 0 0 0  0
5 0 0 0 0  500 0 0 0 0 0 0  0
6 0 0 0 0  0 600 0 0 0 0 0  0
7 0 0 0 0  0 0 0 0 900 0 0  0
8 0 0 0 0  0 0 0 0 0 0 1100 0
SQL语句:
create table t3
(
id smallint
d1 datetime year to day
fee int
)
insert into t3 values(120000124 100)
insert into t3 values(120000424 100)
insert into t3 values(220000224 200)
insert into t3 values(220000624 200)
insert into t3 values(320000424 400)
insert into t3 values(420000424 400)
insert into t3 values(520000524 500)
insert into t3 values(620000624 600)
insert into t3 values(720000924 900)
insert into t3 values(820001124 1100) 
create table t4 –旋转矩阵
(
m_code smallint
y1 smallint
y2 smallint
y3 smallint
y4 smallint
y5 smallint
y6 smallint
y7 smallint
y8 smallint
y9 smallint
y10 smallint
y11 smallint
y12 smallint
)
insert into t4 values(1 100000000000)
insert into t4 values(2 010000000000)
insert into t4 values(3 001000000000)
insert into t4 values(4 000100000000)
insert into t4 values(5 000010000000)
insert into t4 values(6 000001000000)
insert into t4 values(7 000000100000)
insert into t4 values(8 000000010000)
insert into t4 values(9 000000001000)
insert into t4 values(10000000000100)
insert into t4 values(11000000000010)
insert into t4 values(12000000000001)
方法
select idmonth(d1) monthsum(fee) fei from t3 group by 12 into temp aa
select id
sum(y1*fei) y1sum(y2*fei) y2sum(y3*fei) y3sum(y4*fei) y4
sum(y5*fei) y5sum(y6*fei) y6sum(y7*fei) y7sum(y8*fei) y8
sum(y9*fei) y9sum(y10*fei) y10sum(y11*fei) y11sum(y12*fei) y12
from aa t4 where aamonth t4m_code
group by id order by id
方法二
select id
sum(y1*fee) y1sum(y2*fee) y2sum(y3*fee) y3sum(y4*fee) y4
sum(y5*fee) y5sum(y6*fee) y6sum(y7*fee) y7sum(y8*fee) y8
sum(y9*fee) y9sum(y10*fee) y10sum(y11*fee) y11sum(y12*fee) y12
from t3 t4 where month(d1) t4m_code
group by id order by id
方法方法二结果样区:
方法中先id某月钱进行累加然进行旋转
方法二中表id某月份记录数>1情况时先条记录进行旋转然
累加求
SQL实践(2)
19 SPL写UPPER函数
INFORMIX中没UPPER函数存储程实现
例方法
SPL Upper()

Procedure GetCharAt()
Get a character from a string at a specified position

DROP PROCEDURE GetCharAt
CREATE PROCEDURE GetCharAt(str VARCHAR(255) pos INTEGER)
RETURNING VARCHAR(1)
DEFINE i INTEGER
IF pos < 1 THEN
FOR i 2 TO pos
LET str str[2255]
END FOR
END IF
RETURN str[11]
END PROCEDURE

Procedure Upper()
Convert a string to uppercase

DROP PROCEDURE Upper
CREATE PROCEDURE Upper(str VARCHAR(255))
RETURNING VARCHAR(255 0)
DEFINE i INTEGER
DEFINE len INTEGER
DEFINE retstr VARCHAR(255)
IF str IS NULL THEN
RETURN NULL
ELSE
LET len LENGTH(str)
LET retstr ''
FOR i 1 TO len
LET retstr retstr||ToUpper(GetCharAt(str i))
END FOR
LET retstr retstr[2255] BUG req'd to strip off leading blank
RETURN retstr
END IF
END PROCEDURE

Procedure ToUpper()
Convert a single character to upper case

DROP PROCEDURE ToUpper
CREATE PROCEDURE ToUpper(fromchar VARCHAR(11))
RETURNING VARCHAR(11)
IF fromchar 'a' THEN
RETURN 'A'
ELIF fromchar 'b' THEN
RETURN 'B'
ELIF fromchar 'c' THEN
RETURN 'C'
ELIF fromchar 'd' THEN
RETURN 'D'
ELIF fromchar 'e' THEN
RETURN 'E'
ELIF fromchar 'f' THEN
RETURN 'F'
ELIF fromchar 'g' THEN
RETURN 'G'
ELIF fromchar 'h' THEN
RETURN 'H'
ELIF fromchar 'i' THEN
RETURN 'I'
ELIF fromchar 'j' THEN
RETURN 'J'
ELIF fromchar 'k' THEN
RETURN 'K'
ELIF fromchar 'l' THEN
RETURN 'L'
ELIF fromchar 'm' THEN
RETURN 'M'
ELIF fromchar 'n' THEN
RETURN 'N'
ELIF fromchar 'o' THEN
RETURN 'O'
ELIF fromchar 'p' THEN
RETURN 'P'
ELIF fromchar 'q' THEN
RETURN 'Q'
ELIF fromchar 'r' THEN
RETURN 'R'
ELIF fromchar 's' THEN
RETURN 'S'
ELIF fromchar 't' THEN
RETURN 'T'
ELIF fromchar 'u' THEN
RETURN 'U'
ELIF fromchar 'v' THEN
RETURN 'V'
ELIF fromchar 'w' THEN
RETURN 'W'
ELIF fromchar 'x' THEN
RETURN 'X'
ELIF fromchar 'y' THEN
RETURN 'Y'
ELIF fromchar 'z' THEN
RETURN 'Z'
END IF
RETURN fromchar
END PROCEDURE
方法二
SPL Upper()

Procedure Upper()
Convert a string to uppercase

DROP PROCEDURE upper
CREATE PROCEDURE upper (str VARCHAR(255)) RETURNING VARCHAR(255)
DEFINE i INTEGER
DEFINE l INTEGER
DEFINE retstr VARCHAR(255)
IF str IS NULL THEN
RETURN NULL
ELSE
LET l LENGTH(str)
LET retstr ''
FOR i 1 TO l
IF str[11] BETWEEN a AND z THEN
IF str[11] 'a' THEN
LET retstr retstr || 'A'
ELIF str[11] 'b' THEN
LET retstr retstr || 'B'
ELIF str[11] 'c' THEN
LET retstr retstr || 'C'
ELIF str[11] 'd' THEN
LET retstr retstr || 'D'
ELIF str[11] 'e' THEN
LET retstr retstr || 'E'
ELIF str[11] 'f' THEN
LET retstr retstr || 'F'
ELIF str[11] 'g' THEN
LET retstr retstr || 'G'
ELIF str[11] 'h' THEN
LET retstr retstr || 'H'
ELIF str[11] 'i' THEN
LET retstr retstr || 'I'
ELIF str[11] 'j' THEN
LET retstr retstr || 'J'
ELIF str[11] 'k' THEN
LET retstr retstr || 'K'
ELIF str[11] 'l' THEN
LET retstr retstr || 'L'
ELIF str[11] 'm' THEN
LET retstr retstr || 'M'
ELIF str[11] 'n' THEN
LET retstr retstr || 'N'
ELIF str[11] 'o' THEN
LET retstr retstr || 'O'
ELIF str[11] 'p' THEN
LET retstr retstr || 'P'
ELIF str[11] 'q' THEN
LET retstr retstr || 'Q'
ELIF str[11] 'r' THEN
LET retstr retstr || 'R'
ELIF str[11] 's' THEN
LET retstr retstr || 'S'
ELIF str[11] 't' THEN
LET retstr retstr || 'T'
ELIF str[11] 'u' THEN
LET retstr retstr || 'U'
ELIF str[11] 'v' THEN
LET retstr retstr || 'V'
ELIF str[11] 'w' THEN
LET retstr retstr || 'W'
ELIF str[11] 'x' THEN
LET retstr retstr || 'X'
ELIF str[11] 'y' THEN
LET retstr retstr || 'Y'
ELSE
LET retstr retstr || 'Z'
END IF
ELSE
LET retstr retstr || str[11]
END IF
LET str str[2255]
END FOR
LET retstr retstr[2255] BUG req'd to strip off leading blank
RETURN retstr
END IF
END PROCEDURE
说明
某INFORMIX版中语句
DEFINE retstr VARCHAR(255)
LET retstr ''
LET retstr retstr || 'A'
返回' A'两字符果确定系统没问题
SPL中语句 LET retstr retstr[2255]
BUG req'd to strip off leading blank掉
20 表中重复键值记录删
假定keycol唯(关某键值>2条记录时保留条)
表未分区没户正删表记录语句
delete from sometable as a
where rowid <> (select min(rowid) from sometable where keycol akeycol)
条件满足没ROWID语句
BEGIN WORK
SELECT DISTINCT * FROM Table INTO TEMP Temp1
DELETE FROM Table WHERE 1 1
INSERT INTO Table SELECT * FROM Temp1
COMMIT WORK
说明适记录数时空间足够情况
21 样语句错误时停止SQL脚

dbaccess

BEGIN WORK
INSERT INTO history
SELECT *
FROM current
WHERE momth 11
DELETE FROM current
WHERE month 11
COMMIT WORK
插入语句错误(字段momth没找)脚会继续执行回带严重错误
通设置环境变量DBACCNOIGN1错误发生立停止继续运行
22 设置运算结果返回位数
例未DBDLTMASK环境变量时
CREATE TEMP TABLE t
(
col_a DECIMAL(84) NOT NULL
col_b DECIMAL(84) NOT NULL
col_c DECIMAL(84) NOT NULL
)
INSERT INTO t VALUES(12345 34567 56789)
SELECT (col_a + col_b) col_c AS value FROM t
设置环境变量DBDLTMASK前   value 082607547236261
设置环境变量DBDLTMASK6  value 0826075
Sql连接查询
连接查询
通连接运算符实现表查询连接关系数库模型特点区类型数库理系统标志
关系数库理系统中表建立时数间关系必确定常实体信息存放表中检索数时通连接操作查询出存放表中实体信息连接操作户带灵活性时候增加新数类型实体创建新表尔通连接进行查询
连接SELECT语句FROM子句WHERE子句中建立似非FROM子句中指出连接时助连接操作WHERE子句中搜索条件区分开TransactSQL中推荐种方法
SQL92标准定义FROM子句连接语法格式:
FROM join_table join_type join_table
[ON (join_condition)]
中join_table指出参连接操作表名连接表操作表操作表操作连接称做连接
join_type指出连接类型分三种:连接外连接交叉连接连接(INNER JOIN)较运算符进行表间某()列数较操作列出表中连接条件相匹配数行根较方式连接分等值连接然连接等连接三种
外连接分左外连接(LEFT OUTER JOINLEFT JOIN)右外连接(RIGHT OUTER JOINRIGHT JOIN)全外连接(FULL OUTER JOINFULL JOIN)三种连接外连接列出连接条件相匹配行列出左表(左外连接时)右表(右外连接时)两表(全外连接时)中符合搜索条件数行
交叉连接(CROSS JOIN)没WHERE子句返回连接表中数行笛卡尔积结果集合中数行数等第表中符合查询条件数行数第二表中符合查询条件数行数
连接操作中ON (join_condition)子句指出连接条件连接表中列较运算符逻辑运算符等构成
种连接textntextimage数类型列进行直接连接三种列进行间接连接例:
SELECT p1pub_idp2pub_idp1pr_info
FROM pub_info AS p1 INNER JOIN pub_info AS p2
ON DATALENGTH(p1pr_info)DATALENGTH(p2pr_info)
()连接
连接查询操作列出连接条件匹配数行较运算符较连接列列值连接分三种:
1等值连接:连接条件中等号()运算符较连接列列值查询结果中列出连接表中列包括中重复列
2等连接: 连接条件等运算符外较运算符较连接列列值运算符包括>><<><<>
3然连接:连接条件中等()运算符较连接列列值选择列表指出查询结果集合中包括列删连接表中重复列
例面等值连接列出authorspublishers表中位城市作者出版社:
SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON acitypcity
然连接选择列表中删authorspublishers表中重复列(citystate):
SELECT a*ppub_idppub_namepcountry
FROM authors AS a INNER JOIN publishers AS p
ON acitypcity
(二)外连接
连接时返回查询结果集合中仅符合查询条件( WHERE搜索条件 HAVING条件)连接条件行采外连接时返回查询结果集合中仅包含符合连接条件行包括左表(左外连接时)右表(右外连接时)两边接表(全外连接)中数行
面左外连接坛容作者信息连接起:
SELECT a*b* FROM luntan LEFT JOIN usertable as b
ON ausernamebusername
面全外连接city表中作者user表中作者城市:
SELECT a*b*
FROM city as a FULL OUTER JOIN user as b
ON ausernamebusername
(三)交叉连接
交叉连接带WHERE子句返回连接两表数行笛卡尔积返回结果集合中数行数等第表中符合查询条件数行数第二表中符合查询条件数行数
例titles表中6类图书publishers表中8家出版社列交叉连接检索记录数等
6*848行
SELECT typepub_name
FROM titles CROSS JOIN publishers
ORDER BY type

文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 6 香币 [ 分享文档获得香币 ]

购买文档

相关文档

非常全面的工厂规章制度

规 章 制 度目 录前 言 3第一章 总 则 3第二章 员工守则 3第三章 员工薪酬制度 6第四章 安全生产管理制度 6第五章 人事制度 7第一节 员工的招聘 7第二节 员工的录用 8第三节 员工证件办理 8第四节 员工培训 9第五节 人员调动 9第六节 考勤打卡规则 9第七节 请

将***尧 10年前 上传370   0

非常全面的工厂规章制度 (1)

规 章 制 度目 录前 言 2第一章 总 则 2第二章 员工守则 2第三章 安全生产管理制度 3第四章 人事制度 4第一节 员工的招聘 4第二节 员工的录用 4第三节 员工证件办理 5第四节 员工培训 5第五节 人员调动 5第六节 考勤打卡规则 5第七节 请假规则 6第八节 员工投

包***华 12年前 上传428   0

非常全面的工厂规章制度-员工手册

 武穴市建达船舶制造有限公司 规 章 制 度目 录前 言 3第一章 总 则 3第二章 员工守则 3第三章 员工薪酬制度 6第四章 安全生产管理制度 6第五章 人事制度 7第一节 员工的招聘 7第二节 员工的录用 8第三节 员工证件办理 8第四

g***z 9年前 上传376   0

DBA常用Sql语句

查看表空间的名称及大小: SQL>select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name;

h***y 5年前 上传1275   0

SQL上机练习

创建如下数据表并插入如下数据: create table S (SNO CHAR(6) NOT NULL, SNAME CHAR(8) NOT NULL, SSEX CHAR(2), SAGE SMALLINT, SDEPT CHAR(10) PRIMARY KEY (SNO), CHECK (SSEX='男' or SSEX='女'));   create table c

g***i 5年前 上传1189   0

Excel VBA入门教程

VBA入门系列讲座1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用excel的宏语言来使excel自动化,使用word BASIC使word自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA

雅***韵 2年前 上传854   0

《PS快速入门教程》

PS抠图方法.  一、魔术棒法——最直观的方法  适用范围:图像和背景色色差明显,背景色单一,图像边界清晰。  方法意图:通过删除背景色来获取图像。  方法缺陷:对散乱的毛发没有用。  使用方法:1、点击“魔术棒”工具;  2、在“魔术棒”工具条中,在“连续”项前打勾;  3、“容差”值填入“20”。(值可以看之后的效果好坏进行调节);  4、用魔术棒点背景色,会

雅***韵 3年前 上传687   0

SQL语言学习总结

SQL语言学习总结  暑假过的真快总感觉昨天才刚放假,还想着这个暑假怎么过时,暑假就已经去了。  这个暑假一开始我们看了浙大的sql的视频,老师给我们的要求是只要看一遍就行。刚开始看的时候还能听懂一些,看到后面的时候基本就听不懂了,幸好老师对我们的要求不高,于时只好硬着头皮继续。  sql的视频其实总的说来无非讲的是对数据库、表、字段等的创建、修改和删除。我们不懂的也就是怎样使用代码

幸***儿 9年前 上传745   0

Photoshop-6.0入门教程4

第4单元 使用图层样式图层样式用于在图层上添加特殊效果,在本单元中我们将学习如何使用图层样式以及它的设置方法。第一课 图层样式的基本用法一、 任务对于图层对象可以直接使用样式,本课的主要任务是学习使用样式面板和对图层应用样式的方法。二、 知识点Photoshop为用户提供了近百种已设置的样式,同时还提供了设置样式的图层样式对话框。1. 样式控制面板通过窗口菜单可以打开样式

l***q 4年前 上传803   0

Photoshop-6.0入门教程5

路径是Photoshop软件中引入的矢量技术,它不仅可以绘出各种线条、图形,也可以制作选区、填充色彩或描边。在本单元中,我们将学习路径的基本用法以及绘制路径的方法。

l***q 4年前 上传926   0

钢笔行书入门教程

钢笔行书入门教程 一,钢笔行书的特征 行书之称始于西晋卫恒《四体绝书》.张怀在《书断》中是这样阐述行书产生原因的:行书者.后汉刘德升所造也.既正书之小伪.务从简易,相间流行.帮谓之行书.在汉晚期已有行书了.从行书的产生.形成和历代演变的发展过程来看行书并没有开成独立的“行法“.这是与篆,隶,草,楷的最大区别.行书无法却有体.最大特点是用连笔和省笔.却不用或少用草化符号.较多地保留正体的可识性

t***d 5年前 上传1913   0

Photoshop-6.0入门教程1

Photoshop 6.0是美国Adobe公司推出的功能强大的图像处理软件,它相对于前面的版本发生了较大的变化,不仅新增了许多功能,同时在界面上也有许多不同。Photoshop 是一个图像处理软件,它适合于制作各种图像,如照片效果、特效文字、各种底纹等,这些图像可被广泛地应用于Web页面、广告、杂志等等。本单元讲述Photoshop 6.0的基础知识,主要包括Photoshop的窗口结构、文件操作等。下面将分三课学习这些内容。

l***q 4年前 上传931   0

Photoshop-6.0入门教程6

通道是Photoshop中非常重要的工具,它与各种特效配合可以制作出非常精美的图像,但是通道比较难以理解、使用起来不易把握。本单元中我们将学习通道的用法。

l***q 4年前 上传843   0

Photoshop-6.0入门教程3

第3单元 图层的使用图层是Photoshop为用户提供的非常重要的处理图像工具,用户大多数的操作都离不开它。简单地说,图层可以将一个图像中的各个部分独立开,用户在对其中的任一部分处理时,不会影响其他部分。在第1单元中我们已经学习了图层的概念和简单的操作。在本单元中我们将更进一步地领略图层在图像处理中的巨大魅力。第一课 再看图层控制面板一、 任务在第1单元我们已经初步接触了图层控制面

l***q 4年前 上传758   0

电磁仿真CST入门教程

电磁仿真CST入门教程1.1 软件介绍CST公司总部位于德国达姆施塔特市,成立于1992年。它是一家专业电磁场仿真软件的提供商。CST软件采用有限积分法(Finite Integration)。其主要软件产品有:CST微波工作室——三维无源高频电磁场仿真软件包(S参量和天线)CST设计工作室——微波网络(有源及无源)仿真软件平台(微波放大器、混频器、谐波分析等)CST电磁工作室——

z***u 2年前 上传763   0

《硬笔书法入门教程》

写字姿势与执笔方法一、写字姿势书写的姿势对于练习写字非常重要。正确的写字姿势不仅能保证书写自如,减轻疲劳,提高书写水平,而且还能促进少年儿童身体的正常发育,预防近视、斜视、脊椎弯曲等多种疾病的发生。因此,必须引起重视。正确的写字姿势是:上身坐正,两肩齐平;头正,稍向前倾;背直,胸挺起,胸口离桌沿一拳左右;两脚平放在地上与肩同宽;左右两臂平放在桌面上,左手按纸,右手执笔。眼睛与纸面的距离应

花***0 2年前 上传471   0

Photoshop-6.0入门教程2

Photoshop中的工具非常多,使用它们不仅会涉及工具栏,同时还涉及了控制面板、图层等一系列知识。在本单元中,我们将通过制作例图来学习这些工具的用法以及相应的控制面板和菜单的应用。

l***q 4年前 上传651   0

少儿围棋入门教程

知道棋盘的基础知识:是方的有横竖各19道线,361个点。认得星和天元。知道胜负的基础知识:黑棋185子为胜,白棋177子为胜。知道围棋术语六个:气,连,断,打吃,长,提。

文***品 4年前 上传840   0

Photoshop-6.0入门教程7

第7单元 调节图像在Photoshop中,我们经常要对图像的尺寸、色调以及画布进行调节,这些工作都要由图像菜单来完成。本单元主要学习图像菜单的基本用法。第一课 图像模式转换一、 任务在绪论中,我们已经学习了几种常用图像色彩模式,本课的主要任务是学习文件如何在几种色彩模式间进行转换。二、 知识点图像模式的转换是通过菜单图像→模式下的各个命令完成的。1. RGB与CMYK模式间

l***q 4年前 上传653   0

党支部必备的70个台账模板,非常齐全!

党支部必备的70个台账模板,非常齐全!

王***朝 3年前 上传17040   1

SQL中调用ORACLE存储过程

SQL Server 调用Oracle的存储过程 收藏 原文如下:通过SQL  Linked  Server 执行Oracle 存储过程小结1 举例我们可以通过下面的方法在SQL Server中通过Linked Server 来执行Oracle 存储过程。(1)  Oracle PackagePACKAGE Test_PACKAGE AS       TYPE t_t is TAB

天***猩 1个月前 上传99   0

sql查询语句学习测试答案

第一部分SQL查询语句的学习单表查询1、--查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、客户ID和雇员ID等字段的值use eeeSELECT 订购日期,订单ID,客户ID,雇员IDFROM 订单WHERE 订购日期BETWEEN '1996-7-1 00:00:00' AND '1996-7-15 23:59:59'2、--查询“N

文***品 3年前 上传1141   0

SQL数据的定义实验报告

实验1、数据定义班级:计自班 姓名: 学号:1、 实验目的熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。2、 实验内容l 用SSMS创建数据库University_Misl 使用CREATE语句创建基本表。l 更改基本表的定义: 增加列,删除列,修改列的数据类型。l 创建表的升、降序索引。l 删除基本表的约束、基本表的索引

文***品 2年前 上传632   0

「非常~1

〖非常规思维〗3M公司何以超越诺顿公司 3M公司创造“一种能絻够激发普通员工建功立业的组织环境” 3M公司“生产多少,销售多少”的经营哲学体现了公司管理层的一个坚定信念:市场本身比等级管理者更能鉴别企业发展潜力,而且无论何时,那些具有良好保险单的员工应该不断得到资助和支持,以验证设想的可能性。 在3M公司,其组织结构是按照“成长再分立”的原则自下而上建立的,这种原

l***7 14年前 上传10287   0

领导力非常时刻非常驱动(5)

领导力:非常时刻非常驱动 近年来,一些声名显赫的大公司的CEO在任期尚未结束便突然被解职,其中包括:施乐的理查德·托曼、宝洁的迪克·雅格、朗讯科技的理查德·麦克吉恩、可口可乐的道格拉斯·伊维斯特及美泰玩具吉尔·巴拉德。为什么这些前途看好、此前也取得过成功的商业精英,会在CEO的位置上这么快就失败了?     当CEO在短暂的任期内失败时,各种指责就会纷沓而至:CEO战略选择失误、行为不当或是

鬼***笑 7个月前 上传216   0