对所学Sqlserver知识进行一下记录总结,某些用法之间还可以关联使用,欢迎补充和讨论。本人比较懒,结果的截图暂时就先不传了,什么时候想起来再说吧~~
在写存储过程之前,先补充一些比较零碎的东西,有些在存储过程中会用到。
就想到什么写什么吧,有时间就补充~~未完待续~~
1.定义变量 (我一般在存储过程中用的比较多)
----定义变量 使用 DCLARE 修饰, 变量前用 @ 符号作为前缀,后面加上变量的数据类型(table 也可以定义变量) DECLARE @userID AS VARCHAR(30),@userName VARCHAR(30), @age INT, @gender VARCHAR(30), @birthday DATETIME, @DeptID VARCHAR(30), @Remark VARCHAR(100) ----给变量赋值 SET @userID='ceshi' SET @userName='测试' SET @age=18 SET @gender='男/女' SET @birthday='2020-01-01' SET @DeptID='财务' SET @Remark='我是备注' ----除了直接赋值.也可以做查询赋值,但是需要注意的是,查询语句的返回值必须是 唯一行,唯一列,否则报错,所以我习惯在查询是加上 top 1 SET @userID=(SELECT TOP 1 userID FROM dbo.basic_User WHERE userName='张三') ----这是定义类型为table的变量,用法和普通表是一样的,可以查询、修改、删除数据,也可以同其他表一起联查,可以算作是临时表,运行过后就不存在了,还有一种临时表:#table,这种是需要DROP掉的 DECLARE @table AS TABLE(id INT IDENTITY(1,1),name VARCHAR(30),age INT,birthday DATETIME) ----插入 INSERT INTO @table ( id, name, age, birthday ) VALUES ( 1,'我是变量临时表',20,GETDATE()) -----修改 UPDATE @table SET name='修改name' WHERE id=1 -----删除 DELETE FROM @table WHERE id=1
2.临时表 (临时表我一般在存储过程中使用比较多)
----创建临时表 同创建普通表语法是一样的,只不过临时表名前面需要加 # 井号 CREATE TABLE #table(id INT IDENTITY(1,1),name VARCHAR(30),age INT,birthday DATETIME) ----插入、修改、删除数据同普通表也是一样的 ----插入 INSERT INTO #table ( id, name, age, birthday ) VALUES ( 1,'我是#临时表',20,GETDATE()) ----修改 UPDATE #table SET name='修改name' WHERE id=1 ----删除 DELETE FROM #table WHERE id=1 ----需要注意的是,再执行语句的最后一定要把临时表 DROP 掉 DROP TABLE #table
3.IF 条件
----if 条件,if 和 else 后面我习惯加上 BEGIN 和 END,可以清楚的知道if和else的语句从哪里开始从哪里结束 DECLARE @n INT SET @n=0 IF @n>0 BEGIN ---写符合 if 条件的时候要进行的操作 SELECT * FROM dbo.basic_User END ELSE BEGIN ---写符合 else 条件的时候要进行的操作 SET @n=@n+1 SELECT * FROM dbo.basic_User END
----if 还可以这样用,比如判断用户表中是否有名叫张三的数据,我所知有两种写法 ----其一 DECLARE @i INT SET @i=(SELECT COUNT(*) FROM dbo.basic_User WHERE userName='张三')----查询语句就是返回名叫张三的数据条数,如果有1条,那此时 @i=1,如果没有则 @i=0 IF @i>0 BEGIN ---写符合 if 条件的时候要进行的操作 SELECT * FROM dbo.basic_User END ELSE BEGIN ---写符合 if 条件的时候要进行的操作 SELECT * FROM dbo.basic_User END ----其二 IF EXISTS(SELECT * FROM dbo.basic_User WHERE userName='张三')----EXISTS 就是判断括号中的语句是否有返回条目 BEGIN ---写符合 if 条件的时候要进行的操作 SELECT * FROM dbo.basic_User END ELSE BEGIN ---写符合 if 条件的时候要进行的操作 SELECT * FROM dbo.basic_User END
4.while循环 (sql里面的循环,我基本只用while~~)
DECLARE @n INT SET @n=0 WHILE @n<100 BEGIN ----CONTINUE 跳出本次循环,如果@n=4 或 @n=8 则跳出本次循环,继续下次循环 IF @n=4 OR @n=8 BEGIN SET @n=@n+1 CONTINUE; END SET @n=@n+1 PRINT @n ----break 跳出所有循环, 判断符合条件跳出循环 IF @n>=10 BEGIN break; END ----执行完后 打印出的数据就是 1,2,3,4,6,7,8,10,11 END
5.备份数据库(将我所知道的说一下)
这里要说明一下,数据库的备份文件是在数据库所在的服务器的文件夹中,不是在本地电脑上的
其一:也是最基本的备份方法,右键要备份的数据库->任务->备份,然后选择要备份到的地址、名称,确定即可。
其二:手动创建自动备份计划任务,步骤挺复杂,我这里省略了。。。百度吧,懒啊,哈哈哈
其三:使用sql语句进行备份,语句如下:意思就是备份数据库到所在服务器的 D:盘下,名叫 1.bak,应该也可以使用语句设置每天/周自动备份,或删除 n天之外的备份,百度吧,懒啊,哈哈哈
backup database 数据库名 to disk='d:\1.bak'
未完待续~~
标签:SET,END,dbo,补充,server,----,Sql,table,SELECT From: https://www.cnblogs.com/hlmxlx/p/17824339.html