SQL Server查询准备数据库和数据,并进行简单查询
来源:互联网 发布:淘宝文案的标题怎么写 编辑:程序博客网 时间:2024/05/17 02:25
1:创建数据库表:仓库
create table 仓库( 仓库ID int identity(1, 1) primary key, 仓库号 varchar(50) unique, 城市 varchar(50) default '青岛', 面积 int default 800 check(面积 >= 800 and 面积 <=1800), 创建时间 datetime)insert into 仓库(仓库号, 城市, 面积, 创建时间) values('wh1', '北京', 900, '2003-04-02')insert into 仓库(仓库号, 城市, 面积, 创建时间) values('wh2', null, 600, '2003-04-09')insert into 仓库(仓库号, 城市, 面积, 创建时间) values('wh3', '上海', 1203, '2003-05-02')insert into 仓库(仓库号, 城市, 面积, 创建时间) values('wh4', '北京', 1000, '2004-04-05')insert into 仓库(仓库号, 城市, 面积, 创建时间) values('wh5', '济南', 900, '2004-05-05')
2:创建数据库表:职工
create table 职工( 职工ID int identity(1, 1) primary key, 职工号 varchar(50) unique, 仓库号 varchar(50) references 仓库(仓库号), 姓名 varchar(50) not null, 性别 varchar(10) check(性别='女' or 性别='男') default '男', 工资 int)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg1', 'wh1', '刘刚', '女', 1250)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg2', 'wh1', '林安平', null, 1310)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg3', 'wh3', '张可', '女', 2050)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg4', 'wh1', '吴平台', '男', 1850)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg5', 'wh3', '王峰', '男', 1962)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg6', 'wh3', '吴艳萍', '女', 1830)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg7', 'wh4', '张亮', '男', 1850)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg8', 'wh1', '刘或生', '男', 1750)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg9', 'wh3', '王静', '女', 1250)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg10', 'wh4', '李明', '男', 1850)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg11', 'wh1', '潘萍', '女', 1550)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg12', 'wh3', '李宁', '男', 2000)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg13', 'wh4', '吴忠诚', '男', 2900)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg14', 'wh1', '周围', '女', 2509)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg15', 'wh3', '林林', '男', 10000)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg16', 'wh4', '王东', '男', 2598)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg17', 'wh1', '吴生亮', '男', 1850)insert into 职工(职工号, 仓库号, 姓名, 性别, 工资) values('zg18', 'wh3', '王平峰', '男', 1962)
3:创建供应商表
create table 供应商( 供应商ID int identity(1, 1) primary key, 供应商号 varchar(50) unique, 供应商名 varchar(50), 城市 varchar(50), 联系方式 varchar(50), 电子邮件 varchar(100) check(电子邮件 like '%@%.%') default 'capinfotech@163.com')insert into 供应商(供应商号, 供应商名, 城市, 联系方式, 电子邮件) values('s1', '青岛三元电子厂', '青岛', '0532-8369000', 'test1@163.com')insert into 供应商(供应商号, 供应商名, 城市, 联系方式, 电子邮件) values('s2', '济南轻工业集团', '济南', '0531-8369001', 'test1@163.com')insert into 供应商(供应商号, 供应商名, 城市, 联系方式, 电子邮件) values('s3', '济南电子元件公司', '济南', '0531-8369002', 'test1@163.com')insert into 供应商(供应商号, 供应商名, 城市, 联系方式, 电子邮件) values('s4', '上海天桥厂', '上海', '0531-8369003', 'test1@163.com')insert into 供应商(供应商号, 供应商名, 城市, 联系方式, 电子邮件) values('s5', '青岛天桥厂', '青岛', '0531-8369004', 'test1@163.com')
4:创建订购单表
create table 订购单( 订购单ID int identity(1, 1) primary key, 供应商号 varchar(50) references 供应商(供应商号), 职工号 varchar(50) references 职工(职工号), 订购单号 varchar(50) unique, 订购日期 datetime, 金额 int)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s5', 'zg1', 'or1', '2003-09-02', 5000)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s1', 'zg2', 'or2', '2004-09-03', 8600)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s1', 'zg1', 'or3', '2003-09-02', 12000)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s5', 'zg2', 'or4', '2004-09-02', 5000)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s5', 'zg1', 'or5', '2005-09-02', 16000)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s3', 'zg11', 'or6', '2003-09-02', 15000)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s4', 'zg13', 'or7', '2004-09-02', 6000)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s1', 'zg15', 'or8', '2005-09-02', 7999)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s5', 'zg4', 'or9', '2003-09-02', 8600)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s2', 'zg8', 'or10', '2004-09-02', 9000)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s4', 'zg8', 'or11', '2005-09-02', 9700)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s2', 'zg10', 'or12', '2003-09-02', 6500)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s5', 'zg9', 'or13', '2004-09-02', 9790)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s2', 'zg9', 'or14', '2005-09-02', 16009)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s4', 'zg7', 'or15', '2003-09-02', 8120)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s2', 'zg18', 'or16', '2004-09-02', 9120)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s5', 'zg5', 'or17', '2005-09-02', 9500)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s2', 'zg5', 'or18', '2003-09-02', 9600)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s4', 'zg5', 'or19', '2004-09-02', 9700)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s2', 'zg15', 'or20', '2005-09-02', 8800)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s5', 'zg16', 'or21', '2003-09-02', 12000)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s2', 'zg16', 'or22', '2004-09-02', 12500)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s4', 'zg17', 'or23', '2005-09-02', 13000)insert into 订购单(供应商号, 职工号, 订购单号, 订购日期, 金额) values('s2', 'zg18', 'or24', '2003-09-02', 13500)
5:建立基本的查询
--select 城市 from 仓库--select 城市,面积 from 仓库--select 姓名,工资, 工资*0.08 as '奖金' from 职工select 姓名,工资,(CAST(工资*0.08 as decimal(18,2))) as '奖金' from 职工 --定义奖金小数点之后的位数
select 姓名, 工资, 工资*5.0/1000 as 代扣税, 工资*0.08 as 奖金, 工资-(工资*5.0/1000) + (工资*0.08) as 应发工资 from 职工
可以使用cast为应发工资指定小数点的位数:
select 姓名, 工资, 工资*5.0/1000 as 代扣税, 工资*0.08 as 奖金, cast(工资-(工资*5.0/1000) + (工资*0.08) as decimal(20, 2)) as 应发工资 from 职工
使用case when end显示评语信息
select 姓名, 工资, 职工评语= case when 工资>2000 then '优秀' when 工资>=1800 and 工资<=2000 then '优良' when 工资>=1500 and 工资<1800 then '一般' when 工资<1500 then '差' endfrom 职工
连接列值,由于工资字段是数值型的,无法与字符串直接连接,要把该字段类型转换为字符串类型,可以使用cast函数转换
select 姓名 + '的工资是:' + CAST(工资 as varchar(10)) as 工资说明 from 职工
select 姓名 + '的评语是:' + ( case when 工资>2000 then '优秀' when 工资>=1800 and 工资<=2000 then '优良' when 工资>=1500 and 工资<1800 then '一般' when 工资<1500 then '差' end ) as 职工评语说明 from 职工
效果图:
--select * from 职工 where 姓名='林安平'--select * from 订购单 where 职工号 in(select 职工号 from 职工 where 姓名='林安平')--select * from 仓库 where 仓库号 in(select 仓库号 from 职工 where 姓名='林安平')--select * from 仓库 where not(城市='上海' or 城市='济南')--select * from 职工 where 工资 between 1500 and 1800select * from 职工 where 职工号 in('zg1', 'zg2', 'zg11', 'zg15')
5:like模糊查询
通配符
含义
%
包含多个或者多个字符
_(下划线)
包含一个字符
[]
指定范围(如[a-z])
[^]
不属于指定范围,如[^a-z]
--select * from 职工 where 姓名 like '%平%'--select * from 职工 where 姓名 like '%平'--select * from 职工 where 姓名 like '%平%' and 姓名 not like '%平'--select * from 职工 where 姓名 like '_平' or 姓名 like '平_'--select * from 职工 where 工资 like '[1-2][2-7]%'--select * from 职工 where 工资 like '_[2-6]_[0-9]'--select * from 职工 where 工资 like '_[2-9]%'--select * from 职工 where 职工号 + 仓库号 like '%3%'--select * from 职工 where 职工号 like '%3%' or 仓库号 like '%3%'
6: 汉字排序
--汉字排序--先按笔画进行排序
select * from 职工 order by 姓名 collate chinese_prc_stroke_cs_as_ks_ws asc;
利用姓名进行升序排序显示职工信息,按音序进行排序
select * from 职工 order by 姓名 collate chinese_prc_cs_as asc
显示部分记录的排序
select top 3 * from 职工 order by 工资 desc
显示工资最低的前20%条职工信息
select top 20 percent * from 职工 order by 工资 asc
- SQL Server查询准备数据库和数据,并进行简单查询
- C#连接SQL Server并查询数据
- 实验四 数据查询——简单查询 Sql Server数据库实验
- java之查询sql server数据库数据
- sql server简单查询
- SQL server 数据库查询
- SQL server 数据库查询
- 13、SQL Server 使用子查询和CTE提供数据之简单子查询
- SQL Server 数据库设计和高级查询
- Sql Server数据库设计和高级查询
- QT连接SQL Server数据库,并查询显示其中的数据
- SQL SERVER 进行递归查询
- SQL SERVER 进行递归查询
- sql server查询表前多少行 数据进行更新
- SQL数据库的定义和数据查询
- SQL Server 查询数据并汇总相关技巧
- sql server 简单查询语句
- 数据库 简单查询 Sql Server 学生表 课程表 选课表
- mysql 批量update
- VS与F5调试,Eval绑定时间数据,获取数据库中所有的存储过程
- MySQL查询及删除重复记录的方法
- 火狐浏览器自定义下载位置
- 人生有时候,总是很讽刺。
- SQL Server查询准备数据库和数据,并进行简单查询
- 各种排序算法总结
- poj 2329 Nearest number - 2 这道题广搜为什么就是wa啊!!求解
- 轻松掌握MySQL数据库锁机制的相关原理
- 2012年3月9日C++学习笔记
- android 读取JSON数据(遍历JSONObject和JSONArray) .
- 重载、覆盖、隐藏
- Android中使用HttpGet和HttpPost访问HTTP资源(一)
- oracle日志归档模式改变