创建数据库
CREATE DATABASE DB_Student --创建数据库
ON PRIMARY
(
NAME=N'DB_Student', --创建数据库.mdf文件
FILENAME=N'D:\database\db_Student.mdf',
SIZE=3072KB,
FILEGROWTH=1024KB
)
LOG
ON
(
NAME=N'DB_Studenta', --创建日志文件,不能重复mdf
FILENAME=N'D:\database\db_Student.ldf',
SIZE=1024KB,
FILEGROWTH=10%
)
GO

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

创建外键,B中存在外键,且外键是A主键,则应该先创建A,再创建B
bAId INT FOREIGN KEY(bAId) REFERENCES A(aId)

BACKUP DATABASE [hanson]
TO DISK = N'D:\database\db_hanson_20120719.bak'
WITH DESCRIPTION = N'12年7月19日的备份',
NAME = N'db_hanson 的备份',
SKIP , NOREWIND , NOUNLOAD , STATS = 10
GO

BACKUP DATABASE [hanson] --差异备份
TO DISK = N'D:\database\db_hanson_20120719.bak'
WITH DIFFERENTIAL,
DESCRIPTION = N'12年7月19日的备份',
NOFORMAT , NOINIT,
NAME = N'db_hanson 的差异备份',
SKIP , NOREWIND , NOUNLOAD , STATS = 10
GO

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

USE Homework
SELECT DISTINCT T.Name
FROM T
WHERE T.Name
NOT IN(SELECT T.Name FROM T WHERE T.fenshu<80)

1、查询出所有数据中拨打长途号码(对方号码以0开头)的总时长
2、查询出本月通话总时长最多的前三个呼叫员的编号
3、查询出本月拨打电话次数最多的前三个呼叫员的编号

SELECT SUM(DATEDIFF(second,Inquiry_Begin,Inquiry_End))
FROM Tel_Inquiry
WHERE Inquiry_Caller LIKE '0%'

SELECT TOP 3 Inquiryer_Id ,SUM(DATEDIFF(second,Inquiry_Begin,Inquiry_End))
FROM Tel_Inquiry
GROUP BY Inquiryer_Id
ORDER BY SUM(DATEDIFF(second,Inquiry_Begin,Inquiry_End))
DESC

SELECT TOP 3 Inquiryer_Id,COUNT(Inquiryer_Id) AS '拨打次数'
FROM Tel_Inquiry
GROUP BY Inquiryer_Id
ORDER BY COUNT(Inquiryer_Id)
DESC

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1、查询20号部门中的员工信息

SELECT EMP.DEPTNO,DEPT.DNAME,EMP.EMPNO,EMP.ENAME,EMP.HIREDATE,EMP.JOB,EMP.MGR,EMP.SAL,EMP.COMM,DEPT.LOC
FROM EMP
LEFT JOIN DEPT
ON DEPT.DEPTNO=EMP.DEPTNO
WHERE EMP.DEPTNO=20

2、查找出名字以“MA”开头的全部员工信息

SELECT EMP.DEPTNO,DEPT.DNAME,EMP.EMPNO,EMP.ENAME,EMP.HIREDATE,EMP.JOB,EMP.MGR,EMP.SAL,EMP.COMM,DEPT.LOC
FROM EMP
LEFT JOIN DEPT
ON DEPT.DEPTNO=EMP.DEPTNO
WHERE EMP.ENAME LIKE 'MA%'

3、按工种升序排列显示全部员工的有关情况

SELECT EMP.DEPTNO,DEPT.DNAME,EMP.EMPNO,EMP.ENAME,EMP.HIREDATE,EMP.JOB,EMP.MGR,EMP.SAL,EMP.COMM,DEPT.LOC
FROM EMP
LEFT JOIN DEPT
ON DEPT.DEPTNO=EMP.DEPTNO
ORDER BY EMP.JOB
ASC

4、查询统计各部门的员工数据

SELECT DEPT.DEPTNO,DEPT.DNAME,COUNT(*) AS '员工人数'
FROM EMP
LEFT JOIN DEPT
ON DEPT.DEPTNO=EMP.DEPTNO
GROUP BY DEPT.DEPTNO,DEPT.DNAME

5、查找出工资高于20号部门中所有员工的人员信息

SELECT EMP.DEPTNO,DEPT.DNAME,EMP.EMPNO,EMP.ENAME,EMP.HIREDATE,EMP.JOB,EMP.MGR,EMP.SAL,EMP.COMM,DEPT.LOC
FROM EMP
LEFT JOIN DEPT
ON DEPT.DEPTNO=EMP.DEPTNO
WHERE EMP.SAL>(SELECT MAX(EMP.SAL) FROM EMP WHERE EMP.DEPTNO=20)

6、为EMP表创建一个视图emp10_view,要求只包括10号部门员工的有关信息。
CREATE VIEW MYVIEWS
AS
SELECT EMP.DEPTNO,DEPT.DNAME,EMP.EMPNO,EMP.ENAME,EMP.HIREDATE,EMP.JOB,EMP.MGR,EMP.SAL,EMP.COMM,DEPT.LOC
FROM EMP
LEFT JOIN DEPT
ON DEPT.DEPTNO=EMP.DEPTNO
WHERE DEPT.DEPTNO=10

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

一张表dtTest里面有year,mouth,day三个字段,分别表示年月日,如何查找出今天之后的数据?
SELECT * FROM dtTest
WHERE GETDATE()<CONVERT(DATE,CONVERT(CHAR(4),Years)+'-'+CONVERT(CHAR(2),Mouths)+'-'+CONVERT(CHAR(2),Daies))

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

有一张学科分值表Score,里面有3个字段:语文,数学,英语。比如有1条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询该表记录并按以下条件显示出来:(大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。)
显示格式:
语文 数学 英语
及格 优秀 不及格

SELECT
CASE WHEN 语文>=80 THEN '优秀' WHEN 语文>=60 THEN '及格' ELSE '不及格' END '语文',
CASE WHEN 数学>=80 THEN '优秀' WHEN 数学>=60 THEN '及格' ELSE '不及格' END '数学',
CASE WHEN 英语>=80 THEN '优秀' WHEN 英语>=60 THEN '及格' ELSE '不及格' END '英语'
FROM Score

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

创建索引

CREATE CLUSTERED INDEX riqi_person on person(date)
在person表的date字段上面创建名为riqi_person的【聚集索引】

CREATE NONCLUSTERED INDEX riqi_person on person(date)
在person表的date字段上面创建名为riqi_person的【非聚集索引】

CREATE CLUSTERED INDEX date_person on person(date,id)
在person表的date,age字段上面创建名为riqi_person的【复合聚集索引】

CREATE NONCLUSTERED INDEX date_person on person(date,age)
在person表的date,age字段上面创建名为riqi_person的【复合非聚集索引】

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SQL编程示例 (1)
DECLARE @i INT --声明变量
SET @i = 1
DECLARE @no VARCHAR(15)
SET @no='201200000001'

WHILE @i < 1000000
BEGIN
SET @i =@i +1
SET @no =cast(cast(@no as bigint) + 1 as varchar)
INSERT INTO StudentInfo
VALUES
(@no,'HANSON','male','302')
END

SQL编程示例 (2)
DECLARE @PhoneNumber CHAR(12)='15305535987'
DECLARE @AreaNum CHAR(4)
SET @AreaNum=SUBSTRING(@PhoneNumber,4,4);
IF(@AreaNum='0551')
SELECT '合肥' AS '地区'
ELSE IF(@AreaNum='0552')
SELECT'蚌埠' AS '地区'
ELSE IF(@AreaNum='0553')
SELECT '芜湖' AS '地区'
ELSE
SELECT '其他' AS '地区'

SQL编程示例 (3)
DECLARE @i INT
SET @i = 0
WHILE @i < 10
BEGIN
SET @i =@i +1
IF @i=4
CONTINUE
ELSE IF @i=8
BREAK
ELSE
PRINT @i
END

事务处理 @@error

SELECT * FROM Account
BEGIN TRANSACTION
DECLARE @errorSum INT
SET @errorSum=0
UPDATE Account SET ABalance=ABalance-200
WHERE AName='李四'
SET @errorSum=@errorSum+@@ERROR
UPDATE Account SET ABalance=ABalance+1000
WHERE AName='张三'
SET @errorSum=@errorSum+@@ERROR
IF @errorSum<>0 --如果有错误
BEGIN
print '交易失败'
ROLLBACK TRANSACTION
END
ELSE
BEGIN
print '交易成功'
COMMIT TRANSACTION
END
GO
--显示转账后的账户余额
SELECT * FROM Account
GO

事务处理
--try-catch捕获并处理
BEGIN TRY
BEGIN TRANSACTION
UPDATE Account
SET ABalance=ABalance-200
WHERE AName='李四'
UPDATE Account
SET ABalance=ABalance+200
WHERE AName='张三'
COMMIT TRANSACTION
END TRY
BEGIN CATCH
rollback
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
SELECT @ErrMsg = '出现了错误,错误信息:'+ERROR_MESSAGE(),@ErrSeverity = ERROR_SEVERITY()
RAISERROR(@ErrMsg, @ErrSeverity, 1)
END CATCH

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
GO
BEGIN TRANSACTION;
BEGIN TRY
--李四取出元
UPDATE Account SET Balance=Balance-200 --更新帐户余额
WHERE Name=N'李四'
--张三存入元
UPDATE Account SET Balance=Balance+1000 --更新帐户余额
WHERE Name=N'张三'
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() as ErrorState,
ERROR_PROCEDURE() as ErrorProcedure,
ERROR_LINE() as ErrorLine,
ERROR_MESSAGE() as ErrorMessage;
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
END CATCH;
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
GO

+++++++++++++++++++++++++++++++++++++++++

创建存储过程
CREATE PROCEDURE avaday
@DAYS INT,
@ID INT
AS
BEGIN
SELECT
CASE WHEN StaffSex='female' AND (StaffUsed+@DAYS)<=5 THEN '批准'
WHEN StaffSex='male' AND (StaffUsed+@DAYS)<=2 THEN '批准'
ELSE '不批准' END 批复结果
FROM Vacation
WHERE StaffId=@ID
END

EXEC avaday @ID=101,@DAYS=1

--with 临时表

WITH
S
AS
(
SELECT TOP 2 Inquiry_Caller,count(*) AS 电话次数
FROM Tel_Inquiry
GROUP BY Inquiry_Caller
ORDER BY count(Inquiry_Caller) DESC
)
SELECT TOP 1 *
FROM S
ORDER BY 电话次数

转载于:https://www.cnblogs.com/yixuezi/archive/2012/07/24/2607208.html

SQL 实用基础代码相关推荐

  1. SQL sever基础代码

    SQL sever基础代码,自己整理的,希望对萌新有用,不喜勿喷,谢谢!! 有不懂的欢迎在评论区留言一起讨论,此内容不是唯一解,仅作参考 --注:数据库语句基本不分大小写除表名 --1.创建数据库 - ...

  2. 实用android 代码,Android 实用代码七段(一)

    前言 这里积累了一些不常见确又很实用的代码,每收集7条更新一次,希望能对大家有用. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http ...

  3. SQL——语法基础篇(上)

    虽然 SQL 是声明式语言,我们可以像使用英语一样使用它,不过在 RDBMS(关系型数据库管理系统)中,SQL 的实现方式还是有差别的.今天我们就从数据库的角度来思考一下 SQL 是如何被执行的. O ...

  4. PL/SQL语言基础

    PL/SQL语言基础 /********************************数据类型*************************************/ %rowtype  (行对 ...

  5. python入门基础代码图-适合Python入门的5本基础书籍

    原标题:适合Python入门的5本基础书籍 Python 3标准库 对程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案,所以本书是所有Python程序员都必 ...

  6. r语言工作路径linux,R语言实用基础知识_工作路径-注释-安装和卸载R包_2019-12-01...

    R语言的实用基础知识有很多,都是我在工作和学习中所整理的,有的是看书整理的,也有的是从网络上的各种博客.各种资源获取的,所以我采用日更的方式进行支持整理和更新,希望能够帮到屏幕前的你! 今天是我日更的 ...

  7. SQL Server基础知识概念要点详细讲解

    SQL Server基础知识概念要点详细讲解 目录 基础概念 1.网状模型数据库 2.层次模型数据库 3.关系模型数据库 知识点实例总结 基础概念 SQL语言中,between and表示包括两边参数 ...

  8. [CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

  9. 10、oracle下PL/SQL编程基础

    ORACLE下的PL/SQL编程基础 PL/SQL语言是程序化程序设计语言,块是PL/SQL编程中的基本结构,其优点在于支持SQL.支持面向对象编程.性能好.可移植性.与sql集成.安全性高等. 1. ...

最新文章

  1. python多轴图_python-Aplpy多图动态轴共享
  2. 快速将InnoDB表复制到另一个实例
  3. java中File的使用
  4. “吃神么,买神么”的第三个Sprint冲刺总结
  5. MyEclipes+html+jsp+mysql实现一个物流信息网
  6. 前端学习(3320):undefine和null 3
  7. Python语法糖之:列表解析、集合解析和字典解析
  8. C++ 栈展开如何防止内存泄露
  9. 传奇服务器修改npc外观,传奇NPC里面图片修改方法
  10. Spring Value注解的使用
  11. IET Communications投稿
  12. 知道邻边和斜边求角度_知道一个角度和一条对边怎样求斜边和邻边
  13. 小游戏系列算法之五广度优先搜索,双向广搜,八数码,华容道
  14. Linux下操作Excel表格,xlsx表格
  15. chrome google总是进入123主页解决办法 https://www.hao123.com/?tn=94978544_hao_pg
  16. 批处理删除注册表分支方法
  17. RuoYi-Flowable 工作流管理平台
  18. 基于Spring boot的图书馆图书借阅管理系统的设计与实现
  19. 基于pymongo的学生信息考勤管理系统开发学习笔记之mongo篇
  20. 20210428# 咕泡RabbitMQ文档

热门文章

  1. Spring Boot中验证码实现kaptcha
  2. Spark1.0 安装
  3. 写一个参数返回二进制中1的个数
  4. HTML5 Maker – 在线轻松制作 HTML5 动画效果
  5. 聊一聊js中的null、undefined与NaN
  6. hibernate 关联总结
  7. GODADDY主机用tar命令通过SSH远程打包20M以上的文件
  8. Qt Creator创建项目
  9. Python的Flask入门
  10. learning hdmi edid protocol