SQL Server 2000 (SP4)笔记整理(二):数据库表 ===[转] --==========================================================-- USE Master --检查是否存在测试表,若存在,则删除之 CREATE TABLE MyTestTable1 --插入数据: /* INSERT INTO MyTestTable1(编号,姓名,别名,性别,年龄) 在当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'MyTestTable1' 中的标识列插入显式值。 */ --正确的语句,方法一 --查询数据(注意编号的自增性) SELECT * FROM MyTestTable1 /* 结果集 编号 姓名 别名 性别 年龄 */ --验证 默认值,不插入[性别]的值,则系统取默认值 --查询 /* 结果集 */ --验证 CHECK,插入[年龄]的值超过100,则系统报错 /* 结果集 INSERT 语句与 COLUMN CHECK 约束 'CK__MyTestTable1__年龄__30B91D22' 冲突。该冲突发生于数据库 'master',表 'MyTestTable1', column '年龄'。 */ --修改表 --增加列 --修改列定义 --清空表的数据 --方法一(删除的数据将记入日志) --如果是删除特定的行,则类似于 DELETE FROM MyTestTable1 WHERE 编号 = 1 --方法二(删除的数据不记入日志,执行效率高) --删除表(谨慎使用!)
-- 作者:彭建军
-- 日期:2005-06-22
-- 页面:Page2
-- 概要:数据库表的创建、修改、删除以及默认值、CHECK、IDENTITY
-- 说明:以下示例均在[查询分析器]下进行,可配合图形界面进行测试
--==========================================================--
GO
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'U' AND NAME = 'MyTestTable1')
DROP TABLE MyTestTable1
GO
(
编号 INT PRIMARY KEY NOT NULL IDENTITY(1,1),
姓名 CHAR(8),
别名 VARCHAR(8),
性别 CHAR(2) DEFAULT ('男'),
年龄 INT CHECK(年龄>0 AND 年龄<100),
)ON [PRIMARY]
GO
下面的语句将不能执行,因为 [编号] 列为系统自动自增列。
VALUES (1,'彭建军','彭建军','男',25)
GO
INSERT INTO MyTestTable1(姓名,别名,性别,年龄)
VALUES ('彭建军','彭建军','男',25)
GO
--方法二:
INSERT INTO MyTestTable1(姓名,别名,性别,年龄)
SELECT '老转','老转','男',30 UNION ALL
SELECT '钱妮','妮子','女',28
GO
GO
----------- -------- -------- ---- -----------
1 彭建军 彭建军 男 25
2 老转 老转 男 30
3 钱妮 妮子 女 28
INSERT INTO MyTestTable1(姓名,别名,年龄)
SELECT '潘颖','梨窝浅笑',25
GO
SELECT * FROM MyTestTable1 WHERE 姓名 = '潘颖'
GO
编号 姓名 别名 性别 年龄
----------- -------- -------- ---- -----------
4 潘颖 梨窝浅笑 男 25
INSERT INTO MyTestTable1(姓名,别名,性别,年龄)
SELECT '蛋蛋','蛋蛋','女',120
GO
语句已终止。
ALTER Table MyTestTable1
ADD 备注 VARCHAR(50)
GO
ALTER Table MyTestTable1
ALTER COLUMN 备注 VARCHAR(100)
GO
DELETE FROM MyTestTable1
GO
TRUNCATE TABLE MyTestTable1
GO
DROP TABLE MyTestTable1
GO
--==========================================================--
-- 作者:彭建军
-- 日期:2005-06-22
-- 页面:Page2
-- 概要:数据库表的创建、修改、删除以及默认值、CHECK、IDENTITY
-- 说明:以下示例均在[查询分析器]下进行,可配合图形界面进行测试
--==========================================================--
USE Master
GO
--检查是否存在测试表,若存在,则删除之
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'U' AND NAME = 'MyTestTable1')
DROP TABLE MyTestTable1
GO
CREATE TABLE MyTestTable1
(
编号 INT PRIMARY KEY NOT NULL IDENTITY(1,1),
姓名 CHAR(8),
别名 VARCHAR(8),
性别 CHAR(2) DEFAULT ('男'),
年龄 INT CHECK(年龄>0 AND 年龄<100),
)ON [PRIMARY]
GO
--插入数据:
/*
下面的语句将不能执行,因为 [编号] 列为系统自动自增列。
INSERT INTO MyTestTable1(编号,姓名,别名,性别,年龄)
VALUES (1,'彭建军','彭建军','男',25)
GO
在当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'MyTestTable1' 中的标识列插入显式值。
*/
--正确的语句,方法一
INSERT INTO MyTestTable1(姓名,别名,性别,年龄)
VALUES ('彭建军','彭建军','男',25)
GO
--方法二:
INSERT INTO MyTestTable1(姓名,别名,性别,年龄)
SELECT '老转','老转','男',30 UNION ALL
SELECT '钱妮','妮子','女',28
GO
--查询数据(注意编号的自增性)
SELECT * FROM MyTestTable1
GO
/*
结果集
编号 姓名 别名 性别 年龄
----------- -------- -------- ---- -----------
1 彭建军 彭建军 男 25
2 老转 老转 男 30
3 钱妮 妮子 女 28
*/
--验证 默认值,不插入[性别]的值,则系统取默认值
INSERT INTO MyTestTable1(姓名,别名,年龄)
SELECT '潘颖','梨窝浅笑',25
GO
--查询
SELECT * FROM MyTestTable1 WHERE 姓名 = '潘颖'
GO
/*
结果集
编号 姓名 别名 性别 年龄
----------- -------- -------- ---- -----------
4 潘颖 梨窝浅笑 男 25
*/
--验证 CHECK,插入[年龄]的值超过100,则系统报错
INSERT INTO MyTestTable1(姓名,别名,性别,年龄)
SELECT '蛋蛋','蛋蛋','女',120
GO
/*
结果集
INSERT 语句与 COLUMN CHECK 约束 'CK__MyTestTable1__年龄__30B91D22' 冲突。该冲突发生于数据库 'master',表 'MyTestTable1', column '年龄'。
语句已终止。
*/
--修改表
--增加列
ALTER Table MyTestTable1
ADD 备注 VARCHAR(50)
GO
--修改列定义
ALTER Table MyTestTable1
ALTER COLUMN 备注 VARCHAR(100)
GO
--清空表的数据
--方法一(删除的数据将记入日志)
DELETE FROM MyTestTable1
GO
--如果是删除特定的行,则类似于 DELETE FROM MyTestTable1 WHERE 编号 = 1
--方法二(删除的数据不记入日志,执行效率高)
TRUNCATE TABLE MyTestTable1
GO
--删除表(谨慎使用!)
DROP TABLE MyTestTable1
GO
本文整理了SQL Server 2000(SP4)数据库表相关操作笔记。包含表的创建、修改、删除,以及默认值、CHECK、IDENTITY的使用示例。还介绍了数据插入、查询、清空等操作,同时给出了不同操作的正确与错误示例及结果。
笔记整理(二):数据库表&spm=1001.2101.3001.5002&articleId=525206&d=1&t=3&u=da661ab42447492c890bfbded37932d3)
187

被折叠的 条评论
为什么被折叠?



