自己整理的常用SQL Server 2005 语句、
--创建数据库
create database 数据库
go
--打开数据库
use 数据库
--删除数据库
drop database 数据库
Go
--创建数据表
create table 数据表
(
列名1 数据类型1 限定条件(是否是主外键、是否为空),
列名2 数据类型2 限定条件(是否是主外键、是否为空)
)go
--删除数据表
drop table 数据表
--插入数据
--插入单行数据
insert into 表名 [(列名1,列名2 )] values (‘数据1’,’数据2’)
--一次插入多行数据 两个表都存在
insert into 表2 [(列名)] select 列名 from 表1
/*注:1、这样就可以将表1中的数据一次取出存储到表2了
2、语法中的表2必须事先存在,如果不存在,执行时会出现错误
3、查询出的字段数目、数据类型,字段顺序,与插入列保持一致*/
--一次插入多行数据 新表不存在,原始表存在
select 列名 into 新表 from 原始表
--一次插入多行数据 新表不存在,原始表存在 并且自动生成标识列
Select identity (数据类型,标识种子,标识增量) as 列名 into 新表 from 原始表
--使用union关键字插入多行数据
Insert [into] 表名 [列名]
select 数据 union
select 数据 union
select 数据
/*注:1、列名可以省略,如果省略了列名,那么数据中的个数,顺序,数据类型必须与表中字段顺序,数据类型保持一致
2、如果列名部分有默认约束列,不能使用default关键字设定默认值
--修改数据
update 表名 set 列名=值 [where 更新条件]
--表中该列的所有数据都更新
update 表名 set 列名=’要修改成的值’
--例,将表中id为2的人的年龄改为24
update 表名 set age=24 where id=2
--例 把图书表中“计算机”或者“经济管理”类的图书价格降低2元
update books set price=price-2 where CatagoryID=1 or Catagory=2
/*注:1、可以更新主键列数据,但应保证更新后的主键列数据不能出现重复信息,否则更新失败
2、可以更新外键列数据,但应保证新数据在主键表的中应事先存在*/
--删除数据
delete from 表名 [where 更新条件]
/*注:1、使用delete删除数据时,不能删除主键值被引用的数据行
2、使用delete语句时,一般都需要使用where子句限定条件,如果忘记写where条件,那么表中所有数据都将被删除,无法恢复。*/
truncate table 数据表
/*1、truncate table 语句相当于一个没有where子句的delete语句,但是truncate执行速度更快
2、truncate table 只删除表中的数据行,不会删除表结构及各种约束
3、truncate table 不能删除具有引用关系的数据表
--查询数据
Select [列名] from 表名
[where 查询条件表达式]
[order by 排序的列名 [ asc (升序) 或 desc (降序)]]
/* 1、[]代表可选的,<>代表必需的
2、如果有多个列名用逗号隔开
3、order by 是用于排序的,可以将查询出的数据按照order by 所指定的字段进行排序,排序时通过asc 或desc 指定升序或降序排列*/
--1、将表中的所有列查询出来,在列名处使用“*”,表示所有列
Select * from 表名
--2、使用where 过滤部分行数据,例如,查询city=北京的作者信息
Select name, email, age from authors where city=’北京’
--3、使用as子句将列转别名 除了使用as子句转别名,还可以使用“=” 例:
Select name as ‘姓名’ , email as ‘电子邮件’ , age as ‘年龄’ from authors
Select ‘姓名’ =name , 电子邮件 =email , 年龄 =age from authors
/*1、使用as转别名时,如果是中文别名时,可以不写引号
2、别名列应使用英文半角引号,否则将出现错误*/
4、使用“+”连接多个字段,合并成一列 例:
Select authorname + ‘&&&’+ city as 城市 from 表名
5、使用top关键字查询表中限定行数
Select top 5 * from 表名
Select top 30 percent * from 表名
6、在查询结构中使用常量列 有时需要在查询结果集中增加默认值列。
例如,查询作者姓名和满意度分值,要求满意度分值都是80分
Select authorname as 作者姓名 , 80 as 满意度 from 表名
7、使用distinct关键字屏蔽重复数据
Select distinct 列名 from 表名
8、使用is null 查询空数据 查询还没有填写过‘出生日期’的信息的作者
Select name, birthday, city from authors where birthday is null
9、将多个表的数据一并查出,并且以一个结果集的形式显示可以使用union联合查询,union写在每条查询语句的后面
--对查询的结果集进行排序
1、查询所有信息并按某一列排序 默认asc(升序)
Select * from 表名 order by 列名
2、查询单价在50元以上的图书信息,要求价格以8折显示,并按价格降序排列
Select bookname as 图书名,description as 描述, Unitprice * 0.8 as 单价 from books
Where Unitprice >50 order by Unitprice desc
3、查询结果可以按多列进行排序,并且每列都可以指定不同的排序方式。例:查询图书信息先按图示类别升序排,再按价格降序排列
Select bookname as 图书名, categoryID as 类别编号, Unitprice as 单价 from books
order by categoryID, Unitprice desc
--模糊查询
--使用like进行模糊查询
Select [列名] from 表名 where 列名 [not] like 字符串表达式
查询中间含有关键字的:
select * from 表 where 字段名 like '%关键字%'
第1个字符与关键字符合的:
select * from 表 where 字段名 like '关键字%'
第2个字符含有关键字的:
select * from 表 where 字段名 like '_关键字%'
第3个字符含有关键字的:
select * from 表 where 字段名 like '__关键字%'
--使用in在限定值内进行模糊查询
Select [列名] from 表名 where 列名 [not] in (常量列表) --常量列表中各常量值用逗号隔开
例如:查询居住地(不)在,北京,上海,西安,成都的作者
Select authorname,city from authors where city (not) in (‘北京’,‘上海’.‘西安’.‘成都’)
--使用between...and...语句在指定的范围内查询
Select [列名] from 表名 where 列名 [not] between 起始表达式 and 结束表达式
--常用的SQL内置函数
1,返回字符表达式中最左侧字符的ASCII代码值 select Ascii('a') --a:97,A:65
2,将整数ASCII代码转换为字符 select Char(97)--97:a,65:A
3,返回具有给定的整数代码的UNICODE字符 select Nchar(65)--A
4,返回表达第一个字符的UNICODE整数值 select Unicode('a')--97
5, 返回将大写字符转换为小字符的字符表达式 select Lower('ABCDEFG')--abcdefg
6, 返回将小写字符转换为大写字符的字符表达式 select Upper('a')--'A'
7,返回删除了前导空格之后字符表达式 select Ltrim(' abcdefg')--abcdefg
8, 返回截断了所有尾随空格之后的字符表达式 select Rtrim('abcd ')--abcd
9,返回字符表达式最左侧指定数目的字符 select Left('abcdefg',3)--abc
10, 返回字符表达式右侧指定数目的字符 select Right('abcd',3)--bcd
11, 以整数返回两个字符表达式的SOUNDEX值之差 select Difference('bet','bit')--3 www.2cto.com
12, 返回由四个字符表达的SOUNDEX代码 select Soundex('abcd')--A120
13, 返回给定字符串表达的字符数 select Len('abcdefg')--7
14,返回表达式中指定字符的开始位置 select Charindex('b','abcdefg',5)
15, 返回指定表达式中模式第一次出现的开始位置 select Patindex('%_cd%','abcdefg')--2
16, 按指定次数重复表达式 select Replicate('abc|',4)--abc|abc|abc|abc|
17, 返回由重复空格组成的字符串 select Space(10)--[ ]
18, 返回从默认表达转换而来的字符串 select Str(100)--[ 100]
19, 返回字符表达式的逆向表达式 select Reverse('abc')--cba
20, 删除指定长度的字符,并在指定的起点处插入另一组字符 select Stuff('abcdefg',2,4,'xxx')--axxxfg
21, 用第三个表达式替换第一个表达式中出现的第二个表达式 select Replace('abcdefg','cd','xxx')--abxxxefg
22, 返回为成为有效的SQL SERVER分隔标识符而添加了分隔符的UNICODE字符串 select Quotename('create table')
23, 返回字符表达式,二进制,文本表达式或图像表达的一部分 select Substring('abcdefg',2,3)--bcd
24,返回由数字数据转换而成的字符数据 select Str(14.4444,5,4) (输入float类型数据也可以是int 加小数点一共几位,取出的小数中保留几个小数位)
--几个聚合函数
--可以多个聚合函数一起使用,进行查询
--SUM,用于对表达式中的所有数值进行汇总求和
Select SUM(字段名) as 总分 from 表名
--Avg函数返回数据列的平均值,数据列中如果有null值,null值不包括在计算中
Select AVG(字段名) as 平均分 from 表名
--MAX函数返回一列中的最大值,null值不包括在计算中
Select MAX(字段名) as 最高积分 from 表名
--MIN函数返回一列中的最大值,null值不包括在计算中
Select MIN(字段名) as 最低积分 from 表名
/*注:max和min除了计算数值列,还可以用于计算字符型以及日期时间类型数据列*/ 例:
Select max(birthday) as 最大日期 from 表名
--Count 返回结果集的非空行数 Count(*)返回表中所有数据行的记录数 Count(列名)返回指定列非空值个数
Select count(*) as 个数 from 表名 where 限定条件
--分组统计
Select 字段列表 [聚合函数] from 表名 [where 条件] group by 字段列表
Select 字段1,字段2, [聚合函数] from 表名 group by 字段1,字段2 --按多列分组
--使用having子句对分组再次过滤
Select 字段列表 [聚合函数] from 表名 [where 条件] [ group by 字段列表]
[having 条件][order by 字段列表 asc/desc]
--约束
在SQL Server 2005中有6种约束:
主键约束(primary key constraint)、
惟一性约束(unique constraint)、
检查约束(check constraint)、
默认约束(default constraint)、
外部键约束(foreign key constraint)
空值(NULL)约束。
--单独添加约束
-----------alter table stuInfo --指定添加约束的表明
----------add constraint pk_stuNo primary key (stuNo) --添加主键约束
alter table stuInfo --指定表名
drop constraint pk_stuNo --指定删除的约束名 constraint 只是显示和隐式的区别
alter table stuInfo
---添加默认约束,如果地址不填写,则为地址不详--
add constraint DF_stuAddress default ('地址不详') for stuAddress
alter table stuInfo
---添加唯一约束,号码唯一---
add constraint uq_stuID unique (stuID)
alter table stuInfo
---添加检查约束,年龄在15到40之间---
add constraint ck_stuAge check (stuAge between 15 and 40)
alter table stuMarks
---建立外键约束,主表stuInfo和从表stuMarks建立关系,关联字段为stuNo---
add constraint fk_stuNo
foreign key(stuNo) references stuInfo(stuNo)
alter table stuMarks --指定表名
drop constraint fk_stuNo --指定删除的约束名 constraint 只是显示和隐式的区别,删除外键约束
--表中添加约束
id int primary key identity(11001,1),--编号,主键,自动增长
taccount varchar(50) not null unique,--教师工号 唯一约束
tDepartment int foreign key references t_department(id)--所属系别,外键,主表t_department(id)
Truenumber Int default(0) not null--实际选课人数 默认0
Age int check (Age between 15 and 40)--年龄限制,进行检查约束
自己整理的常用SQL Server 2005 语句、的更多相关文章
- 监控 SQL Server (2005/2008) 的运行状况
Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的 ...
- 转载--SQL Server 2005的XQuery介绍
原文地址: http://bbs.51cto.com/thread-458009-1-1.html 引用: 摘要 本文介绍了SQL Server 2005能够支持的XQuery的各方面特性如FLW ...
- SQL SERVER 2005镜像配置(有无见证服务器都行)
我用的是没有见证的,但找的文章里有镜像,所以都做一下补充,两个网址做的参考, 之所以在从他们那再补充一次是为了怕有一天他们的文章被删了我这还有个备用的,这两篇写的不错 其他的都不行 特别乱,这是找的最 ...
- SQL SERVER 2005删除维护作业报错:The DELETE statement conflicted with the REFERENCE constraint "FK_subplan_job_id"
案例环境: 数据库版本: Microsoft SQL Server 2005 (Microsoft SQL Server 2005 - 9.00.5000.00 (X64) ) 案例介绍: 对一个数据 ...
- 如何转换SQL Server 2008数据库到SQL Server 2005
背景介绍: 公司一套系统使用的是SQL SERVER 2008数据库,突然一天收到邮件,需要将这套系统部署到各个不同地方(海外)的工厂,需要在各个工厂部署该数据库,等我将准备工作做好,整理文档 ...
- SQL SERVER 2005/2008 中关于架构的理解(一)
SQL SERVER 2005/2008 中关于架构的理解(一) 在一次的实际工作中碰到以下情况,在 SQL SERVER 2008中,新建了一个新用户去访问几张由其他用户创建的表,但是无法进行查询, ...
- sql server 2005导出数据到oracle
一. 在sql server下处理需要导出的数据库 1. 执行以下sql,查出所有'float'类型的字段名,手动将float类型改为decimal(18,4). select 表名=d.name,字 ...
- (转载)SQL Server 2005 如何启用xp_cmdshell组件
原文地址:http://www.cnblogs.com/atree/p/SQL_SERVER_xp_cmdshell.html [错误描述]: SQL Server阻止了对组件‘xp_cmdshell ...
- [SQL SERVER 2005]数据库差异备份及还原
因为之前遇到还原差异备份,最开始遇到SQLServer报错:”无法还原日志备份或差异备份,因为没有文件可用于前滚“.查阅很多资料后,终于得到解决.收集整理成这篇随笔. 问题原因:出现这种错误绝大多数是 ...
随机推荐
- 17 MySQL的小技巧
1.正则表达式的使用 ^ 在字符串开始处进行匹配 $ 在字符串末尾处进行匹配 . 匹配任意单个字符,包括换行符 [...] 匹配出括号内的任意字符 [^...] 匹配不出括号内的任意字符 a* ...
- Beta阶段计划
Beta阶段计划 JuJu 冲刺时间:12月27日至1月5号(遇到节假日顺延) 人员: 陈灿: 项目经理 金华:负责算法优化与提升 婷婷:同上 恩升:绘图 胡凯:对比pytorch的basel ...
- oracle的存储过程和函数有什么区别?
Oracle中的函数与存储过程的区别: A:函数必须有返回值,而过程没有. B:函数可以单独执行.而过程必须通过execute执行. C:函数可以嵌入到SQL语句中执行.而过程不行. 其实我 ...
- XV6源代码阅读-文件系统
Exercise1 源代码阅读 文件系统部分 buf.h fcntl.h stat.h fs.h file.h ide.c bio.c log.c fs.c file.c sysfile.c exec ...
- 云时代架构阅读笔记十一——数据库SQL优化
网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充. 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 ...
- 百度小程序-接入自然搜索-API提交Url-c#开发
开发百度小程序后,接下来,人们最想做的是让百度更多的录入自家内容.因为小程序资源被索引后,才可能在搜索结果中展现. 百度也提供了小程序的自然搜索提交入口.一共有两种方式: 第一种是用已有的H5网站资源 ...
- C++ 语言程序设计(清华大学)1
1.回文数字判断方法(逆过来数值相等):y=y*10+x%10; x /= 10; return(x==y) 2.int rand(void)函数,所需头文件<cstdlib> ,功能是求 ...
- 偶然在博客中见对百度一个面试题的探讨,写些自己的看法以及指出探讨中不对的观点:百度面试题:求绝对值最小的数 有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。
今天申请了博客园账号,在下班后阅览博客时发现了一个关于百度面试题探讨的博客(其实是个很基础的问题),此博客url为:http://www.blogjava.net/nokiaguy/archive/2 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-music
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- java中关键字super
super关键字的作用 java中的super关键字是一个引用变量,用于引用父类对象.关键字“super”以继承的概念出现在类中. 主要用于以下情况:1.调用父类的方法 2.调用父类的变量 3. ...