T-SQL 即 Transact-SQL,是 SQL 在 Microsoft SQL Server 上的增强版,它是用来让应用程式与 SQL Server 沟通的主要语言。T-SQL 提供标准 SQL 的 DDL 和 DML 功能,加上延伸的函数、系统预存程序以及程式设计结构(例如 IF 和 WHILE)让程式设计更有弹性。
创建数据库
CREATE DATABASE Students
ON PRIMARY
(
NAME='Students_data',
FILENAME='E:\Students_data.mdf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=10%
)
LOG ON
(
NAME='Students_log',
FILENAME='E:\Students_log.ldf',
SIZE=5MB,
FILEGROWTH=2MB
)
GO
- PRIMARY:该选项是一个关键字,指定主文件组中的文件
- LOG ON :指明事务日志的明确定义
- NAME:指定数据库的逻辑名称
- FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME的逻辑名称一一对应
- SIZE:指定数据库初始容量大小
- MAXSIZE :指定操作系统文件可以增长到的最大尺寸
- FILEGROWTH:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长
有时候不需要这么麻烦的创建
CREATE DATABASE Students
GO
删除数据库
DROP DATABASE Students
GO
创建表
USE Students
GO
CREATE TABLE StuInfo
(
StuID int IDENTITY(1,1),
StuName varchar(20) NOT NULL,
StuSex char(2) NOT NULL
)
GO
CREATE TABLE StuMarks
(
ExamNO int IDENTITY(1,1),
StuID varchar(20) NOT NULL,
Score int NOT NULL
)
GO
删除表
USE Students
GO
DROP TABLE StuInfo
GO
添加列
ALTER TABLE StuInfo ADD remarks varchar(20)
修改列
ALTER TABLE StuInfo ALTER COLUMN remarks nvarchar(20)
删除列
ALTER TABLE StuInfo DROP COLUMN remarks
添加约束
常见约束有:
- 主键约束(Primary Key Constraint)
- 唯一约束(Unique Constraint)
- 检查约束 (Check Constraint)
- 默认约束 (Default Constaint)
- 外键约束(Foreign Key Constaint)
-- 选择Students的数据库
USE Students
GO
-- 添加主键约束
ALTER TABLE StuInfo
ADD CONSTRAINT PK_StuID PRIMARY KEY(StuID)
-- 添加唯一约束
ALTER TABLE StuInfo
ADD CONSTRAINT UQ_StuName UNIQUE (StuName)
-- 添加默认约束
ALTER TABLE StuInfo
ADD CONSTRAINT DF_StuSex DEFAULT('男') FOR StuSex
-- 添加主键约束
ALTER TABLE StuMarks
ADD CONSTRAINT PK_ExamNO PRIMARY KEY (ExamNO)
-- 添加外键约束
ALTER TABLE StuMarks
ADD CONSTRAINT FK_StuID
FOREIGN KEY(StuID) REFERENCES StuInfo(StuID)
删除约束
ALTER TABLE StuInfo
DROP CONSTRAINT UQ_StuName
查找 表中所有约束
EXEC sp_helpconstraint @objname=StuInfo
上述是添加约束的常见方法,还有一种更加简单和常用的,就是在创建表时可以将实施约束写在一起
CREATE TABLE StuInfo
(
StuID int IDENTITY(1,1) PRIMARY KEY,
StuName varchar(20) NOT NULL UNIQUE,
StuSex char(2) NOT NULL DEFAULT('男')
)
CREATE TABLE StuMarks
(
ExamNO int NOT NULL PRIMARY KEY,
StuID int NOT NULL REFERENCES StuInfo(StuID),
Score int NOT NULL CHECK(Score >= 0 and Score <= 100)
)
SELECT语法
SELECT column1, column2, columnN FROM table_name;
select StuID, StuName,StuSex FROM StuInfo
INSERT语法
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]
VALUES (value1, value2, value3,...valueN);
INSERT INTO StuInfo(StuID,StuName,StuSex) VALUES(1,'张三',‘男’)
INSERT INTO StuInfo VALUES (2,'王五','女')
UPDATE语法
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
DELETE语法
DELETE FROM table_name
WHERE [condition];
TRUNCATE 语法
TEUNCATE TABLE table_name
插入多行数据
SELECT...INTO(不需要建StuInfo2)
SELECT * INTO StuInfo2 FROM StuInfo WHERE StuSex='女'
INSERT INTO...SELECT...(需要有StuInfo2表)
insert into StuInfo2(StuName,StuSex)
select StuName,StuSex from StuInfo