回顾:
打开数据服务
net start mssqlserver
关闭数据库服务
net stop mssqlserver
新增数据:
insert into -- 新增到
Student -- 表
(Name,Age,Address,Gid) --数据的字段
values -- 默认
('张三',26,'广东韶关',1)--值
修改数据:
update --修改
Student
set Address = '湖南长沙' -- 修改字段
where Name='张三' -- 条件
删除数据:
delete
SQL Server查询
基本语法
select * from 表名 where 条件
查询所有
*
通配,查询所有字段
select * from 表名
示例
select * from Teacher
部分查询
select 字段名 from 表名
示例
select TeacherName,Sex,Birthday from Teacher
字段别名:
-- 直接申明
select TeacherName '姓名',Sex '性别',Birthday '生日' from Teacher
-- 使用 字段 as '别名'
select TeacherName as '姓名',Sex as '性别',Birthday as '生日' from Teacher
-- 使用 '别名'=字段
select '姓名'=TeacherName ,'性别'= Sex ,'生日'=Birthday from Teacher
条件查询
算数运算符
运算符 | 含义 |
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取模 |
-- 算数运算符
-- 加法
update Users set Age=Age+1 where Id=10002
update Users set Age+=1 where Id=10002
-- 减法
update Users set Age=Age-1 where Id=10011
update Users set Age-=1 where Id=10011
比较运算符
比较运算符 | 含义 |
= | 等于 |
< | 小于 |
> | 大于 |
>= | 大于等于 |
<= | 小于等于 |
<> | 不等于 |
!= | 不等于 |
!> | 不大于 |
!< | 不小于 |
示例:
-- 比较运算符
-- 查询年龄等于18的用户信息
select * from Users where Age=18
-- 查询年龄小于18的用户信息
select * from Users where Age<18
-- 查询年龄大于等于18的用户信息
-- 大于等于18 包含18
select * from Users where Age>=18
-- 查询年龄小于等于18的用户信息
-- 小于等于18 包含18
select * from Users where Age<=18
-- 查询年龄不等于18的用户信息
-- 不等于18的其他用户
select * from Users where Age<>18
select * from Users where Age!=18
-- 查询年龄不大于18的用户信息
-- 不大于18 = 小于等于18
select * from Users where Age!>18
-- 查询年龄不小于18的用户信息
-- 不小于18 = 大于等于18
select * from Users where Age!<18
逻辑运算符
运算符 | 含义 |
and | 并且-与 |
or | 或者-或 |
not | 取反-非 |
优先级:not>and>or
-- 逻辑运算符
-- 查询年龄大于18并且小于25的用户信息
select * from Users where Age>18 and Age<25
-- 查询年龄大于25或者小于18的用户信息
select * from Users where Age>25 or Age<18
-- 查询姓名不为空的用户信息
select * from Users where Name is not null
范围查询
between…and…
-- between...and...
-- 查询年龄在18到25之间的用户
-- 等同于 age>=18 and age <=25
select * from Users where Age between 18 and 25
in
-- in
-- 查询年龄在(18,29,30)的用户
select * from Users where Age in (18,29,30)
空值查询
查询一个字段的值是不是NULL,使用is
-- 查询姓名不为空的用户信息
select * from Users where Name is null
模糊查询
like操作符
like操作符用于where子句中搜索列的指定模式
如果要查找NickName中含有’蛋’的用户信息,就要使用Like关键字来搜索,SQL如下,这里的%%为通配符
select * from Users where NickName like '%蛋%'
通配符
- 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。
- SQL Server通配符有:
通配符 | 描述 |
% | 代替一个或多个字符 |
_ | 仅代替一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] | 不在字符列中的任何单一字符 |
使用%通配符
1、搜索昵称以’g’结尾的用户
--搜索昵称以'g'结尾的用户
select * from Users where NickName like '%g'
2、搜索昵称以’张’开头的用户
--搜索昵称以'张'开头的用户
select * from Users where NickName like '张%'
使用_通配符
_代表一个字符
-- 搜索除第一个字符之后为'蛋'的用户
select * from Users where NickName like '_蛋'
select * from Users where NickName like '_爱__'
[charlist]通配符
1、搜索昵称以J
、W
、K
开头的人
select * from Users where NickName like '[JWK]%'
等同于like 'J%' or like 'W%' or like 'K%'
[^charlist]与[]相反,不包含某些字符
排序查询
语法
select 字段 from 表名 order by 字段 asc/desc
1、升序asc
默认升序,可以省略不写
--年龄升序
select * from Users order by Age asc
--年龄升序,FaceId升序
--先根据年龄升序,如果一样则根据FaceId升序
select * from Users order by Age,FaceId
2、降序desc
--年龄降序
select * from Users order by Age desc
--年龄降序,FaceId降序
select * from Users order by Age desc,FaceId desc
获取指定数量数据
select top 数量 * from 表名
s order by Age asc
–年龄升序,FaceId升序
–先根据年龄升序,如果一样则根据FaceId升序
select * from Users order by Age,FaceId
2、降序`desc`
```mssql
--年龄降序
select * from Users order by Age desc
--年龄降序,FaceId降序
select * from Users order by Age desc,FaceId desc
获取指定数量数据
select top 数量 * from 表名