T-SQL语句总结
1.添加数据
语法1:INSERT [INTO] 表名 (字段1,字段2,…)VALUES(值1,值2,…)
例如1:INSERT INTO stuInfo (stuName, stuNo, stuAge) VALUES ('王五', 's333', 22)
语法2:INSERT INTO 新表名 (新字段1,新字段2,…)SELECT (源字段1,源字段2,…)FROM 源表名 ---必须先创建新表
例如2:INSERT INTO TongXunLu ('姓名', '地址', '电子邮件') SELECT Sname, Saddress, SEmail FROM Students
语法3:SELECT 源表名.字段1, 源表名.字段2, … IDENTITY(数据类型,标识种子,标识增长量)AS 列名 INTO 新表名 FROM 源表名
例如3:SELECT Students.Sname, Students.SAddress, Students.SEmail INTO TongXunLu FROM Students
语法4:INSERT 表名 (字段1,字段2,…) SELECT (值1,值2,…) UNION SELECT (值1,值2,…) UNION …
2.修改数据
语法:UPDATE 表名 SET 字段1=值1,字段2=值2,…WHERE(条件)
例如:UPDATE stuInfo SET stuAge = 25 WHERE stuName = '张三'
3.查询数据
SELECT 字段1,字段2,… FROM 表名 WHERE(条件) ORDER BY 字段名
4.删除数据
语法1:DELETE FROM 表名 WHERE(条件)---------------不删除标识种子,DELETE后不能出现字段
例如1:DELETE FROM Students WHERE Sname = '李四'
语法2:TRUNCATE TABLE 表名 ---------------没有条件的WHERE,同时删除标识种子。
但执行速度比DELETE快,而且使用系统资源和事务日志资源更少。
不能用于有外键约束引用的表。
例如2:TRUNCATE TABLE Students
数据库文件的组成
主数据文件:*.mdf
次数据文件:*.ndf(可选)
日志文件:*.ldf(可选)
数据库实现语句
创建数据库
CREATE DATABASE 数据库名
ON [PRIMARY]
(
<数据文件参数> [,…n][<文件组参数>]
)
[LOG ON]
(
{<日志文件参数> [, …n]}
)
文件具体参数 PRIMARY, FILENAME, SIZE, MAXSIZE, FILEGROWNTH
删除数据库
DROP DATABASE 数据库名
注:SQL 将数据库清单都存放在master系统数据库中的sysdatabases表中
GO
IF EXISTS (SELECT * FROM sysdatabases WHERE name = 'bbsDB')
DROP DATABASE bbsDB
GO
EXEC xp_cmdshell 'mkdir D:/WorkStation/DBproject'
--EXEC xp_cmdshell 'dir *.txt', NO_OUTPUT
CREATE DATABASE bbsDB
ON
(
NAME = 'bbsDB_data',
FILENAME = 'D:/WorkStation/DBproject/bbsDB_data.mdf',
SIZE = 10 MB,
FILEGROWTH = 20%
)
LOG ON
(
NAME = 'bbsDB_log',
FILENAME = 'D:/WorkStation/DBproject/bbsDB_log.ldf',
SIZE = 1 MB,
MAXSIZE = 20 MB,
FILEGROWTH = 10%
)
GO
创建表
CREATE TABLE 表名
(
字段1 数据类型 列的特征,
字段2 数据类型 列的特征,
…
)
注:列的特征包括:是否为空(NULL)、是否是标识列(自动编号)、是否有默认值、是否主键等
删除表
DROP TABLE 表名
注:SQL 将该数据库表的清单存放在该数据库的系统表sysobjects中
GO
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'bbsUsers')
DROP TABLE bbsUsers
GO
CREATE TABLE bbsUsers
(
UID INT IDENTITY(1,1) NOT NULL,
Uname VARCHAR(15) NOT NULL,
Upassword VARCHAR(10) NOT NULL,
Uemail VARCHAR(20) NOT NULL,
Usex BIT NOT NULL,
Uclass INT NULL,
Uremark VARCHAR(20) NULL,
UregDate DATETIME NOT NULL,
Ustate INT NULL,
Upoint INT NULL
)
GO
SELECT * FROM bbsUsers
GO
ALTER TABLE bbsUsers ADD CONSTRAINT PK_UID
PRIMARY KEY(UID)
ALTER TABLE bbsUsers ADD CONSTRAINT DF_Upassword
DEFAULT(888888) FOR Upassword
ALTER TABLE bbsUsers ADD CONSTRAINT DF_Usex
DEFAULT(1) FOR Usex
ALTER TABLE bbsUsers ADD CONSTRAINT DF_Uclass
DEFAULT(1) FOR Uclass
ALTER TABLE bbsUsers ADD CONSTRAINT DF_UregDate
DEFAULT(getDate()) FOR UregDate
ALTER TABLE bbsUsers ADD CONSTRAINT DF_Ustate
DEFAULT(0) FOR Ustate
ALTER TABLE bbsUsers ADD CONSTRAINT DF_Upoint
DEFAULT(20) FOR Upoint
ALTER TABLE bbsUsers ADD CONSTRAINT CK_Uemail
CHECK(Uemail LIKE '%@%')
ALTER TABLE bbsUsers ADD CONSTRAINT CK_Upassword
CHECK(LEN(Upassword) >= 6)
GO