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