当前位置:   article > 正文

数据库SQL Server命令行汇总_sql server 命令行

sql server 命令行

SQL Server命令行汇总

一 数据库操作

1.1 创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5KKRPSqP-1655867492594)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps1.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gXN9XpYy-1655867492596)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps2.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LBzXZCUS-1655867492596)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps3.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v6bhfFPK-1655867492597)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps4.jpg)]

CREATE DATABASE REVIEW
ON
PRIMARY
(
	NAME = 'FILE1',
	FILENAME = 'D:\SQLDATA\F1.MDF',
	SIZE = 50MB,
	MAXSIZE = UNLIMITED,
	FILEGROWTH = 10MB
),
FILEGROUP GROUP2
(
	NAME = 'FILE2',
	FILENAME = 'D:\SQLDATA\F2.NDF',
	SIZE = 20MB,
	MAXSIZE = UNLIMITED,
	FILEGROWTH = 20%
),
(
	NAME = 'FILE3',
	FILENAME = 'D:\SQLDATA\F3.NDF',
	SIZE = 20MB,
	MAXSIZE = UNLIMITED,
	FILEGROWTH = 20%
)
LOG ON
(
	NAME = 'LOG1',
	FILENAME = 'D:\SQLDATA\L1.LDF',
	SIZE = 10MB,
	MAXSIZE = UNLIMITED,
	FILEGROWTH = 5MB
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

1.2 修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QsiuWczr-1655867492598)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps5.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eBT0x15s-1655867492598)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps6.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kMwx47Aq-1655867492599)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps7.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hw2HF1Wn-1655867492599)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps9.jpg)]

ALTER DATABASE REVIEW
MODIFY FILE
(
	NAME = 'FILE1',
	SIZE = 200MB,
	MAXSIZE = 200MB,
	FILEGROWTH = 5MB
)
ALTER DATABASE REVIEW
ADD FILE
(
	NAME = 'FILEADD',
	FILENAME = 'D:\SQLDATA\F3.NDF',
	SIZE = 20MB,
	MAXSIZE = 100MB,
	FILEGROWTH = 5MB
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

1.3 删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L6SlaNDG-1655867492600)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps10.jpg)]

1.4 分离与附加

sp_attach_db '数据库名','数据文件名(*.mdf注意要带目录)' 
--后面可以是用,分隔的该数据库的多个数据文件,'日志文件名(*.ldf注意要带目录)' 
--后面可以是用,分隔的该数据库的多个日志文件
EXEC sp_detach_db 'SMC202015086'
EXEC sp_attach_db @DBNAME = 'ATTACHTEST',
	@FILENAME1 = 'D:\SQLDB\SMC.MDF',
	@FILENAME2 = 'D:\SQLDB\SMC.LDF'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

二 表

2.1 创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZhiIAuEt-1655867492600)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps11.jpg)]

--学生表
CREATE TABLE Student(
	sid VARCHAR(20),
	sname VARCHAR(20) NOT NULL DEFAULT '',
	sbirth VARCHAR(20) NOT NULL DEFAULT '',
	ssex VARCHAR(10) NOT NULL DEFAULT '',
	PRIMARY KEY(sid)
);
--课程表
CREATE TABLE Course(
	cid  VARCHAR(20),
	cname VARCHAR(20) NOT NULL DEFAULT '',
	tid VARCHAR(20) NOT NULL,
	PRIMARY KEY(cid)
);
--教师表
CREATE TABLE Teacher(
	tid VARCHAR(20),
	tname VARCHAR(20) NOT NULL DEFAULT '',
	PRIMARY KEY(tid)
);
--成绩表
CREATE TABLE Score(
	sid VARCHAR(20),
	cid  VARCHAR(20),
	score INT,
	PRIMARY KEY(sid,cid)
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

2.2 修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HolSNn5G-1655867492601)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps12.jpg)]

USE REVIEW
ALTER TABLE COURSE
ALTER COLUMN CNAME VARCHAR(20) NULL
USE REVIEW
ALTER TABLE COURSE
ADD COURSEINFO VARCHAR(20) NULL
USE REVIEW
ALTER TABLE COURSE
DROP COLUMN COURSEINFO
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.3 删除

DROP TABLE TABLE_NAME
INSERT
  • 1
  • 2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WP6loYrX-1655867492602)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps13.jpg)]

--插入学生表测试数据
insert into Student values('01' , '赵雷' , '1990-01-01' , '男');
insert into Student values('02' , '钱电' , '1990-12-21' , '男');
insert into Student values('03' , '孙风' , '1990-05-20' , '男');
insert into Student values('04' , '李云' , '1990-08-06' , '男');
insert into Student values('05' , '周梅' , '1991-12-01' , '女');
insert into Student values('06' , '吴兰' , '1992-03-01' , '女');
insert into Student values('07' , '郑竹' , '1989-07-01' , '女');
insert into Student values('08' , '王菊' , '1990-01-20' , '女');
--课程表测试数据
insert into Course values('01' , '语文' , '02');
insert into Course values('02' , '数学' , '01');
insert into Course values('03' , '英语' , '03');

--教师表测试数据
insert into Teacher values('01' , '张三');
insert into Teacher values('02' , '李四');
insert into Teacher values('03' , '王五');

--成绩表测试数据
insert into Score values('01' , '01' , 80);
insert into Score values('01' , '02' , 90);
insert into Score values('01' , '03' , 99);
insert into Score values('02' , '01' , 70);
insert into Score values('02' , '02' , 60);
insert into Score values('02' , '03' , 80);
insert into Score values('03' , '01' , 80);
insert into Score values('03' , '02' , 80);
insert into Score values('03' , '03' , 80);
insert into Score values('04' , '01' , 50);
insert into Score values('04' , '02' , 30);
insert into Score values('04' , '03' , 20);
insert into Score values('05' , '01' , 76);
insert into Score values('05' , '02' , 87);
insert into Score values('06' , '01' , 31);
insert into Score values('06' , '03' , 34);
insert into Score values('07' , '02' , 89);
insert into Score values('07' , '03' , 98);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

2.4 更新

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CHGsmsFn-1655867492602)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps14.jpg)]

USE REVIEW
UPDATE STUDENT
SET SSEX = '女'
WHERE SID = 01
  • 1
  • 2
  • 3
  • 4

2.5 删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L5EDDDIa-1655867492603)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps15.jpg)]

DELETE STUDENT
WHERE SID = 01
  • 1
  • 2

三 数据查询

3.1 投影列

3.1.1 投影指定列

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oyp6ZTi5-1655867492603)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps16.jpg)]

SELECT SID,SSEX
FROM STUDENT
  • 1
  • 2
3.1.2 投影所有列

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xRtADGgB-1655867492604)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps17.jpg)]

SELECT *
FROM STUDENT
  • 1
  • 2
3.1.3 定义列别名
SELECT '学号' = SID,'姓名' = SNAME
FROM STUDENT
  • 1
  • 2
3.1.4 替换结果中数据
SELECT '学号' = SID + 10,'姓名' = SNAME
FROM STUDENT
  • 1
  • 2
3.1.5 CASE

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pu4u53aj-1655867492604)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps18.jpg)]

SELECT '学号' = SID + 10,'性别' = 
CASE SSEX 
	WHEN '男' THEN 1
	WHEN '女' THEN 0
END
FROM STUDENT
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.2.选择行

DISTINCT 只能出现一次,且在所有列名之前。只能消除完全重复的行

TOP 因该在DISTINCT之后

SELECT DISTINCT '学号' = SID + 10,'性别' = 
CASE SSEX 
	WHEN '男' THEN 1
	WHEN '女' THEN 0
END
FROM STUDENT

SELECT DISTINCT TOP 5  '学号' = SID + 10,'性别' = SSEX
FROM STUDENT
SELECT DISTINCT TOP 5 PERCENT  '学号' = SID + 10,'性别' = SSEX
FROM STUDENT
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3.3 连接

3.3.1 传统连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PQeZboeg-1655867492604)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps19.jpg)]

SELECT A.SID,SNAME,SBIRTH,SSEX,CID,SCORE
FROM STUDENT A,SCORE B
WHERE A.SID = B.SID
  • 1
  • 2
  • 3
3.3.2 SQL连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bocExg1a-1655867492605)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps20.jpg)]

SELECT fields 
FROM1 INNER JOIN 
(2 INNER JOIN [( ]3 
[INNER JOIN [( ] 表x [INNER JOIN ...)] 
ON3.字段3 比较运算子 表x.字段x)] 
ON2.字段2 比较运算子 表3.字段3) 
ON1.字段1 比较运算子 表2.字段2

SELECT A.SID,B.cid,C.cname
FROM COURSE C LEFT JOIN SCORE B JOIN STUDENT A
ON B.SID = A.SID
ON C.CID = B.CID
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3.4 数据汇总

SELECT SUM(SCORE) AS '总分',AVG(SCORE) AS '平均分',MAX(SCORE) AS '最高分',MIN(SCORE) AS '最低分'
FROM SCORE
WHERE CID = 01
  • 1
  • 2
  • 3

3.5 ORDER BY

SELECT A.SNAME,D.CNAME,A.SBIRTH
FROM STUDENT A JOIN SCORE C JOIN COURSE D
ON C.CID = D.CID AND C.CID = 01
ON C.SID = A.SID
ORDER BY SBIRTH
  • 1
  • 2
  • 3
  • 4
  • 5

3.6 分组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUQYWRVB-1655867492605)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps21.jpg)]

SELECT CID AS '课程号',SUM(SCORE) AS '总分',AVG(SCORE) AS '平均分'
FROM SCORE
GROUP BY CID
ORDER BY AVG(SCORE) DESC
!!!!先算GROUP 再算ORDER
  • 1
  • 2
  • 3
  • 4
  • 5

四、数据完整性

ALTER TABLE STUDENT
	ADD [CONSTRAINT A] UNIQUE(SNAME)
ALTER TABLE SCORE
	ADD [CONSTRAINT A] PRIMARY KEY(SID,CID)
ALTER TABLE STUDENT
	ADD DEFAULT '男' FOR SSEX
ALTER TABLE STUDENT
	ADD CHECK(SSEX = '男' OR SSEX = '女')
ALTER TABLE SCORE
	ADD FOREIGN KEY(SID) REFERENCES STUDENT(SID)
ALTER TABLE SCORE
	ADD FOREIGN KEY(CID) REFERENCES COURSE(CID)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zMs0NQak-1655867492606)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps22.jpg)]

五、视图

5.1 创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-22xnSr9I-1655867492606)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps23.jpg)]

CREATE VIEW STSC(学号,姓名,课程,分数)
AS
SELECT A.SID,A.SNAME,B.CNAME,C.SCORE
FROM STUDENT A,COURSE B,SCORE C
WHERE A.SID = C.SID AND
	B.CID = C.CID
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5.2 查询视图

SELECT * 
FROM STSC
WHERE 分数 > 60
删除视图
DROP VIEW VIEWNAME
  • 1
  • 2
  • 3
  • 4
  • 5

六、定义函数

6.1 标量值函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V5XLhfH0-1655867492607)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps24.jpg)]

CREATE FUNCTION MYSUM
(@I INT,@J INT)
RETURNS INT
AS 
BEGIN
	DECLARE @S INT
	SET @S = @I + @J
	RETURN @S
END

DECLARE @M INT ,@N INT
SET @M = 1
SET @N = 2
SELECT DBO.MYSUM(@M,@N)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

6.2 内嵌表值函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mNXsTKml-1655867492607)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps25.jpg)]

CREATE FUNCTION SEEK
(@CID INT)
RETURNS TABLE
AS 
RETURN
(
	SELECT CID,CNAME
	FROM COURSE
	WHERE CID = @CID
)
SELECT *
FROM DBO.SEEK(01)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

6.3多语句表值函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGgpjLKt-1655867492608)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps26.jpg)]

CREATE FUNCTION SEEKS2(@CNAME VARCHAR(20))
RETURNS @SCORE TABLE
(
	STUID INT PRIMARY KEY NOT NULL,
	SEX VARCHAR(20) NOT NULL,
	BIRTH VARCHAR(20)
)
AS
BEGIN
	INSERT @SCORE
		SELECT SID,SSEX,SBIRTH
		FROM STUDENT 
		WHERE SID IN(
			SELECT SID FROM COURSE
			WHERE CNAME = @CNAME
		)
	RETURN
END
SELECT * FROM DBO.SEEKS('语文')
重命名和删除
EXEC SP_RENAME 'DBO.SEEK2','DBO.SEEKK'
DROP FUNCTION DBO.SEEK2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

七、存储过程、触发器、游标

7.1 存储过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ohbnwWYZ-1655867492608)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps27.jpg)]

CREATE PROC ADDD
@CID INT,
@AV INT OUTPUT
AS
	SET @AV = 
	(
		SELECT AVG(SCORE)
		FROM SCORE
		WHERE CID = @CID
	)
	
--调用
DECLARE @AV INT
EXEC DBO.ADDD '01',@AV OUTPUT
PRINT '平均分是' + STR(@AV)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

7.2 游标

7.2.1 声明

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XZVdBbDq-1655867492609)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps28.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ByjaFKtl-1655867492609)(file:///C:\Users\ALANSHAO\AppData\Local\Temp\ksohtml17096\wps29.jpg)]

删除
EXEC SP_RENAME ‘DBO.SEEK2’,‘DBO.SEEKK’
DROP FUNCTION DBO.SEEK2


## 七、存储过程、触发器、游标

### 7.1 存储过程

[外链图片转存中...(img-ohbnwWYZ-1655867492608)]

```sql
CREATE PROC ADDD
@CID INT,
@AV INT OUTPUT
AS
	SET @AV = 
	(
		SELECT AVG(SCORE)
		FROM SCORE
		WHERE CID = @CID
	)
	
--调用
DECLARE @AV INT
EXEC DBO.ADDD '01',@AV OUTPUT
PRINT '平均分是' + STR(@AV)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

7.2 游标

7.2.1 声明

[外链图片转存中…(img-XZVdBbDq-1655867492609)]

[外链图片转存中…(img-ByjaFKtl-1655867492609)]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/568938
推荐阅读
相关标签
  

闽ICP备14008679号