正文

Transact-SQL数据库基本操作(1)2008-08-09 19:37:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xman/37450.html

分享到:

一.创建、修改、删除数据库(database)

/*创建数据库*/

create database USER_INFO

/*

ON(可选):指定存放数据库的数据文件信息;

LOG ON(可选):指明事务日志文件的明确定义。

FILENAME用于指定数据库文件存储目录,否则默认存放在

%Program Files%Microsoft SQL Server\MSSQL\Data

*/

ON

(

NAME = USER_INFO_Data,

FILENAME ='d:\My Documents\

SQL Server 2000-DB\USER_INFO.mdf'

)

LOG ON

(

NAME = USER_INFO_log,

FILENAME ='d:\My Documents\

SQL Server 2000-DB\USER_INFO.ldf'

)

/*修改数据库名称*/

sp_renamedb 'USER_INFO','ExamSystem';

/*删除数据库*/

drop database USER_INFO

二.创建、修改、删除数据表(table)

/*创建部门表*/

create table DEPARTMENT

(DEPT_ID         int            NOT NULL,

 DEPT_NAME       varchar(20)  NOT NULL,

 PARENT_DEPT_ID  int          default NULL,

 primary key (DEPT_ID)

)

/*创建用户信息表*/

create table USER_INFO

(

/*字段名   数据类型       能否为空 */

USER_NO  CHAR(6)      NOT NULL,

NAME     VARCHAR(20)  NOT NULL,

DEPT_ID  INTEGER      NOT NULL,

JOB_ID   INTEGER      NOT NULL,

GRADE    TINYINT      NOT NULL,

STATE    TINYINT      NOT NULL

primary key (USER_NO)/*定义主键*/

foreign key (DEPT_ID)/*指定外键*/

            references DEPARTMENT

            on delete set null

)

/*references DEPARTMENT on delete [restrict|cascade|set null]*/

1.restrict:表示当表DEPTMENT中的某DEPT_ID被表USER_INFO引用时,禁止删除表DEPTMENT中的DEPT_ID=USER_INFO.DEPT_ID的部门记录。

2.cascade: 表示当表DEPTMENT中的某DEPT_ID被表USER_INFO引用时,若删除表DEPTMENT中的DEPT_ID=USER_INFO.DEPT_ID的部门记录,则表USER_INFO中的该条记录也被删除。

3.set null: 表示当表DEPTMENT中的某DEPT_ID被表USER_INFO引用时,若删除表DEPTMENT中的DEPT_ID=USER_INFO.DEPT_ID的部门记录,则表USER_INFO中的该条记录的DEPT_ID相应更改为null

/*修改数据表名称*/

sp_rename 'USER_INFO','USER_DETAILS';

/*删除表*/

drop table USER_INFO

三.增加、修改、删除表字段(attribute)

/*修改字段名:将表USER_INFOGRADE字段重命名为RANK*/

sp_rename  'USER_INFO.[GRADE]','RANK','COLUMN';

/*修改字段的数据类型*/

alter table USER_INFO modify JOB_ID tinyint;

/*增加新字段*/

alter table USER_INFO ADD DELETED tinyint;

/*删除字段*/

alter table USER_INFO drop STATE;

四.创建、修改、删除数据记录(record)

/*增加记录*/

insert into USER_INFO

values('000001','Funny',5055,18,3,1);

insert into USER_INFO

values('000002','John',5056,19,3,1);

/*修改记录:如果没有where条件限制,将应用到所有记录*/

update USER_INFO set NAME='Fantasy' where USER_NO=

'000001';

/*删除记录:如果没有where条件限制,将应用到所有记录*/

delete from USER_INFO where USER_NO='000001';

----------------to be continued-----------------

阅读(5153) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册