什么是Transact-SQL?
Transact-SQL(又称 T-SQL),是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 实现,与 Oracle 的 PL/SQL 性质相近(不只是实现 ANSI SQL,也为自身数据库系统的特性提供实现支持),在 Microsoft SQL Server 和 Sybase Adaptive Server 中仍然被使用为核心的查询语言。
什么是查询?

怎么查询?

- 既然查询得到的“结果集”的结构类似于一张表,那么可以在“结果集”上继续进行查询吗?
查询

查询语法
SELECT <列名>
FROM <表名>
[WHERE <查询条件表达式>]
[ORDER BY <排序的列名>[ASC或DESC]]

数据查询基础例子
--1、查询表中所有数据
select * from Students1
select studentid,studentname,studentsex,studentage,studentheight,
studentbloodtype,studentbirthday
from Students1
--2、查询某几列
select studentid,studentname,studentsex from Students1
--3、列名起别名
--3.1 方法一:as
select studentid 学号,studentname 姓名,studentsex 性别 from Students1
select studentid as 学号,studentname as 姓名,studentsex as 性别 from Students1
--3.2 方法二:=
select 学号=studentid,姓名=studentname from students1
select '学号'=studentid,'姓名'=studentname from students1
--4、按条件查询
select * from students1 where studentSex='男'
select * from students1 where studentage>1
select * from students1 where studentSex='男' and studentage>1
select * from students1 where studentId=10000 or
studentId=10002 or studentId=10003
select * from students1 where studentId in(10000,10002,10003)
select * from score where score>=60
-- 5.查询列值为空或者不为空的记录(不能使用=)
-- 错误
select * from students1 where studentAge=null
-- 正确
select * from students1 where studentAge is null
select * from students1 where studentAge is not null
--6、排序查询
-- 6.1 单列排列
select * from students1 order by studentid asc
select * from students1 order by studentid desc
select * from students1 where studentsex='男'
order by studentid desc
select * from score
select * from score order by score desc
--6.2按照多列排序(先统一按照order by后面的第一列排序,如果排序中出现
--相同值的才会按照后面的列继续排序)
select * from score order by score desc,id asc
create table foreigners
(
id int identity(1,1) primary key,
firstname varchar(20),
lastname varchar(20)
)
select id as 序号,lastname+'·'+firstname as 姓名
from foreigners
-- 7.返回限定行数(top n)
select top 5 * from students1
select top 30 percent * from students1
-- 返回后5行
select top 5 * from students1 order by studentid desc
-- SQL Server中常用的函数
-- 1.字符串函数
select CHARINDEX('S','SQLServer')
select len('1232435435')
--check (len(pwd)>=6 && len(pwd)<=16)
select len('你好啊')
select DATALENGTH('abc你好啊')
select UPPER('asfdsdfdsfds')
select * from tb1
select tb1_1,UPPER(tb1_2) from tb1
select LOWER('SDsafdssdfSfd')
select ' sdfdsffdsfdsfds '
select LTRIM(' sdfdsffdsfdsfds ')
select RTRIM(' sdfdsffdsfdsfds ')
select RIGHT('SQL Server',6)
select LEFT('SQL Server',3)
select STUFF('SQL Server',3,2,'ABCD')
select REPLACE('SQL Server','SQL','MySQL')
--2、日期函数
select GETDATE() --2018-11-29 11:34:19.000
select DATEADD(mm,2,GETDATE())--2019-01-29 11:36:09.280
select DATEADD(DD,7,GETDATE())--2018-12-06 11:37:11.850
select DATEADD(DD,-3,GETDATE())--2018-11-26 11:37:49.760
select DATEDIFF(dd,'1991/10/01',GETDATE())
select dateName(dw,GETDATE())
select dateName(dd,GETDATE())
select dateName(dy,GETDATE())--333
select DATEPART(dw,GETDATE())
-- 3.数学函数
select ceiling(12.345)
select ceiling(12.0000001)
select ceiling(12.000000)
select FLOOR(12.345)
select FLOOR(12.999999)
select ROUND(12.456,2)
select ROUND(12.556,2)
select POWER(3,3)
select SQRT(81)
-- 4、系统函数
select CONVERT(int,'12345')
select CURRENT_USER --dbo
select HOST_NAME()
select SYSTEM_USER
select USER_NAME()
--5、聚合函数(统计函数)
select * from students1
select count(studentid) from students1
select count(*) from students1
select * from score
select sum(score) from score
select avg(score) from score
select max(score) from score
select min(score) from score
select COUNT(*) as 总人数,sum(score) as 总分,
avg(score) as 平均分,max(score) as 最高分,
min(score) as 最低分 from score
请关注我的公众号,简书号


网友评论