黑马程序员_SQL Server语法

 一、SQL Server常用语句

 1 创建数据库
 2 create database myDataBase 
 3 on
 4     (
 5         --数据文件存放的地方--
 6         name = 'myDataBase.mdf',
 7         filename = 'D:\db\myDataBase.mdf',
 8         size = 3mb,
 9         filegrowth = 1mb
10     )
11 log on 
12     (
13         --日志文件存放的地方--
14         name='myDataBase_log.ldf',
15         filename='D:\db\myDataBase_log.ldf',
16         size = 3mb,
17         filegrowth = 10%
18     )
 1 创建表    
 2 use myDataBase
 3 go
 4 create table TBlStudent
 5     (
 6         --identity(1,1)表示以1为种子,以1为自动增长的跨度。--
 7         --primary key表示这个是主键(默认表示不允许为空,不允许重复。)--
 8         Fid        int        identity(1,1)    primary key,
 9         FName    nvarchar(10),
10         FSex    bit,
11         FAge    int
12     )
 1 常用命令
 2 alter table 表名 add constraint 字段名 约束类型与条件          添加约束        
 3 alter table 表名 drop constraint 约束名                      删除约束
 4 alter table 表名 drop column 列名                           删除一列
 5 alter table 表名 add 列名 类型                               增加一列
 6 alter table 表名 alter column 列名 类型                      修改数据类型
 7 insert into 表名(字段名) values(值)                          插入数据
 8 insert into 表名 values(值)                                 依次插入所有字段数据
 9 print 字符串                                                消息框输出字符串
10 select getdate()                                           获取当前时间
11 select 1+1                                                 语句计算结果
12 select * from 表名                                         检索所有字段
13 select 字段列表 from 表名                                   检索指定字段
14 select * from 表名 where 条件                               条件检索字段
15 select * from 表名 order by 字段 asc(升序)/desc(降序)        排序
16 select top 3 * from 表名 order by 字段 asc                  按数量返回指定数据
17 select top 5 percent * from 表名                           按百分比返回指定数据
18 select * into 新表名 from 源表名                            备份表(不会备份约束)
19 select * into 新表名 from 源表名 where条件                   条件备份表
20 select distinct * from 表名                                去重复显示数据
21 select distinct(需要去重字段),其他字段 from 表名              字段去重复显示
22 updata 表名 set 字段名=值 where条件                          条件修改数据
23 updata 表名 set 字段1=值1,字段2=值2 where条件                条件修改多个值
24 updata 表名 set 字段=字段+值 where条件                       条件追加值
25 drop database 数据库名                                      删除数据库
26 drop table 表名                                            删除一张表
27 delete from 表名                                           删除表中所有数据
28 delete from 表名 where 条件                                 条件删除一条数据
29 not[] > and[] > or[] ,<>!=,<,<=,>,>=,=              条件运算符

二、常用约束

常用约束
约束名缩写作用演示
主键约束PK控制字段内容不能重复,主键在表中只允许出现一个。Fid int identity(1,1) primary key
非空约束 控制字段内容不能为空(NULL)。FAge int not null
唯一约束UQ控制字段内容不能重复,一个表可以有多个。FWeiYi int unique
默认约束DF设置新记录的默认值。FMoRen nvarchar(10) default('默认值')
检查约束CK控制字段的值范围。FSex nvarchar(1) check(FSex='男' or FSex='女')
外键约束FK建立两个表之间的数据链接。foreign key(FWaiJian) references MyAddress(Fid)

三、聚合函数

聚合函数(是用来求值的)
max最大值select max(english) from dbo.ScoreShiWan
min最小值select min(ZhongHe) from dbo.ScoreShiWan
avg平均值select ave(FAge) from dbo.StudentShiWan
sum求和select sum(english)/100000 from dbo.ScoreShiWan
count数量

select count(*) from TT /select count(FAge) from TT
计算时NULL不是最大,也不是最小,和NULL计算结果也是NULL。

四、条件查询

条件查询
运算符 
between ... and ...在...和...之间,包含两端。
like模糊查询运算符:像...
not like模糊查询运算符:不像...
通配符 
%匹配任意字符任意次数。
_(下划线)匹配任意字符一次。
[]匹配一个字符,且必须是[]范围内的。
^
1 条件查询演示
2 select * from dbo.StudentShiWan where FName like '李%'                所有姓李的同学。
3 select * from dbo.StudentShiWan where FName like '[李王]%'            所有姓李、王的同学。
4 select * from dbo.StudentShiWan where FName not like '[李王]%'        所有不姓李,也不姓王的同学。
5 select * from dbo.StudentShiWan where FName like '[^李王]%'            所有不姓李,也不姓王的同学。
6 select * from dbo.StudentShiWan where FName like '[_]绍辉'            所有以绍辉结尾的同学。

五、空值处理

1.查询所有生日为NULL的姓名,select FName from T_Student Fbirthday is null

2.判断NULL只能使用 is 或 is not 。is null和 is not null

3.函数isnull(字段,替换值)。查询时为空值的字段显示处理。select isnull(字段,123) from 表名

4.空字符串与NULL含义不同,空字符串依旧有内容。

5.空值也可使用len()处理。

1 空值处理演示
2 select * from dbo.StudentShiWan where FAge is not null                所有年龄不为空的同学。
3 select Fid,FName,isnull(FAge,100),FSex from TT                        所有年龄为空的用100替换。

六、数据排序

1.如果有where筛选,order总放在后面

2.多列排序(从左到右)select * from 表名 order by 字段1[desc],字段2[desc],字段3[desc]

3.datalength()系统函数,计算字节数。len()函数,计算字符数。

1 数据排序演示
2 1.select top 3 * from ScoreShiWan order by English asc
3 2.select datalength('我是一个汉字')
4 3.select len('我是一个汉字')

七、数据分组(order by 与having)

1.select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息。

2.在查询语句中使用了group by 子句后,能只select聚合函数与分组的字段。

3.查询列中使用聚合函数后,不允许出现除分组列外的其他列。

4.having是group by 的条件对分组后的数据进行筛选。(与where类似,都是筛选,只不过having是用来筛选分组后的组的。)

5.在where中不能使用聚合函数,必须使用having,having要位于group by 之后。

6.注意having中不能使用未参与分组的列,having不能替代where。作用不一样,having是对组进行过滤。

7.where与having都是进行筛选,但是where在select前,having在select后。

1 数据分组演示
2 1.select FSex from T_Student group by FSex
3 2.select FClass,count(*) as 班级总人数 from T_Student group by FClass
4 3.select FClass,count(*) as 班级人数 from T_Student group by FClass having count(*)>3
5 4.select Math,English from dbo.ScoreShiWan group by English
6 5.select FName,FGender from dbo.StudentShiWan group by FName,FGender
7 6.select count(*),FAddress from TT group by FAddress
8 7.select count(*),FAddress from TT group by FAddress having count(*)<3  //人数小于3的是哪些,如果有where,先筛选where,再select得到结果

八、联合结果集

1.union就是将多个结果集合并成一个结果集。查询语句1 union 查询语句2

2.union会自动合并重复的数据。

3.union all 会保留重复数据,一般都是使用union all,效率会高点。

4.联合需要注意类型一致。cast()函数可以实现数据的类型转换。

转载于:https://www.cnblogs.com/dlwcg/p/3617649.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值