SQL server語句練習,sqlserver語句

來源:互聯網
上載者:User

SQL server語句練習,sqlserver語句

相關表:
<span style="white-space:pre">create table DEPT(<span style="white-space:pre"></span>deptno int not null primary key,<span style="white-space:pre"></span>dname varchar(14)  null,<span style="white-space:pre"></span>loc varchar(13) null)create table EMP(<span style="white-space:pre"></span>empno int not null primary key,<span style="white-space:pre"></span>ename varchar(10) null,<span style="white-space:pre"></span>job varchar(9) null,<span style="white-space:pre"></span>mgr int null,<span style="white-space:pre"></span>hiredate date null,<span style="white-space:pre"></span>sal float null,<span style="white-space:pre"></span>comm float null,<span style="white-space:pre"></span>deptno int null foreign key references DEPT(deptno),)create table SALGRADE(<span style="white-space:pre"></span>grade int null,<span style="white-space:pre"></span>losal int null,<span style="white-space:pre"></span>hisal int null,)</span>
查詢部分:
--查詢僱員姓名的最後三個字母SELECT SUBSTRING(ename,LEN(ename)-3,3) FROM dbo.EMP--查詢10部門僱員進入公司的星期數SELECT ename,DATEDIFF(wk,hiredate,GETDATE())AS 進入星期數 FROM dbo.EMP WHERE deptno=10--1 查詢部門30中的所有員工SELECT * FROM dbo.EMP WHERE deptno=30--2 列出所有辦事員(CLERK)的姓名,編號和部門編號SELECT ename , empno , deptno FROM emp WHERE job='clerk'--3 找出傭金高於薪金的員工SELECT * FROM dbo.EMP WHERE comm>sal--求出每個僱員的年薪SELECT ename,sal*12+ISNULL(comm,0)*12 AS 年薪 FROM dbo.EMP--4 找出傭金高於薪金的60%的員工SELECT * FROM dbo.EMP WHERE comm>sal*0.6--5 找出部門10中所有經理(MANAGER)和部門20中所有辦事員(CLERK)的詳細資料SELECT * FROM dbo.EMP WHERE deptno=10 AND job='manager' OR deptno=20 and  job='CLERK'--6 --  既不是經理又不是辦事員但薪金大於或等於2000的所有員工的詳細資料SELECT * FROM dbo.EMP WHERE job!='manager' AND job!='clerk' AND sal>=2000--7 找出收取傭金的員工的不同工作SELECT DISTINCT job FROM dbo.EMP WHERE comm IS NOT NULL--8 找出不收取傭金或收取傭金低於100的員工SELECT * FROM dbo.EMP WHERE comm IS NULL OR comm<100--9 找出各月倒數第3天受雇的所有員工SELECT * FROM dbo.EMP WHERE MONTH(DATEADD(DAY,3,hiredate))=MONTH(DATEADD(MONTH,1,hiredate))--10 找出早於12年前受雇的員工SELECT * FROM dbo.EMP WHERE DATEDIFF(YEAR,hiredate,GETDATE())>12--11 以首字母大寫的方式顯示所有員工的姓名select upper(substring(ename,1,1))+lower(substring(ename,2,len(ename)-1)) from emp;--12 顯示正好為5個字元的員工的姓名SELECT ename FROM emp WHERE LEN(ename)=5--13 顯示不帶有"R"的員工的姓名SELECT ename FROM dbo.EMP WHERE ename NOT LIKE '%R%'--14 顯示所有員工的姓名的前三個字元SELECT SUBSTRING(ename,1,3) FROM dbo.EMP--15 顯示所有員工的姓名,用"a"代替所有的"A"SELECT REPLACE(ename,'a','A') FROM dbo.EMP--16 顯示滿10年服務年限的員工的姓名和受雇日期SELECT ename,hiredate  FROM dbo.EMP WHERE DATEDIFF(year,hiredate,GETDATE())>10--17 顯示員工詳細資料,按姓名排序SELECT * FROM dbo.EMP ORDER BY ename--18 顯示員工的姓名和受雇日期,根據其服務年限,將最老的員工排在前面SELECT ename,hiredate FROM dbo.EMP ORDER BY DATEDIFF(year,hiredate,GETDATE()) DESC--19 顯示所有員工的姓名,工作和薪金,按工作的降序排序,若工作相同則薪金排序SELECT ename,job ,sal+ISNULL(comm,0)AS 薪金 FROM dbo.EMP order BY job ,sal+ISNULL(comm,0)--20 顯示所有員工的姓名,加入公司的年份和月份,按受雇日期所在月排序,若月份相同則將--最早年份的員工排在前面SELECT ename,YEAR(hiredate),MONTH(hiredate) FROM dbo.EMP ORDER BY MONTH(hiredate),YEAR(hiredate) --21 顯示在一個月為30天的情況,所有員工的日薪金,忽略餘數SELECT ROUND((sal+ISNULL(comm,0))/30,0) FROM dbo.EMP--22 找出在(任何年份的)2月受雇的所有員工SELECT * FROM dbo.EMP WHERE MONTH(hiredate)=2--23 對於每個員工,顯示其加入公司的天數SELECT ename ,DATEDIFF(DAY,hiredate,GETDATE())AS 入職天數 FROM dbo.EMP--24 顯示姓名欄位的任何位置包含"A"的所有員工的姓名SELECT ename FROM dbo.EMP WHERE ename LIKE '%A%'--25 以年月日的方式顯示所有員工的服務年限(大概)SELECT STR(ROUND(DATEDIFF(day,hiredate,GETDATE())/365,0))+'年'+str(ROUND(DATEDIFF(day,hiredate,GETDATE())%365/30+1,0))+'月'+STR(DATEDIFF(day,hiredate,GETDATE())%365%30)+'日' AS 服務年限 FROM  dbo.EMP


才安裝好SQLserver2000,想練習輸入sql語句

新手的話,建議進企業管理器,先系統的認知下表啊,視圖啊,預存程序之類
不過在這個之前建議網上下個教程,帶資料庫的
先將學慣用資料庫匯入到你當前資料庫
然後進企業管理器裡折騰
起碼你點擊相應按鈕 會自動出現select * from table,update table set 。。。。之類簡單語句

總結就是,想系統的學,就買入門書 把基礎知識掌握 然後找案例練手
如果只是為了對付某項實際操作,那就直接看那個資料庫的SQL語句,比如預存程序,視圖之類
做好備份後——比如直接把SQL語句複製出來 粘貼到建立文字文件之類裡面儲存,然後折騰
出錯了可以改回去
 
誰有sql 語句練習題,越多越好

額 我只曉得SQLServer的T-SQL
中文版SQL Server 2000開發與管理應用執行個體
www.china-pub.com/26313
都是大量項目中能用到的執行個體
CSDN SQL大版主的書籍,可說非常不錯了
希望對你有協助

如果還要再深入理解點原理東西
可以看下 微軟技術叢書sql2005 T-SQL查詢與T-SQL程式設計
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.