T-SQL编写SQL语句进行数据库和数据表的操作

数据库管理

创建数据库

  1. Window系统下创建文件夹D:\JXGLSYS\DATA
  2. 打开Microsoft SQL Server Managemant Studio集成环境窗口,单击“新建查询”
  3. 输入命令(以绩效管理系统JXGL举例)
CREATE DATABASE JXGL --创建数据库JXGL
ON 
(
NAME = JXGL, --用来定义数据库的逻辑名称,可用于T-SQL代码中引用数据库
FILENAME = 'D:\JXGLSYS\DATA\JXGL.mdf', --用于定义数据库文件在硬盘上的存放路径与文件名称
SIZE = 5, --定义数据文件的初始大小
FILEGROWTH = 1  --定义文件增长的递增量
)
LOG ON
(
NAME = JXGL_log,
FILENAME =  'D:\JXGLSYS\DATA\JXGL_log.ldf',
SIZE = 2,
MAXSIZE = 20,  --用于设置数据库允许达到的最大长度
FILEGROWTH = 10%  --定义文件增长的递增方式
)
  1. 运行,弹出窗口,创建成功

SQL server 命令创建表 sql server用命令创建数据库_表名

数据库更名

--新建查询
EXEC sp_renamedb <原有数据库名>,<修改数据库名>

删除数据库

--新建查询
DROP DATABASE <数据库名>

数据表管理

创建表

--新建查询
USE <数据库名> --在数据库中操作
CREATE TABLE <表名>  --创建表
(
<列名1> <数据类型> <列级完整性约束>, 
<列名2> <数据类型> <列级完整性约束>,
.....
)
[ON <filegroup>|<"default">] --指定default或者没有指定ON,存储于默认文件夹

列级完整性约束

  1. **默认值约束——DEFAULT 常量表达式 **
    若在表中定义了默认值约束,用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列,如果我们不设置默认值,系统默认为NULL。
  2. 非空值约束——NULL/NO NULL
  3. **主键约束——PRIMARY KEY **
    主键列不能为空
  4. 外键约束——FOREIGN KEY REFERENCES <父表名>(主键列名)
  5. 唯一性约束——UNIQUE
    唯一约束确保表中的一列数据没有相同的值。与主键约束类似,唯一约束也强制唯一性,但唯一约束用于非主键的一列或者多列的组合,且一个表可以定义多个唯一约束。
  6. 检查约束——CHECK (<逻辑表达式>)
    Check约束通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围。在列中更新数据时,所要输入的内容必须满足Check约束的条件,否则将无法正确输入。

例子

USE JXGL --在JXGL数据库中操作
CREATE TABLE 学生  --创建表学生
(
学号 varchar(20) PRIMARY KEY,  --设置主键
姓名 varchar(8) NOT NULL, --设置非空
性别 char(2) NOT NULL,
生日 date,
系编号 varchar(10) DEFAULT '001' --设置默认值001
)

CREATE TABLE 教师
(
教师编号 varchar(20) PRIMARY KEY,
姓名 varchar(8) NOT NULL,
职称 varchar(10) NOT NULL,
性别 char(2) NOT NULL 
	CHECK(性别 in('男','女')), --CHECK约束
系编号 varchar(10) NOT NULL
)

CREATE TABLE 课程
(
课程号 varchar(10) PRIMARY KEY,
课程名 varchar(20) NOT NULL,
学分 float NOT NULL,
先修课 varchar(20)
)

CREATE TABLE 选修
(
学号 varchar(20) FOREIGN KEY REFERENCES 学生(学号),
课程号 varchar(10) FOREIGN KEY REFERENCES 课程(课程号),
成绩 float NOT NULL,
)

删除表

USE <数据库名>
DROP TABLE <表名>

修改表结构

增加列

ALTER TABLE <表名>
ADD <列名1> <数据类型> <约束>,
ADD <列名2> <数据类型> <约束>

删除列

ALTER TABLE <表名>
DROP COLUMN <列名>

修改列

ALTER TABLE <表名>
ALTER COLUMN <列名> <数据结构> <约束>

增加约束

ALTER TABLE <表名>
ADD CONSTRANT <约束名> <约束>

删除约束

ALTER TABLE <表名>
DROP CONSTRAINT <约束名>

例子:增加列

USE JXGL
ALTER TABLE 课程
ADD 类别 varchar(10) NOT NULL,

例子:增加约束

USE JXGL
ALTER TABLE 学生
ADD CONSTRAINT CK_学生 check(性别 in('男','女'))

测试:

USE JXGL --测试,数据后面补齐
INSERT INTO 学生
VALUES('456','朱小七','鬼','2021-03-21','2021')

SQL server 命令创建表 sql server用命令创建数据库_表名_02

建立表的联系

SQL server 命令创建表 sql server用命令创建数据库_SQL server 命令创建表_03

SQL server 命令创建表 sql server用命令创建数据库_SQL server 命令创建表_04

表中数据的维护

插入新数据

INSERT INTO <表名>(<列名1>,<列名2>) VALUES(列名1数据,列名数据)

例子

USE JXGL
INSERT INTO 学生(学号,姓名,性别,生日)
VALUES('001','朱小七','男','2021-3-21')

删除数据

DELETE FROM <表名>
[WHERE <逻辑表达式>] --满足条件都会被删除

修改数据

UPDATE <表名>
SET <列名>=<表达式>
[WHERE <逻辑表达式>]

例子:在学生表中新增一列‘年龄’

增加列名

ALTER TABLE 学生
ADD 年龄 INT

为年龄增加数据

UPDATE 学生
SET 年龄 = YEAR(GETDATE())-YEAR(生日)