--创建数据库

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 语句、的更多相关文章

  1. 监控 SQL Server (2005/2008) 的运行状况

    Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的 ...

  2. 转载--SQL Server 2005的XQuery介绍

    原文地址: http://bbs.51cto.com/thread-458009-1-1.html   引用: 摘要 本文介绍了SQL Server 2005能够支持的XQuery的各方面特性如FLW ...

  3. SQL SERVER 2005镜像配置(有无见证服务器都行)

    我用的是没有见证的,但找的文章里有镜像,所以都做一下补充,两个网址做的参考, 之所以在从他们那再补充一次是为了怕有一天他们的文章被删了我这还有个备用的,这两篇写的不错 其他的都不行 特别乱,这是找的最 ...

  4. 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) ) 案例介绍: 对一个数据 ...

  5. 如何转换SQL Server 2008数据库到SQL Server 2005

        背景介绍: 公司一套系统使用的是SQL SERVER 2008数据库,突然一天收到邮件,需要将这套系统部署到各个不同地方(海外)的工厂,需要在各个工厂部署该数据库,等我将准备工作做好,整理文档 ...

  6. SQL SERVER 2005/2008 中关于架构的理解(一)

    SQL SERVER 2005/2008 中关于架构的理解(一) 在一次的实际工作中碰到以下情况,在 SQL SERVER 2008中,新建了一个新用户去访问几张由其他用户创建的表,但是无法进行查询, ...

  7. sql server 2005导出数据到oracle

    一. 在sql server下处理需要导出的数据库 1. 执行以下sql,查出所有'float'类型的字段名,手动将float类型改为decimal(18,4). select 表名=d.name,字 ...

  8. (转载)SQL Server 2005 如何启用xp_cmdshell组件

    原文地址:http://www.cnblogs.com/atree/p/SQL_SERVER_xp_cmdshell.html [错误描述]: SQL Server阻止了对组件‘xp_cmdshell ...

  9. [SQL SERVER 2005]数据库差异备份及还原

    因为之前遇到还原差异备份,最开始遇到SQLServer报错:”无法还原日志备份或差异备份,因为没有文件可用于前滚“.查阅很多资料后,终于得到解决.收集整理成这篇随笔. 问题原因:出现这种错误绝大多数是 ...

随机推荐

  1. 第1节 IMPALA:2、架构介绍

    impala的架构以及查询计划: impalad :从节点 对应启动一个impala-server的进程 ,主要负责各种查询计划,官方建议与所有的datanode安装在同一台机器上面 impala-s ...

  2. 第2节 网站点击流项目(下):7、hive的级联求和

    一.hive级联求和的简单例子: create table t_salary_detail(username string,month string,salary int)row format del ...

  3. Oracle修改密码

    1. 登陆oracle sqlplus '/as sysdba' 2. 修改密码 ALTER USER 用户名IDENTIFIED BY 要修改的密码 ; 3.解锁 alter user 用户名 ac ...

  4. ROS常用库(三)API学习之常用common_msgs(上)

    一.概述 common_msgs包含其他ROS软件包广泛使用的消息.这些消息包括动作消息(actionlib_msgs),诊断消息(diagnostic_msgs),几何图元(geometry_msg ...

  5. Flutter Web环境搭建

    接上篇Flutter Windows下AndroidStudio环境搭建 1.https://github.com/flutter/flutter_web 下载放到本地路径下 2.系统Path增加(根 ...

  6. Day4 - M - Roads in Berland CodeForces - 25C

    There are n cities numbered from 1 to n in Berland. Some of them are connected by two-way roads. Eac ...

  7. 008.CI4框架CodeIgniter, Controller控制器传输参数到View视图

    01. 在CI4中输出VIEW视图,并且传入参数,代码如下: <?php namespace App\Controllers; class Home extends BaseController ...

  8. 《机学五》KNN算法及实例

    一.概述 [定义]如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 二.距离计算公式 两个样本的距离可以通过如下公式计算,又叫[欧式距 ...

  9. 吴裕雄--天生自然java开发常用类库学习笔记:Map接口使用的注意事项

    import java.util.HashMap ; import java.util.Map ; import java.util.Set ; import java.util.Iterator ; ...

  10. NFS挂载共享文件夹

    修改rcS启动脚本,使开发板初始化完成,自动挂载共享文件夹 修改开发板ip,使之与虚拟机处于同一网段(二者可以互ping)     挂载虚拟机的共享文件夹     rcS 1 ifconfig eth ...