现在的位置: 首页 > 综合 > 正文

数据库的实现

2013年08月28日 ⁄ 综合 ⁄ 共 2758字 ⁄ 字号 评论关闭

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表中

USE master
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中

USE bbsDB
GO

IF EXISTS (SELECT * FROM sysobjects WHERE name = 'bbsUsers')
DROP TABLE bbsUsers
GO

CREATE TABLE bbsUsers
(
    UID 
INT IDENTITY(1,1NOT NULL,
    Uname 
VARCHAR(15NOT NULL,
    Upassword 
VARCHAR(10NOT NULL,
    Uemail 
VARCHAR(20NOT NULL,
    Usex 
BIT  NOT NULL,
    Uclass 
INT NULL,
    Uremark 
VARCHAR(20NULL,
    UregDate 
DATETIME NOT NULL,
    Ustate 
INT NULL,
    Upoint 
INT NULL
)
GO

SELECT * FROM bbsUsers

 

 

USE bbsDB
GO

ALTER TABLE bbsUsers ADD CONSTRAINT PK_UID 
PRIMARY KEY(UID)

ALTER TABLE bbsUsers ADD CONSTRAINT DF_Upassword
DEFAULT(888888FOR Upassword

ALTER TABLE bbsUsers ADD CONSTRAINT DF_Usex
DEFAULT(1FOR Usex

ALTER TABLE bbsUsers ADD CONSTRAINT DF_Uclass
DEFAULT(1FOR Uclass

ALTER TABLE bbsUsers ADD CONSTRAINT DF_UregDate
DEFAULT(getDate()) FOR UregDate

ALTER TABLE bbsUsers ADD CONSTRAINT DF_Ustate
DEFAULT(0FOR Ustate

ALTER TABLE bbsUsers ADD CONSTRAINT DF_Upoint
DEFAULT(20FOR Upoint

ALTER TABLE bbsUsers ADD CONSTRAINT CK_Uemail
CHECK(Uemail LIKE '%@%')

ALTER TABLE bbsUsers ADD CONSTRAINT CK_Upassword
CHECK(LEN(Upassword) >= 6)
GO

抱歉!评论已关闭.