小白学语句:SQL笔记

在SQL添加表Create Table Person2(ID int Not Null,Name nvarchar(50),Age int Null)
这里写图片描述
alter table dbo_Person1 ADD FSubCompany varchar(20);//添加分公司
alter table dbo_Person1 ADD FDepartment varchar(20);//添加部门
这里写图片描述
更新一个范围内的数据:

update dbo_Person1 set FSubCompany='beijing',FDepartment=N'开发部'where Name='马小虎'
update dbo_Person1 set FSubCompany='shanghai',FDepartment=N'数据部'where Name='王小二'
update dbo_Person1 set FSubCompany='beijing',FDepartment=N'开发部'where Name='王小白'

这里写图片描述
简单的数据检索
select * from dbo_Person1
这里写图片描述
使用where检索符合条件的数据:select FName from dbo_Person1 where FSalary<4500 //条件小于4500的
这里写图片描述

数据汇总
SQL聚合函数:MAX(最大值)、MIN(最小值)、AVG(平均值)、SUM(和)、COUNT(数量)
排序
select * from dbo_Person1
order by FSalary ASC;//升序

select * from dbo_Person1
order by FSalary DESC;//降序
这里写图片描述
通配符过使用LIKE
单字符戒备匹配的通配符为半角下划线”_”,它匹配单个出现的字符。以任意字符开头,剩余部分为“erry”:select * from dbo_Person1 where FName LIKE’_erry’
检索姓名中包含字母“小”的员工信息:select * from dbo_Person1 where Name LIKE’%小%’
多字符匹配的通配符为半角百分号“%”,它匹配任意次数(零或多个)出现的任意字符。“k%”匹配以“k”开头、任意长度的字符串。
select * from dbo_Person1 where Name like ‘王%’
这里写图片描述
空值处理
数据库中,一个列如果没有指定值,那么值就为null,这个null意思是“不知道”,比如select null+1结果就是null,因为“不知道”加1的结果还是“不知道”
SQL中使用is null、is not null进行空值判断:
select * from dbo_Person1 where FDepartment is null;
这里写图片描述
多值匹配
select * from dbo_Person1 where Age in(20,28)
这里写图片描述
范围值:
select * from dbo_Person1 where Age>=23 and Age<=27
这里写图片描述
分组
select Age,Count(*) from dbo_Person1
Group by Age//以年龄分组,算出每组的人数

select Age,AVG(FSalary) from dbo_Person1
Group by Age//以年龄分组,算出每组的平均工资
这里写图片描述
having语句
select Age,Count(*) from dbo_Person1
Group by Age
Having Count(*)>1//以年龄分组,算出每组的人数,取出人数大于1的组
这里写图片描述
去掉数据重复
select distinct FDepartment from dbo_Person1
distinct 是对整个结果集进行数据重复处理的,而不是针对每一个列,因此下面的语句并不会只保留FDepartment进行重复值处理:
select distinct FDepartment,FSubCompany from dbo_Person1
这里写图片描述
union
把两个结果结合起来,去掉重复数据
select Name,Age from dbo_Person1
union
select Name,Age from dbo_Person2

union all
把两个结果结合起来,不去掉重复数据

数字函数
ABS():求绝对值
Ceiling():舍入到最大整数。ceiling→天花板
Floor():舍入到最小整数。floor→地板
Round():四舍五入。舍入到“离我半径最近的数”round→”半径”

字符串
len():计算字符串长度
lower()、upper():转小写、大写
ltrim():字符串左侧的空格去掉
rtrim():字符串右侧的空格去掉
substring(string,start_position,length)
参数string为主字符串,start_position为子字符串在主字符串中的起始位置,length为子字符串的最大长度
select substring(‘abcdeef1111’,2,3)结果bcd

日期函数
getdate():取得当前日期时间
dateAdd(datepart,number,date),计算增加以后的日期,参数date为待计算的日期,参加number为增量,参数datepart为计量单位
dateAdd(day,3,date)为计算日期date的3天后的日期
dateAdd(month,-8,date)为计算日期date的8个月前的日期
dateDiff(datepart,startdate,enddate)计算两个日期之间的差额
统计不同工龄的员工的个数:
select dateDiff(year,FIndate,getdate()),count(*) from dbo_Person1
group by dateDiff(year,FIndate,getdate())

datepart(datepart,date)返回一个日期的特定部分
统计员工的入职年份个数:
select datepart(year,FInDate),count(*) from dbo_Person1
group by datepart(year,FInDate)
类型转换函数
cast(expression as date_type)
convert(date_type,expression)
right(FIdNumber,3)as 后三位,
cast(right(FIdNumber,3)as integer)as后三位的整数形式
cast(right(FIdNumber,3)as integer)+1 as后三位加1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值