SQL编程集.docx
- 文档编号:26146100
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:27
- 大小:25.83KB
SQL编程集.docx
《SQL编程集.docx》由会员分享,可在线阅读,更多相关《SQL编程集.docx(27页珍藏版)》请在冰豆网上搜索。
SQL编程集
数据库
1.创建数据库xan,并且创建一个主数据库文件,一个辅数据库文件和一个日志文件.
createdatabasexan-----------创建数据库xan
on(name=‘xan_data’,----------主数据文件名为xan_data
filename=‘g:
\xan\xan_date.mdf’,----------主数据文件存储路径(主数据文件后缀名为.mdf)
size=1mb,---------设置起始文件大小为1MB
maxsize=untimited,,--------设置最大文件大小为不受限制
filegrowth=10%),--------设置文件增长为10%(也可按MB设置)
(name=‘xan_data1’,----------辅数据文件名为xan_data1
filename=‘g:
\xan\xan_date1.ndf’,----------辅数据文件存储路径(辅数据文件后缀名为.ndf)
size=1mb,----------设置起始文件大小为1MB
maxsize=50mb,-----------设置最大文件大小为50MB
filegrowth=10%),----------设置文件增长为10%
logon(name=‘xan_log’,----------日志文件名为log_data
filename=‘g:
\xan\xan_log.ldf’,---------日志文件存储路径(日志文件后缀名为.ldf)
size=2mb,--------设置起始文件大小为2MB
maxsize=50mb,--------设置最大文件大小为50MB
filegrowth=2mb)----------设置文件增长为2MB
go---------执行
2.添加一个文件组xangroup
alterdatabasexan-----指定更改的数据库xan
addfilegroupxangroup-----添加文件组为xangroup
Go
3.向文件组xangroup添加一个文件xan_love
alterdatabasexan-------指定更改的数据库xan
addfile(name=xan_love,--------添加文件xan_love内容
filename=’g:
\xan\xan_love.mdf’,
size=1mb,
maxsize=100mb,
filegrowth=10%)tofilegroupxangroup-----添加到指定的文件组xangroup
go
4.修改数据库xan的名为nax
alterdatabasexan----指定更改的数据库xan
modifyname=nax----更改名为nax
go
5.修改数据库文件xan_data起始大小为5MB
alterdatabasexan----指定更改的数据库xan
modifyfile(name=xan_data,---指定更改的数据库文件名xan_data
size=5mb)---更改新值为5MB
go-----注意:
每次只能更改一个文件的属性
6.删除文件组xangroup和其中的文件xan_love
alterdatabasexan----指定更改的数据库xan
removefilexan_love----删除文件xan_love
go
removefilegroupxangroup----删除文件组xangroup
go---注意:
删除文件组必须先删除其中的文件
7.删除数据库xan
dropdatabasexan----删除指定的数据库xan
go
数据库表
8.在数据库xan创建表为xantable
usexan----指定数据库xan
createtablexantable----创建表为xantable
(学号intnotnull,----添加列名为学号,数据类型为int型,不允许为空
姓名char(20),----添加列名为姓名,数据类型为字符型(长度为20),默认允许为空
性别bit,
年龄smaint,
专业char(20)default‘计算机’,)------添加列名为专业,默认值为’计算机’
go
9.为表xantable中添加数据信息
usexan----指定数据库xan
insertintoxantable(学号,姓名,性别,年龄)----向表xantable中添加你所需要填写的列名
values(00001,’竹子’,0,21)----填写对应的数据信息
go
10.给表xantable添加标识列xuhao(标识列相当于一个序列,可以自动添加数据)
usexan----指定数据库xan
altertablexantable----指定更改的表为xantable
addxuhaointidentity(1,1)notnull----添加列为xuhao,标识列的起始值为1,增量系数为1,不允许为空
go
11.添加全球唯一标识符aa(提供全球唯一性)
usexan-----指定数据库xan
altertablexantable-----指定修改的表为xantable
addaauniqueidentifierdefaultnewid()-----标识列为aa,默认为newid()[函数]
go
12.修改xantable中的竹子的年龄改为20
usexan----指定数据库为xan
updataxantable----修改表xantable中的数据信息
set年龄=20----选择年龄的列,并赋予新值
where姓名=’竹子’----选择需改数据信息的目标列姓名=’竹子’
go
13.altertable–修改表结构
useugv
altertabletach
add专业名char(10)----添加一列
--altercolumn姓名char(10)---修改一列
--dropcolumn部门---删除一列
go
14.删除xantable的所有记录,删除表xantable
usexan
deletexantable------------------默认删除所有,有日志可恢复
go
truncatetablexantable-------------表示删除表中全部记录,不会被日志文件所记录,是无法恢复,慎用
dorptablexantable
go
查询
15.查询xan库中xantable表所有内容
usexan
select*------*号代表所有
fromxantable
go
16.查询northwind库products表中指定列(productid、supplierid、birthdate、city)。
usenorthwind
selectproductid,supplierid,birthdate,city-------select后面跟多个列时用逗号隔开
fromproducts
go
17.查询northwind库products表中指定列(productid、supplierid、birthdate、city)中supplierid>10的数据
usenorthwind
selectproductid,supplierid,birthdate,city
fromproducts
Wheresupplierid>10-----------------指定条件为supplierid>10
go
18.查询products表中productname为tofu的记录
usenorthwind
select*
fromproducts
whereproductname=’tofu’
go
19.查询products表中birthdate比1960-10-1大的
usenorthwind
select*
fromproducts
wherebirthdate>’10-1-1960’
go
20.模糊查询like
usenorthwind
select*
fromcustomers
wherecitylike‘c%’-----查询customers表中city中以c开头的数据
----wherecitynotlike‘c%’-----查询customers表中city中不含以c开头的数据
----wherecitylike‘a_’-----查询customers表中city中以c开头并且只有两个字符的数据
Go
-----“%”号的使用:
%C%,表示包含C;C%,表示C开头;%C,表示C结尾
-----“_”的用法:
a_,表示以a开头并只有两个字符;“_”能有多个,一个代表一个字符
21.and/or/not(优先级顺序为not,and,or)
usenorthwind
select*fromproducts
where(productnamelike‘%e’andunitprice<40)orproduct=73-----列出以e结尾且unitprice或者product=73的数据
Go
22.between…and在…范围之内
usenorthwind
select*fromproducts
whereunitpricebetween10and20--(大于10小于20)-----包含10和20
-------whereunitpricenotbetween10and20--(小于10大于20)----不包含10和20
go
23.In==or确定给定的值是否与查询或列表中的值相匹配
usenorthwind
select*fromcustomers
wherecityin('berlin','london')-----查询city中’berlin’和’london’的数据
-------wherecitynotin('berlin','london')----查询city中除了’berlin’和’london’的数据
go
24.isnull查询为空的数据
usenorthwind
selectcompanyname,fax
fromsuppliers
wherefaxisnull------查询fax为空的数据
-----wherefaxisnotnull----查询fax不为空的数据
Go
25.orderby排序:
asc升;desc降
usenorthwind
Selectproductname,categoryid,unitprice,supplierid
fromproducts
orderbycategoryidasc,unitpricedesc----第一列categoryid为主序,默认为asc,第二列unitprice为desc
Go
26.distinct消除重复的记录
usenorthwind
selectdistinctcountry------查询suppliers中消除country重复的记录
fromsuppliers
orderbycountry
Go
27.AS别名(修改列名)
usenorthwind
selectlastnameasa,firstnameb,city,lastname+firstnameasc—修改lastname为a,firstname为b,lastname+firstname为c
fromemployees
Go----------注意as可用空格代替,就如firstnameb一样.
usenorthwind
selectlastnameasa,firstnameb,city,
‘我来补一列’asnokown------添加一列nokown并填充”我来补一列”
fromemployees
go
28.分组排列top限制返回到结果集中的行数
usenorthwind
selecttop5orderid,productid,quantity----查询前5个orderid的数据(只有5行,超过的并列一样的舍去)
--selecttop5withtiesorderid,productid,quantity---查询前5个orderid的数据(只要前5个orderid的全部列出来)
from[orderdetails]
--orderbyquantitydesc----排序(优先级最高,先做排序),将quantity排成降序
go---注意:
用withties时必须要排序(也就是必须要与orderby连用)
聚集(合)函数
29.Avg平均值
usenorthwind
selectavg(unitprice)--------求unitprice的平均值
fromproducts
go
30.count
usenorthwind
selectcount(*)-------count(*)统计表中有多少行
----selectcount(region)-------count(列名)统计列中非空的值行
fromemployees
go
31.max()/min()最大/最小
usenorthwind
selectmax(productid)--------求productid的最大值
--selectmix(productid)-------求productid的最小值
fromproducts
go
32.Sum()求和
usenorthwind
selectsum(productid)-----求productid的和
fromproducts
go
33.inster表名select------插入结果集
usenorthwind
insertcustomers
selectsubstring(firstname,1,3)+substring(lastname,1,2),lastname,firstname,title,address,city,region,postalcode,country,homephone,null
fromemployees------注意:
字符类型要一一对应,不足的用null补齐
go
34.groupby分组汇总排列
usenorthwind
selectproductid,sum(quantity)as'quantity的总和'
from[orderdetails]
whereproductid<10
groupbyproductid----分组汇总排列必须要有groupby
---orderbyproductid----可以和groupby连用,但要放在groupby下面
---havingsum(quantity)>=30-----having必须与groupby联用;
go---注意:
groupby与聚集函数连用,但子句不能包含聚集函数.
----------注意:
groupby,orderby,having连用时顺序为groupby,having,orderby-----having与where的区别在于having后面可以跟聚合函数,而where不能
35.compute[--by]生成统计栏
usenorthwind
selectorderid,productid,quantity
from[orderdetails]
----orderbyproductiddesc----对productid进行降序排列
computesum(quantity)
----computesum(quantity)byproductid----必须与orderby连用
go------将quantity的所有的值合计出来,分栏显示出来
36.向customers插入结果集到employees中
usenorthwind
insertcustomers
selectsubstring(firstname,1,3)+substring(lastname,1,2),
lastname,firstname,title,address,city,region,
postalcode,country,homephone,null---插入的列要与customers的数据类型一致,不够用null补齐
fromemployees
go----substring(取子符串,起始位,取几位)
37.select…into表名----将结果集生成新表(无日志操作)
usenorthwind
selectorderidasproducts,freightasprice,shipcityastax
into#pree---#pree代表临时表pree
fromorders
go
38.将上下两张表中两列的内容合并到一起
usenorthwind
selectemployeeid
fromemployees
union-----union消除重复值
----nuionall-----unionall不消除重复值
selectemployeeid----注意:
列名一定要相同
fromemployeeterritories
go
39.OSPL实用工具
在DOS命令行下输入:
osql-Uusernamepassword
-E本地登陆
表联接
联接查询
40.内联接innetjoin(交集)
usenorthwind
selectproductid,suppliers.supplierid,suppliers.fax-----suppliers.supplierid代表suppliers表中的supplierid
fromproductsinnerjoinsuppliers----innerjoin代表联接products和suppliers这两张表(inner可以省略不写)
onproducts.supplierid=suppliers.supplierid-----指定两张表中的supplierid要一样
wheresuppliers.faxisnotnull----指定suppliers中的fax不为空
go
41.外联接leftouterjoin(左外连接)/rightouterjoin(右外连接)/fullouterjoin(全外连接)
usepubs
selecta.au_fname,a.au_lname,p.pub_name
fromauthorsaleftouterjoinpublishersp--leftouter为左外连接(outer可以不写),包括满足连接条件的行外,还包括左表的所有行
----rightouterjoin----rightouter为右外连接,包括满足连接条件的行外,还包括右表的所有行;
----fullouterjoin----fullouter为全外连接,结果集中除了包括满足连接条件的行外,还包括两个表的所有行;
ona.city=p.city
Go注意:
只连接两个表,因为显示的全部信息,所以不与where连用
42.多表查询(联接)------用逗号相隔
usenorthwind
selectproductid,suppliers.supplierid,suppliers.fax
fromproducts,suppliers--------查询两张表,中间用逗号隔开
whereproducts.supplierid=suppliers.supplierid-----指定条件
Go-----注意:
select查询语句,不能算联接语句(不推荐)
43.crossjoin交叉连接(笛卡尔集)
usenorthwind
selectpanyname,panyname
fromsupplierscrossjoinshippers
go----也就是将panyname和panyname的所有能组合的全部排列出来
44.自联接(特殊的内联接)
usepubs
selectdistincta.type
fromtitlesajointitlesb------连接自己本身
ona.type=b.type
wherea.pub_id<>b.pub_id
go--------显示的是表中pub_id不同的type
45.子表查询
usenorthwind
selectt.orderid,t.customerid
from(selectorderid,customeridfromorders)ast
go---------也就是将括号里面的内容生成了一张新表,然后在新表中查询
46.子列查询
usepubs
selecttitle,price,
(selectavg(price)fromtitles)asaverage,
price-(selectavg(price)fromtitles)
asdifference
fromtitles
go------也就是将括号里面的内容生成一个新列
47.条件where子查询
usenorthwind
selectorderid,customerid
fromordersor1
where20<(selectquantityfrom[orderdetails]od
whereor1.orderid=od.orderidandod.productid=23)
go----查询的是orderdetails中的quantity>20并且orders和orderdetails两张表中的orderid一样并且orderdetails中的productid=23
48.条件Exist
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 编程
![提示](https://static.bdocx.com/images/bang_tan.gif)