`
Angelialily
  • 浏览: 241646 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

T-SQL查询语句大全

阅读更多
一、 1)建立数据库:
例:
create  database  student
on  primary
(
name=student_data,
filename=”c:\student_data.mdf”,
size=2mb,
filegrowth=1mb,
maxsize=20mb
)
log on
(
name=student_log,
filename=”c:\student_log.ldf”,
size=1mb,
filegrowth=10%,
maxsize=15mb
)

注:create:创建    database:数据库 student:学生(自己起的数据库名称)  primary:主要的  name:姓名 filename:文件路径 size:文件大小 filegrowth:文件增长 maxsize:文件最大存储容量 log:日志
2)修改已建好的数据库:
修改数据库建立时文件(主数据文件或日志文件)的大小,要更改文件最大值和文件增长速度,只需将size改为maxsize或filegrowth即可。
alter database student modify file
(
name='student_log',
size=4mb
)
注:alter:修改         modify:扩充
修改数据库,要增加数据库次要数据文件。
alter database student add file
(
name='student_data2',
filename="e:\student_data2.ndf",
size=1mb,
maxsize=10mb,
filegrowth=1mb
)
二、 配置数据库
(1) 为student数据库设置为“只读”属性
exec   sp_dboption  ‘student’,’read only’,’true’
(2) 为student数据库设置为“单用户”属性
exec  sp_dboption  ‘student’,’single  user’,’true’
(3) 为student数据库设置为“自动收缩”属性
exec  sp_dboption   ‘student’,’autoshrink’,’true’

注:如对设置属性进行删除,则将’true’改为’false’
(4) 手动式压缩数据库
  dbcc   shrinkdatabase  (student,10)
注:exec:执行配置 sp_dboption:存储
single  user:单用户 read  only:只读
autoshrink:自动压缩 dbcc:收缩数据库命令
shrinkdatabase:压缩数据库 student:数据库名
10:允许数据库有10%的未用空间
三、 删除数据库
drop   database   student
注:drop:删除
四、 创建用户定义数据类型
exec    sp_addtype     ci,’nvarchar(20)’,null
注:sp_addtype:新数据类型
        ci:新数据类型名称
五、 创建数据库表
use  student
create  table  student_inf
(
student_id     int    not   null,
student_name     nvarchar(15)    not   null,
student_sex     nvarchar(1)     not    null,
student_age    int    not   null  

注:use:使用(如果没有选择在哪个数据库里建表,则必须使用此语句) student_inf:数据表名 student_id:学号(列名1) int:数据类型1 not  null:非空 student_name:学员姓名(列名2) nvarchar(15):数据类型2 student_sex:学员性别(列名3) student_age:学员年龄(列名4)
六、 修改已建好的数据表
(1) 修改列的数据类型
   alter    table   student_inf   alter   column    student_name   nvarchar(10)  null
注:alter:修改 student_inf:表名 column:列 student_name:列名 nvarchar(10):数据类型 null:允许为空
(2) 删除一列内容:
   alter   table   student_inf    drop   column   student_sex
注:drop:删除 student_sex:所要删除的列名
(3) 增加一列内容:
   alter   table   student_inf   add   student_sex  nvarchar(1)      null
注:student_sex:列名 null:增加列名允许为空
七、 为了保证数据的完整性,需要添加的约束
(1) 实体完整性:
1) 主键:primary  key
在创建时加主键约束:
create  table  student_mark
(
student_id     int    not   null   primary  key,
computer_mark     nvarchar(15)    not   null,
math_mark     nvarchar(1)     not    null,
Chinese_mark    int    not   null  
)
注:student_mark:表名        computer_mark:计算机成绩
math_mark:数学成绩      Chinese_mark:语文成绩
在修改表时添加主键约束:
alter   table    student_inf   add    constraint   pk   primary   key  (student_id) 
注:add:加 constraint:约束
     pk:自己起的约束名称,方便于对约束进行删除
在修改表时删除主键约束:
alter   table    student_inf   drop   constraint   pk
2) 唯一约束:unique
在创建时加唯一约束:
create  table  student_mark
(
student_id     int    not   null   unique,
computer_mark     nvarchar(15)    not   null,
math_mark     nvarchar(1)     not    null,
Chinese_mark    int    not   null  
)

在修改表时添加唯一约束:
alter   table    student_inf   add    constraint   un   unique  (student_id)

在修改表时删除唯一约束:
alter   table    student_inf   drop   constraint   un

3) 标识列:identity(标识种子,标识增量)—从标识种子开始,每加一条记录就自增1,需在创建时加入,并可直接将此列定义为主键列。
create  table  student_mark
(
student_id     int    identity(1,1)  primary  key,
computer_mark     nvarchar(15)    not   null,
math_mark     nvarchar(1)     not    null,
Chinese_mark    int    not   null  
)
(2) 引用完整性
外键:foreign   key
在创建时加入外键:
create  table  student_mark
(
student_id     int    not   null   foreign  key    references    student_inf(student_id),
computer_mark     nvarchar(15)    not   null,
math_mark     nvarchar(1)     not    null,
Chinese_mark    int    not   null  
)
注:references:关系 student_inf:主键表 student_id:主键  列
在修改表时加入外键:
alter   table    student_mark   add    constraint   fk   foreign  key  (student_id)  references    student_inf(student_id)

在修改表时删除外键约束:
alter   table    student_mark   drop   constraint   fk
(3) 域完整性
1) default约束:当列值为空时,用default约束后面的值来代替空值

在建表时同时创建:
create  table  student_mark
(
student_id     int    not   null,  
computer_mark     nvarchar(15)    null      default     ‘unknow’,
math_mark     nvarchar(1)     not    null,
Chinese_mark    int    not   null  
)
注:unknow:不知道

在修改表时加入default约束:
alter   table    student_mark   add    constraint   de   default    ‘unknow’    for    computer_mark    


在修改表时删除default约束:
alter   table    student_mark   drop   constraint   de
2) check约束:用条件来约束本列数据
在建表时同时创建:
create  table  student_inf
(
student_id     int    not   null,
student_age    int    not   null       check(student_age>15  and  student_age <100  ) , 
student_name     nvarchar(15)    not   null,
student_sex     nvarchar(1)     not    null


在修改表时加入check约束:
alter   table    student_inf   add    constraint   ch   check(student_age>15  and  student_age <100  )
注:连接两个条用:and:并且     or:或

在修改表时删除default约束:
alter   table    student_mark   drop   constraint   ch
八、 删除数据库表
drop    table    student_inf
九、 SQL里的条件表达式和逻辑运算符:
运算符 含义
> 大于
< 小于
>= 大于等于
<= 小于等于
= 等于
! 非
<> 不等于
not 逻辑非:否定条件

and 逻辑与:连接两个条件且仅当两个条件都为真时返回 TRUE
or 逻辑或:连接两个条件,但只要其中任一个为真就返回 TRUE
使用方法:一般放于where子句里进行条件限制的筛选
例:
a) select   *    from    student_inf   where   student_id=1
b) select    student_name,student_sex,student_age    from   student_inf    where    student_age>15  and  student_age<20
注:select:查询显示
十、 通配符
图示:本博客不支持哦!
十一、向表中插入数据:
1)直接将值进行插入:
insert    into   student_mark (computer_mark,math_mark)
values  (89,86)
2)用其他表中的数值直接插入到另一张表里:
insert    into   student_mark (computer_mark,math_mark)
select  q,w    from    qwe
注:q:是表qwe的一列 w: 是表qwe的一列
         qwe:是表名
十二、更新数据行:
update  student_mark  set   computer_mark=computer_mark+2    where    student_id=3
十三、联接:是为了联接显示最终结果,并非为两张表设置主外键
(1) 内联接:inner join …  on …
筛选出两张表里的公共内容
select  *   from   student_inf    inner   join  student_mark   on    student_inf.student_id=student_mark.student_id
注:在查询结果窗口中显示两张表中的所有内容于一张联合表中。
(2) 外联接:
1) 左外联接:left   outer   join   …    on  …
以左表为主,显示与其相连的右表内容,若右表中此记录不存在则用null来代替:
select  *   from   student_inf   left   outer   join  student_mark   on    student_inf.student_id=student_mark.student_id
2) 右外联接:right   outer   join   …    on  …
以右表为主,显示与其相连的左表内容,若左表中此记录不存在则用null来代替:
select  *   from   student_inf   right   outer   join  student_mark   on    student_inf.student_id=student_mark.student_id
十四、删除数据
1) 删除某一行数据:
delete  from  student_mark  where  student_id=1
2) 删除表里的所有数据:
delete  from  student_mark
3) 删除表里的所有数据:
truncate   table   student_mark



附加:以下内容为附加内容,有精力的同学可以加以参考,不做要求
3) 完全外部联接:full  outer  join  …  on  …
将两张表中所有行显示出来,如果没有匹配的内容则用null来补充。
select  *   from   student_inf   full   outer   join  student_mark   on    student_inf.student_id=student_mark.student_id
(3) 自联接:本表与自身相连
        假设要显示在一张表里,学员math_mark成绩相等的的两个学员的学号和语文成绩。那么就讲这张表与自身相连所联接的列是math_mark,为了保证显示数据的不冗余,因此加了个条件student_mark.student_id< student_mark1.student_id
代码:
select   
student_mark.student_id, student_mark.chinese_mark, student_mark1.student_id, student_mark1.chinese_mark   from
student_mark   inner   join    student_mark    as  student_mark1     on     student_mark.math_mark= student_mark1.math_mark   and student_mark.student_id< student_mark1.student_id

(4) 交叉联接  :CROSS JOIN
在这类联接的结果集内,两个表中每两个可能成对的行占一行。例如,在pubs数据库表中,通过作者 CROSS JOIN 出版商输出的结果集内,每个可能的作者/出版商组合占一行。所得到的 SQL 可能象下面这样:
SELECT *
FROM  authors   CROSS   JOIN   publishers

附加内容结束
十五、查询语句:select
1) 查询全部行和列:
select  *  from   student_inf
2) 查询一张表里的某些列:
select   student_id,student_name,student_age   from   student_inf
3) 查询一张表里的某一行:
select   student_id,student_name   from   student_inf
where  student_id=3
十六、排序子句:order   by   …    desc        降序
       order   by   …       升序
SELECT student_id,computer_mark, math_mark    FROM student_mark   ORDER   BY   math_mark, student_id DESC
十七、在查询中使用常量和运算符
SELECT student_name +':'+ student_name+ '->' + student_name
FROM student_inf
注:select后的列与加入符号的数据类型必须匹配。
十八、as子句:为查询显示列起个列名
SELECT student_name +':'+ student_name+ '->' + student_name    as    name123
FROM student_inf
十九、top子句:返回数据行: top
1)限制返回数据行
SELECT   Top    3  student_id,student_name     From student_inf
2)限制返回行百分比
SELECT   Top   80    Percent   student_id,student_name     From student_inf
二十、聚合函数
1) SUM:求和函数
SELECT  SUM(math_mark)   As   Total
From   student_mark
2)AVG:平均值函数
SELECT  AVG (math_mark)   As  avg
From   student_mark
3)COUNT:统计个数
SELECT  COUNT (math_mark)   As  avg
From   student_mark
4)max:最大值
SELECT  max (math_mark)   As  avg
From   student_mark
5)min:   最小值
SELECT  min (math_mark)   As  avg
From   student_mark
二十一、分组子句:group   by   …
SELECT  count(math_mark)   as   [123]   FROM   student_mark    GROUP BY   math_mark
二十二、having子句:用于设置group   by子句的条件
SELECT  AVG(math_mark)   as   [123]   FROM   student_mark    where   student_id>3   GROUP BY   math_mark   having  AVG(math_mark)>70
二十三、其他模糊查询
1) Like运算符(之前已讲过)
2) In运算符:in()
只返回和in后()内的值相匹配的项
SELECT   student_name,student_age   FROM student_inf
WHERE   student_id   IN ('2', '4')
3)BETWEEN运算符:between  …    and    …
返回在between  …    and    …之间的数值项
SELECT   student_name,student_age   FROM student_inf
WHERE   student_id  between    1   and   4
4)IS NULL运算符:IS  NULL
返回为空值的内容项
SELECT   student_name,student_age   FROM student_inf
WHERE   student_name   is  null
分享到:
评论

相关推荐

    T-SQL常用语句大全

    ### T-SQL常用语句详解 #### 创建数据库(Create Database) 在T-SQL中,创建数据库是基础操作之一,用于初始化存储...这些基本的T-SQL语句涵盖了数据库管理的主要方面,熟练掌握它们对于数据库开发和维护至关重要。

    Microsoft SQL Server 2008技术内幕:T-SQL查询_源代码及附录.zip

    T-SQL允许创建存储过程,这是一种预编译的SQL语句集合,可提高性能并简化复杂的操作。触发器则是一种特殊类型的存储过程,当数据库中的特定事件(如INSERT、UPDATE或DELETE)发生时自动执行。 6. **游标**: 游标...

    Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码

    9. **动态SQL**:允许在运行时构建和执行SQL语句,提高了代码的灵活性,但需谨慎处理以防止SQL注入攻击。 10. **游标**:允许逐行处理查询结果,尽管通常不推荐在性能敏感的环境中使用,但在某些情况下(如迭代处理...

    T-SQL示例大全(全是T-SQL语句 )

    本压缩包“T-SQL示例大全”提供了丰富的T-SQL语句实例,旨在帮助用户深入理解和熟练运用T-SQL进行数据库操作。 一、T-SQL基础 T-SQL的基础包括数据类型、变量、常量、运算符以及流程控制语句。例如,数据类型包括...

    Microsoft SQL Server 2008技术内幕:T-SQL查询.pdf

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》是一本深入探讨SQL Server 2008中T-SQL(Transact-SQL)查询的权威指南。T-SQL是微软SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及...

    Microsoft SQL Server 2005技术内幕全套(三):T-SQL查询.part1

    《Microsoft SQL Server 2005技术内幕全套(三):T-SQL查询》是一部深入探讨SQL Server 2005数据库管理系统中Transact-SQL(T-SQL)查询技术的专业著作。本部分主要聚焦于如何高效、准确地在SQL Server 2005环境中...

    T-SQL 高级语句

    T-SQL,全称Transact-SQL,是SQL Server中扩展的SQL语言,它包含了大量高级语句,用于处理复杂的数据库操作。在这个话题中,我们将深入探讨四个关键的T-SQL概念:TOP子句、LIKE操作符、通配符以及IN操作符。 首先,...

    sql server 2005 技术内幕t-sql查询源码

    通过学习这本书,开发者可以掌握SQL Server 2005中T-SQL查询的精髓,从而编写出更高效、更稳定的数据库查询语句,进一步提升数据库应用的性能和可维护性。书中的实例代码和源码分析对于理解和应用这些知识至关重要,...

    Microsoft SQL Server 2008技术内幕:T-SQL查询

    本书全面深入地介绍了...阅读本书,可以充分地理解T-SQL语言和良好的编程实践,学会如何编写更加有效而强大的查询语句。, 本书适合有经验的程序员和DBA阅读,是在SQL Server 2008中编写和优化SQL查询的必备参考图书。

    T-SQL语法语句大全

    T-SQL,语句大全,涵盖了T-SQL的常用的语法,还有实例解释,非常不错的..........

    Sql2008技术内幕-T-Sql查询

    《SQL2008技术内幕——T-SQL查询》是一本深入探讨Microsoft SQL Server 2008数据库管理系统中T-SQL(Transact-SQL)查询的权威指南。T-SQL是SQL Server的核心语言,用于数据操作、存储过程编写、触发器定义以及...

    利用T-SQL语句实现数据库的备份与还原的功能

    在IT领域,特别是数据库管理与维护中,利用T-SQL语句进行数据库的备份与还原是一项至关重要的技能。本文将深入解析如何通过T-SQL语句实现这一功能,重点涵盖以下四个方面: ### 1. 获取SQL Server服务器上的默认...

    Inside Microsoft SQL Server 2008 T-SQL Programming.pdf

    - **SQL语句语法**:包括SELECT、INSERT、UPDATE、DELETE等常用语句的使用方法。 - **数据类型**:介绍了SQL Server支持的各种数据类型,如数值类型、字符类型、日期时间类型等。 - **变量与常量**:讲解如何定义...

    Microsoft SQL Server 2005技术内幕:T-SQL查询

    8. **游标和动态SQL**:游标允许逐行处理查询结果,而动态SQL则允许在运行时构建和执行SQL语句,这在某些复杂场景中非常有用。 9. **索引和查询优化**:介绍如何创建和管理索引以提高查询性能,以及如何使用查询...

    高级T-SQL语句

    对于初学者来说,掌握高级T-SQL语句能极大地提升数据库开发和管理的能力。本章将重点讨论两种重要的高级T-SQL语句:`CAST`和`CONVERT`,以及`PRINT`语句的使用。 **4.1 使用`CAST`和`CONVERT`** `CAST`和`CONVERT`...

    sql server 2012 T-SQl基础教程 源码和示例数据库

    本教程专注于Microsoft SQL Server 2012中的Transact-SQL(T-SQL)语言,这是SQL Server的主要查询语言,用于数据操作、查询、存储过程和数据库对象的编程。T-SQL是SQL Server开发者的核心技能,无论你是新手还是...

    SQLServer数据库管理常用的SQL和T-SQL语句

    SQL Server 数据库管理常用的 SQL 和 T-SQL 语句 SQL Server 是一个强大的关系数据库管理系统,提供了许多实用的 SQL 和 T-SQL 语句来管理和维护数据库。以下是 SQL Server 数据库管理常用的 SQL 和 T-SQL 语句: ...

    t-SQL语句速写程序

    1. **代码片段库**:预定义了常用的t-SQL语句模板,如SELECT、INSERT、UPDATE、DELETE,以及JOIN、GROUP BY、HAVING等复杂查询,用户只需输入关键字即可快速插入。 2. **智能提示与自动补全**:在编写代码时,程序...

    MicroSoft Sql Server2005:T-Sql查询

    T-SQL是SQL的扩展,它是SQL Server的标准查询语言,包含了SQL的全部功能,如SELECT、INSERT、UPDATE、DELETE等,同时还添加了流程控制语句、变量、函数等高级特性。在SQL Server 2005中,T-SQL是进行数据库交互的...

    T-SQL查询语句(一):单表查询

    从给定的部分内容来看,这段文字似乎是在详细解释T-SQL中的各种查询语句和操作。下面,我们将根据这些信息,深入解析与标题“T-SQL查询语句(一):单表查询”相关的关键知识点。 ### T-SQL查询基础 T-SQL(Transact...

Global site tag (gtag.js) - Google Analytics