Sql server基础使用(六):补充零碎的一些东西(想到什么就补充,未完待续~~)

发布时间 2023-11-10 17:25:29作者: v迷糊v

对所学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'

 

 

未完待续~~