java sqlserver 查询_JAVA入门到精通-第59讲-sqlServer基本查询

1 数据库例解主键、外键、多功能查询,见下例:2 --建库

3 create databasetest4

5

6 --创建dept表

7 create table dept--部门表

8 (deptno int primary key,--部门编号

9 dname nvarchar(30),--部门名称

10 loc nvarchar(30)--所在地

11 )12

13

14 --建表emp

15 create table emp--表名

16 (empno int primary key,--编号

17 ename nvarchar(30),--名字

18 job nvarchar(30),--职位

19 mgr int,--上级编号

20 hiredate datetime,--入职日期

21 sal numeric(10,2),--薪水

22 comm numeric(10,2),--奖金

23 deptno int foreign key references dept(deptno)--部门编号(做成外键)

24 )25

26

27 --针对外键,请注意:

28 --1、外键只能指向主键

29 --2、外键和主键的数据类型要一致

30

31

32 --向dept表中添加数据

33 insert into dept values (10,'accounting','new york')34 insert into dept values (20,'research','dallas')35 insert into dept values (30,'sales','chicago')36 insert into dept values (40,'operations','boston')37

38

39 --向emp表中添加数据

40 insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (7369,'smith','clerk',7902,'1980-12-17',800.00,20)41 insert into emp values(7499,'allen','salesman',7698,'1981-2-20',1600.00,300.00,30)42 insert into emp values(7521,'ward','salesman',7698,'1981-2-22',1250.00,500.00,30)43 insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (7566,'jones','manager',7839,'1981-4-2',2975.00,20)44 insert into emp values(7654,'martin','salesman',7698,'1981-9-28',1250.00,1400.00,30)45 insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (7698,'blake','manager',7839,'1981-5-1',2850.00,30)46 insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (7782,'clark','manager',7839,'1981-6-9',2450.00,10)47 insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (7788,'scott','analyst',7566,'1987-4-19',3000.00,20)48 insert into emp (empno,ename,job,hiredate,sal,deptno) values (7839,'king','president','1981-11-17',5000.00,10)49 insert into emp values (7844,'turner','salesman',7698,'1981-9-8',1500.00,0.00,30)50 insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (7876,'adams','clerk',7788,'1987-5-23',1100.00,20)51 insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (7900,'james','clerk',7698,'1981-12-3',950.00,30)52 insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (7902,'ford','analyst',7566,'1981-12-3',3000.00,20)53 insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (7934,'miller','clerk',7782,'1982-1-23',1300.00,10)54

55

56 --查看dept表内容

57 select * fromdept58

59 --查看emp表内容

60 select * fromemp61

62 --查询所有列

63 --语法:select * from 表名 where 条件

64 select * fromemp65

66 --查询指定列(sql sever不区分大小写,oracle区分大小写)

67 --语法:select 字段1,字段2 from 表名 where 条件

68

69 --查询smith的薪水,工作,所在部门

70 select sal,job,deptno from emp where ename='smith'

71

72 --取消重复行(distinct只能消除完全一样的行,保留一行)

73 --语法:select distinct 字段 from 表名 where 条件

74

75 --统计共有多少个部门编号

76 select distinct deptno fromemp77

78 --使用算数表达式

79 --显示每个雇员的年工资+奖金

80 select ename"姓名",sal*13+isnull(comm,0)*13"年收入" fromemp81

82 --使用where子句

83 --如何显示工资高于3000的员工

84 select ename"员工姓名",sal"工资高于3000" from emp where sal>3000

85

86 --如何查找1982-1-1后入职的员工

87 select ename"员工姓名",hiredate"1982-1-1后入职日期" from emp where hiredate>'1982-1-1'

88

89 --如何显示工资在2000到2500的员工情况

90 select * from emp where sal>=2000 and sal<=2500

91 select * from emp where sal between 2000 and 2500

92

93 --如何使用like操作符(模糊查询)

94 --%:表示0到多个字符 _:表示单个字符

95 --如何显示首字符为S的员工姓名和工资

96 select ename,sal from emp where ename like 's%'

97

98 --如何显示第三个字符为o的所有员工的姓名和工资

99 select ename,sal from emp where ename like '__O%'

100

101 --在where条件中使用in

102 --如何显示empno为123,345,800...的雇员情况

103 select * from emp where empno in(123,345,800)104

105 --使用is null的操作符

106 --如何显示没有上级的雇员的情况

107 select * from emp where mgr is null

108

109 --使用逻辑操作符号

110 --查询工资高于500或是岗位为manager的雇员,同时还要满足他们的姓名首写字母为大写的J

111 select * from emp where (sal>500 or job='manager') and ename like 'J%'

112

113 --使用order by字句(asc默认是升序排列,desc为降序排列)

114 --如何按照工资的从低到高的顺序显示雇员的信息

115 select sal from emp order by sal asc

116 --按照部门号升序而雇员的工资降序排列

117 --order by可以根据不同的字段排序

118 select deptno,sal from emp order by deptno,sal desc

119

120 --使用列的别名排序(别名需要使用""号圈中)

121 select ename,sal*12"年薪" from emp order by "年薪"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值