1.SQL Server安装流程

可以在官网下载SQL安装 版本选择:Developer版本(全功能免费版)
注意事项:整个安装过程基本不会有坑,安装完后需要按照它的指示安装SSMS,一个用于管理数据库的IDE。(不安装也可以,后面使用vscode的插件可以直接在vscode上进行开发,但SSMS的功能要更完善,推荐还是下载,跟vscode配合使用

2.在vscode中搭建开发环境

(1)安装插件

vscode配置mysql文件数据表创建 vscode sql_sql


安装插件后,软件左边会多一个小图标,指示数据库。

(2)连接本地库

  1. 打开任意一个.sql文件
  2. 按F1打开命令输入框
  3. 输入sql,依次选择Connect->Create Connection Profile
  4. 输入连接信息:服务器名填localhost,用户名选择Integrated,其他的都可以直接空格跳过
  5. 连接成功后,vscode会自动存储连接信息,下次直接点connect即可连接。
  • 至此,环境搭建就完成了,接下来就是快乐的玩耍环节

(3)SQL基础语法的使用(以学校管理为例)

  1. 创建和使用数据库
--创建School数据库
CREATE DATABASE School;
GO
USE School;
GO
  1. 创建图表
--创建图表
CREATE TABLE Student
(
    --列级完整性约束条件,Sno为主键
	Sno CHAR(9) PRIMARY KEY,

    --列级完整性约束条件,Sname不为空	
	Sname CHAR(20) NOT NULL,
	Ssex CHAR(2),
	Sage SMALLINT,				/* SMALLINT 的范围为 0-255 */
	Sdept CHAR(20)
);

CREATE TABLE Course
(
	Cno CHAR(4) PRIMARY KEY,
	Cname CHAR(40) NOT NULL,	
	Cpno CHAR(4),
	Credit TINYINT,
);

CREATE TABLE SC
(
	Sno CHAR(9),
	Cno CHAR(4),
	Grade TINYINT,
    --主码由两个属性构成,必须作为表级完整性进行定义
	PRIMARY KEY (Sno, Cno),		

    --表级完整性约束条件,Sno 是外码,被参照表是 Student,被参照列是Sno			
	FOREIGN KEY (Sno) REFERENCES Student(Sno),	

    --表级完整性约束条件,Cno 是外码,被参照表是 Course,被参照列是Cno
	FOREIGN KEY (Cno) REFERENCES Course(Cno),	
);
  1. 向表中插入数据
--向表中插入数据
INSERT INTO 
Student(Sno,Sname,Ssex,Sage,Sdept)
VALUES
('201215121','李勇','男',20,'CS'),
('201215122','刘晨','女',19,'CS'),
('201215123','王杰','女',18,'MA'),
('201215125','张立','男',19,'IS')

INSERT INTO
Course(Cno, Cname, Credit)
VALUES
('6','数据处理',2),
('1','数据库',4),
('2','高等数学',2),
('3','信息系统',4),
('4','操作系统',3),
('5','数据结构',4)

INSERT INTO
SC(Sno, Cno, Grade)
VALUES
('201215121','1',92),
('201215121','2',85),
('201215121','3',88),
('201215122','2',90),
('201215122','3',80)
  1. 数据查询
--查询数据库School中的数据数据
USE School;
GO

/* -----------------一般查询----------------- */
--1.查询学生成绩表中所有数据
SELECT * FROM SC;

--2.查询学生学号和所修课程
SELECT 
    Sno, Cno
FROM
    SC;

--3.查询学生信息,出生年份,所在院系
SELECT
	Sname NAME, 2021-Sage BIRTHYEAR, LOWER(Sdept) DEPARTMENT
FROM	
	Student

/* -----------------连接查询----------------- */

--1.查询学生学号,姓名,性别,所在院系,选修课程号及对应成绩
SELECT 
	Student.Sno SNO, Sname NAME, Ssex SEX, LOWER(Sdept) DEPARTMENT, Cno CNO, Grade GRADE
FROM
	Student, SC
WHERE
	Student.Sno = SC.Sno;

--2.查询学生学号,姓名,所在院系,所修课程的课程号,课程名称和对应成绩。
SELECT 
	Student.Sno Sno, Sname, Sdept, SC.Cno, Cname, Grade
FROM
	Student, Course, SC
WHERE
	Student.Sno = SC.Sno AND SC.Cno = Course.Cno


/* -----------------嵌套查询----------------- */
--1.查询同时选修了信息系统的同学名称和院系
SELECT 
	Sno, Sname, Sdept
FROM
	Student
WHERE
	Student.Sno IN
	(
		SELECT 
			Sno
		FROM
			SC
		WHERE SC.Cno IN
		(
			SELECT
				Cno
			FROM
				Course
			WHERE
				Cname = '信息系统'
		)	
	)

--2.查询同时选修了信息系统的同学名称和院系
SELECT 
	Sname, Sage
FROM
	Student
WHERE
	Sage = 
	(SELECT 
		MAX(Sage)
	FROM 
		Student
	)

/* -----------------集合查询----------------- */
--查询同时选修课程号为1和课程号为2课程的学生
SELECT 
	Sno, Sname
FROM
	Student
WHERE
	Sno IN
	(
		SELECT 
			Sno 
		FROM 
			SC
		WHERE 
			Cno = '1'
		INTERSECT
		SELECT 
			Sno 
		FROM 
			SC
		WHERE 
			Cno = '2'
	)

/* -----------------基于派生类的查询----------------- */
--找出每个学生超过他自己选修课程平均成绩的课程号
SELECT 
	Sno, Cno
FROM
	SC, (
			SELECT
				Sno, AVG(Grade)
			FROM
				SC
			GROUP BY
				Sno
		) AS Avg_sc(avg_sno, avg_grade)
WHERE
	SC.Sno = Avg_sc.avg_sno AND SC.Grade >= Avg_sc.avg_grade
  1. 数据更新
USE School;
GO

--将学号为 201215122 的学生的年龄修改为20岁
UPDATE
	Student
SET
	Sage = 20
WHERE
	Sno='201215122'

--将所有学生的年龄增加1岁。
UPDATE
	Student
SET
	Sage = Sage + 1
  1. 数据删除
--删除学号为 201215125 的学生信息
DELETE
FROM
	Student
WHERE
	Sno = '201215125'

SELECT 
	*
FROM
	Student

总结:

其实数据库无非就是管理库的内容和查询库信息两种大操作,再细分到各种小的语法,基本的语法比较简单易懂,难的在于查询规则的制定,这部分内容之后会随着学习继续更新,也会着手做一些简单的数据库项目。