1. 程式人生 > >JAVA入門到精通-第59講-sqlServer基本查詢

JAVA入門到精通-第59講-sqlServer基本查詢

創建 ica 1-1 操作 family 還要 base 順序 account

sqlServer基本查詢 dept/emp表:
技術分享圖片 MGR:直接上級的編號 HIREDATE:入職日期 COMM:獎金 DEPTNO:部門編號 創建dept表 技術分享圖片 創建emp表 技術分享圖片 deptno 是外鍵,foreign key refercnce dept (deptno) reference 引用; 針對外鍵: 技術分享圖片 dept: 技術分享圖片 emp: select查詢: 技術分享圖片 *能不用則不用;對資源是種浪費; 整個數據帶過來是很大的; 技術分享圖片 distinct 區別; 技術分享圖片 distinct只會拋棄完全一樣的; select distinct deptno,ename from emp 消除結果完全相同的那一行; 技術分享圖片
查詢計算: 技術分享圖片 列的別名; 如何處理空? 有一個函數,解決null問題---isnull; comm為空,返回0;否則,返回本身的值; 技術分享圖片 isnull提供了一個函數進行判斷是否為null; 技術分享圖片 時間查詢計算: 技術分享圖片 執行查詢的時候,數據庫會試圖轉換datetime格式; 技術分享圖片 --between and 技術分享圖片 between 效率會高一點點;包含取兩邊都取; --like模糊查詢 %任意的;_ 表示單個字符; 技術分享圖片
==================================
  1 數據庫例解主鍵、外鍵、多功能查詢,見下例:
  2 --建庫
  3
create database test 4 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 * from dept 58 59 --查看emp表內容 60 select * from emp 61 62 --查詢所有列 63 --語法:select * from 表名 where 條件 64 select * from emp 65 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 from emp 77 78 --使用算數表達式 79 --顯示每個雇員的年工資+獎金 80 select ename"姓名",sal*13+isnull(comm,0)*13"年收入" from emp 81 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 "年薪"

JAVA入門到精通-第59講-sqlServer基本查詢