002Sql Server 的SQL语句案例文档格式.docx
- 文档编号:17655797
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:24
- 大小:27.49KB
002Sql Server 的SQL语句案例文档格式.docx
《002Sql Server 的SQL语句案例文档格式.docx》由会员分享,可在线阅读,更多相关《002Sql Server 的SQL语句案例文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
Var:
Variable,可变的。
分类
备注和说明
类型
说明
二进制数据类型
存储非子符和文本的数据
Image
可用来存储图像
文本数据类型
字符数据包括任意字母、符号或数字字符的组合
Char
固定长度的非Unicode字符数据
Varchar
可变长度非Unicode数据
Nchar
固定长度的Unicode数据
Nvarchar
可变长度Unicode数据
Text
存储长文本信息(指针,2G)
Ntext
存储可变长度的长文本
日期和时间
日期和时间在单引号内输入
Datetime
数字数据
该数据仅包含数字,包括正数、负数以及分数
int
smallint
整数
float
real
数字
货币数据类型
用于十进制货币值
Money
Bit数据类型
表示是/否的数据
Bit
存储布尔数据类型
SQL语句入门
SQL主要分DDL(数据定义语言)和DML(数据操作语言)两类。
CreateTable、DropTable、AlterTable等属于DDL,Select、Insert、Update、Delete等属于DML。
创建表
CREATETABLET_Person(IdintNOTNULL,Namenvarchar(50),AgeintNULL)删除
删除数据:
DELETEFROMT_PersonwhereAge=20
删除表:
DroptableT_Person1
简单插入
INSERTINTOT_Person(Id,Name,Age)VALUES(1,'
Jim'
20)
更新
一列:
UPDATET_PersonSetAge=30
多列:
UPDATET_PersonSetAge=30,Name='
Jim2'
局部数据:
加where语句
样例代码:
CREATETABLET_Employee(FNumberVARCHAR(20),FNameVARCHAR(20),FAgeINT,FSalaryNUMERIC(10,2),PRIMARYKEY(FNumber));
INSERTINTOT_Employee(FNumber,FName,FAge,FSalary)VALUES('
DEV001'
'
Tom'
25,8300);
DEV002'
Jerry'
28,2300.80);
SALES001'
John'
23,5000);
SALES002'
Kerry'
28,6200);
SALES003'
Stone'
22,1200);
HR001'
Jane'
23,2200.88);
HR002'
Tina'
25,5200.36);
IT001'
Smith'
28,3900);
INSERTINTOT_Employee(FNumber,FAge,FSalary)
VALUES('
IT002'
27,2800);
SELECTFNumberAS编号,FNameAS姓名,FAgeAS年龄FROMT_Employee
数据汇总:
SQL聚合函数:
MAX(最大值)、MIN(最小值)、AVG(平均值)、SUM(和)、COUNT(数量)
selectcount(*)as记录总行数fromT_Employee;
selectmax(FSalary)as最大值fromT_Employee;
selectmin(FSalary)as最小值fromT_Employee;
selectavg(FSalary)as平均值fromT_Employee
selectsum(FAge)as总值fromT_Employee;
selectcount(*)as工资大于的总数fromT_Employee
whereFSalary>
=5000;
--大于岁的员工的最高工资
SELECTMAX(FSalary)FROMT_EmployeeWHEREFAge>
25
--最低工资和最高工资
SELECTMIN(FSalary)as最低工资,MAX(FSalary)as最高工资FROMT_Employee
数据排序
ORDERBY子句位于SELECT语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(从小到大排列,ASC)还是降序(从大到小排列,DESC)
select*fromT_Employee
orderbyFSalaryASC;
orderbyFSalaryDESC;
orderbyFAgeDESC;
--按照年龄从大到小排序,如果年龄相同则按照工资从大到小排序
orderbyFAgeDESC,FSalaryASC;
--ORDERBY子句要放到WHERE子句之后
SELECT*FROMT_EmployeeWHEREFAge>
23ORDERBYFAgeDESC,FSalaryDESC
通配符过滤通配符过滤关键字使用LIKE。
单字符匹配:
SELECT*FROMT_EmployeeWHEREFNameLIKE'
_erry'
多字符匹配:
%n%'
通配符
解释
示例
‘_’
一个字符
ALike'
C_'
%
任意长度的字符串
BLike'
CO_%'
[]
括号中所指定范围内的一个字符
CLike'
9W0[1-2]'
[^]
不在括号中所指定范围内的一个字符
DLike‘%[A-D][^1-2]'
空值处理
SQL中使用isnull、isnotnull来进行空值判断
SELECT*FROMT_EmployeeWHEREFNAMEisnull
SELECT*FROMT_EmployeeWHEREFNAMEisnotnull
多值匹配
--IN
SELECTFAge,FNumber,FNameFROMT_Employee
WHEREFAgeIN(23,25,28)
--判断
SELECT*FROMT_Employee
WHEREFAGE>
=23ANDFAGE<
=27
--betweenand
WHEREFAGEBETWEEN23AND27
数据分组
WHERE子句从数据源中去掉不符合其搜索条件的数据
GROUPBY子句搜集数据行到各个组中,统计函数为各个组计算统计值
--按照年龄进行分组统计各个年龄段的人数
SELECTFAgeas年龄,Count(*)as人数FROMT_EmployeeGROUPBYFage
没有出现在GROUPBY子句中的列是不能放到SELECT语句后的列名列表中的(聚合函数中除外)
--错误:
SELECTFAge,FSalaryFROMT_EmployeeGROUPBYFAge
--正确:
SELECTFAge,AVG(FSalary)as平均工资FROMT_EmployeeGROUPBYFAge
Having语句(分组后查询条件)
在Where中不能使用聚合函数,必须使用Having,Having要位于GroupBy之后:
SELECTFAge,COUNT(*)AS人数FROMT_Employee
GROUPBYFAge
HAVINGCOUNT(*)>
1
限制结果集行数
SELECTtop5*FROMT_EmployeeorderbyFSalaryDesc
--检索按照工资从高到低排序检索从第六名开始一共三个人的信息
SELECTtop3*FROMT_Employee
WHEREFNumberNOTIN(SELECTTOP5FNumberFROMT_EmployeeORDERBYFSalaryDESC)
ORDERBYFSalaryDESC
去掉数据重复
--样例
ALTERTABLET_EmployeeADDFSubCompanyVARCHAR(20);
ALTERTABLET_EmployeeADDFDepartmentVARCHAR(20);
UPDATET_EmployeeSETFSubCompany='
Beijing'
FDepartment='
Development'
WHEREFNumber='
;
ShenZhen'
HumanResource'
InfoTech'
Sales'
--查看
SELECT*FROMT_Employee
--去重
SELECTFDepartmentFROMT_Employee
SELECTDISTINCTFDepartmentFROMT_Employee
SELECTDISTINCTFDepartment,FSubCompany
FROMT_Employee
联合结果集
基本的原则:
每个结果集必须有相同的列数;
每个结果集的列必须类型相容。
CREATETABLET_TempEmployee(FIdCardNumberVARCHAR(20),FNameVARCHAR(20),FAgeINT,PRIMARYKEY(FIdCardNumber));
INSERTINTOT_TempEmployee(FIdCardNumber,FName,FAge)VALUES('
1234567890121'
Sarani'
33);
1234567890122'
26);
1234567890123'
Yalaha'
38);
1234567890124'
1234567890125'
Konkaya'
29);
1234567890126'
Fotifa'
46);
select*fromT_TempEmployee
--简单的结果集联合
SELECTFNumber,FName,FAgeFROMT_Employee
UNIONSELECTFIdCardNumber,FName,FAgeFROMT_TempEmployee
SELECTFNumber,FName,FAge,FDepartmentFROMT_Employee
UNIONSELECTFIdCardNumber,FName,FAge,'
临时工,无部门'
FROMT_TempEmployee
--UNION合并两个查询结果集,并且将其中完全重复的数据行合并为一条
SELECTFNameFROMT_Employee
UNION
SELECTFNameFROMT_TempEmployeeORDERBYFNameDESC
--如果不是确定要合并重复行,那么就用UNIONALL
SELECTFNameFROMT_Employee
UNIONALL
--要求查询员工的最低年龄和最高年龄,临时工和正式员工要分别查询
SELECT'
正式员工最高年龄'
MAX(FAge)FROMT_Employee
SELECT'
正式员工最低年龄'
MIN(FAge)FROMT_Employee
临时工最高年龄'
MAX(FAge)FROMT_TempEmployee
临时工最低年龄'
MIN(FAge)FROMT_TempEmployee
--查询每位正式员工的信息,包括工号、工资,并且在最后一行加上所有员工工资额合计。
SELECTFNumber,FSalaryFROMT_Employee
工资合计'
SUM(FSalary)FROMT_Employee
数字函数
ABS():
求绝对值。
CEILING():
舍入到最大整数。
3.33将被舍入为4、2.89将被舍入为3、-3.61将被舍入为-3。
Ceiling→天花板
FLOOR():
舍入到最小整数。
3.33将被舍入为3、2.89将被舍入为2、-3.61将被舍入为-4。
Floor→地板。
ROUND():
四舍五入。
舍入到“离我半径最近的数”。
Round→“半径”。
Round(3.1425,2)
CREATETABLET_Person(FIdNumberVARCHAR(20),
FNameVARCHAR(20),FBirthDayDATETIME,
FRegDayDATETIME,FWeightNUMERIC(10,2));
INSERTINTOT_Person(FIdNumber,FName,FBirthDay,FRegDay,FWeight)
VALUES('
123456789120'
1981-03-22'
1998-05-01'
56.67);
123456789121'
1987-01-18'
1999-08-21'
36.17);
123456789122'
Lily'
1987-11-08'
2001-09-18'
40.33);
123456789123'
Kelly'
1982-07-12'
2000-03-01'
46.23);
123456789124'
Sam'
1983-02-16'
48.68);
123456789125'
1984-08-07'
1999-03-01'
66.67);
123456789126'
1980-01-09'
2002-09-23'
51.28);
123456789127'
BillGates'
1972-07-18'
1995-06-19'
60.32);
123456789128'
1972-07-19'
-60.32);
select*fromT_Person
--求绝对值。
selectFWeight,ABS(FWeight)fromT_Person
--舍入到最大整数。
.33将被舍入为、.89将被舍入为、-3.61将被舍入为-3。
Ceiling→天花板
selectFWeight,CEILING(FWeight)fromT_Person
--舍入到最小整数。
.33将被舍入为、.89将被舍入为、-3.61将被舍入为-4。
Floor→地板。
selectFWeight,FLOOR(FWeight)fromT_Person
--四舍五入。
舍入到“离我半径最近的数”。
Round(3.1425,2)。
selectFWeight,Round(FWeight,3)fromT_Person
字符串函数
LEN():
计算字符串长度
LOWER()、UPPER():
转小写、大写
LTRIM():
字符串左侧的空格去掉
RTRIM():
字符串右侧的空格去掉
SUBSTRING(string,start_position,length)
--计算字符串长度
SELECTLEN('
sf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 002Sql Server 的SQL语句案例 002 Sql 语句 案例