--查询数据行语法-- select 列名 from 表名 where+条件表达式 where条件表达式 此句为限定条件 可省略select*from Stuinfo;-- *代表通配符即所有数据select Stunum from Stuinfo;select Stusex from Stuinfo where Stusex='男';--查询指定列数据-- select (指定列名) 列名1,列名2 from 表名 where+条件表达式 select Stunum,Stusex from Stuinfo where Stusex='男';--查询自动排序指定列数据-- select 列名 from 表名 where+条件表达式 order by 排序的列名(ASC升序/DESC降序)select*from useinfo orderby beginday ASC;--自动拼接指定列数据 +连接的数据类型必须兼容才能连接在一起-- select 列名 = 列名1 + '-' +列名2 from 表名-- select 列名 = 列名1 + '-' +列名2 from 表名select 学生信息 = stuname +'-'+stuzz from Stuinfo
--筛选查询 select top3 列名 from 表名 //这里的top为关键字 前三行selecttop20percent 列名 from 表面 //这里为百分比--模糊查询 like 为关键字 后面跟的%为模糊作用即后面不管是什么都选定--1.获取张字开头员工的所有信息select*from useinfo where name like'张%'select*from useinfo where name like'%艺%'--名字中含有艺的员工--2.查询日期在某个范围内的数据 between day1 and day2 day2-day1之间的select*from useinfo where birth between'1999-01-01'and'2000-12-31'--3.查询地址在青岛、东北、河南员工的信息select*from useinfo where address in('青岛','东北','河南')--重点在in--插入数据行语法--insert into 表名 (列名)values(值列表) insertinto Stuinfo(Stunum,Stuname,Stusex)values(1,'李四','男');insertinto Stuinfo(Stunum,Stusex,Stuname)values(2,'男','张三');insert Stuinfo values(3,'王二','男');--省略into 必须按建表的顺序 插入数据--插入多行数据--insert into <表名>(列名)--select <列名> union--select <列名> union--select <列名> union--select <列名> 最后一个去掉union!!!!insertinto Stuinfo(Stunum,Stuname,Stusex)select4,'奥里给','女'unionselect5,'王五','男'--使用updata更新数据行--updata 表名 set 列名 = 更新值 [where 更新条件]update Stuinfo set Stusex ='男'where Stuname='奥里给'--使用updata更新多列--updata 表名 set 列名 = 更新值,列名 = 更新值,列名 = 更新值 [where 更新条件]update Stuinfo set Stuname ='奥利奥',Stusex='女'where Stunum=1
连接查询
use Myfirst
go
createtable department --部门表(
depid intnotnullprimarykeyidentity(1,1),
depname nvarchar(50)notnull)createtable useinfo --员工表(
userid intnotnullprimarykeyidentity(1,1),
username nvarchar(50)notnull,
depid intnotnullreferences department(depid),
beginday datetime,
userage intnotnull)insert department values('开发部')insert department values('销售部')insert department values('行政部')insert useinfo values('张三',1,'2021-03-30',18)insert useinfo values('王二',1,'2021-03-30',18)insert useinfo values('李四',2,'2021-03-30',18)select*from department
select*from useinfo
--内连接!!!--select 列名 --from 表1--inner join 表2 on 表1和表2主外键关系--inner join 表3 on (主外键关系)select u.username as 员工姓名,d.depname as 部门名称,u.beginday as 入职日期,u.userage as 员工年龄
from department d
innerjoin useinfo u on d.depid=u.depid
--左连接,以显示主表数据为主,分两钟情况--1.有关联数据的从表数据,会匹配主表显示数据--2.无匹配关联数据的主表数据,自动填充null字段--select 字段--from 表1--left join 表2--on 表1和表2之间的主外键关系select u.username as 员工姓名,d.depname as 部门名称,u.beginday as 入职日期,u.userage as 员工年龄
from department d
leftjoin useinfo u
on d.depid = u.depid
集合关系
--1.两个select查询中间加一个 union取并集(自带distinct--去掉重复) union all(不去重复) A∪B--2.intersect 交集 A∩B--3.except减集 即集合中作减运算 A-B