首页 > 数据库 > SQL Server > 正文

【SQL Server】表与表数据操作

2024-08-31 00:54:35
字体:
来源:转载
供稿:网友
【SQL Server】表与表数据操作

一. 创建表结构

USE TEST_427    --使用TEST_427这个数据库,表示对该数据库进行建表操作GOCREATE TABLE XSB    --创建XSB表(    StudentNo char(6) NOT NULL PRIMARY KEY,    --列名 + 类型 + 是否可为空,最后设置主键    StudentName char(8) NOT NULL,    StudentSex bit NULL DEFAULT 1,    --用default设置默认值,此处设为1    Sbrithday date NULL,    StudentSpecialty char(12) NULL,    SumCredit int NULL,    StudentRemarks varchar(500) NULL --最后不用逗号)

如果不加上 USE TEST_427,那么默认所创建的表为当前数据库的。

创建一个带计算列的表

--创建一个带计算列的表USE TEST_427GOCREATE TABLE TEST_1(    CourseID char(3) PRIMARY KEY,    --由于主键本身不能为空,所以在此可以不加NOT NULL,因为本身就不为空    SumScore real NOT NULL,    --real 是浮点型的一种,精度为7位有效数字    SumNumberOfStudent int NOT NULL,    AverageScore AS SumScore/SumNumberOfStudent PERSISTED --使用AS字段,还有persisted,表示留存)

如果没有使用PERSISTED关键字,则在计算列上不能添加 PRIMARY KEY, UNIQUE, DEFAULT等约束条件,由于计算列上的值是通过服务器计算得到的,所以在插入或者修改数据时不能对计算列赋值。

二. 修改表结构

--增加列

--在表中增加新列USE TEST_427GOALTER TABLE XSB    --修改表XSB    ADD scholarship tinyint NULL --增加奖学金这一列GOUSE TEST_427GOALTER TABLE TEST_1    ADD scholarship_1 tinyint NULL,--添加两个列,用逗号隔开即可        scholarship_2 tinyint NULLGO

--删除列

--在表中删除列USE TEST_427GOALTER TABLE XSB    DROP COLUMN scholarship --注意添加column表示删除的是列GO

在写这段代码的时候,容易忘了添加一些关键字,如column

所以我们可以翻译成字面意思来加深记忆和理解,翻译如下:

使用(use)数据库TEST_427(名称)

立即执行(上面的代码)

修改(alter)一个表(table),它的名称叫TEST_1

  删除(drop)表中一个列(column),它的名称叫scholarship

立即执行(上面的代码)

小技巧:在敲SQL语句的时候,可以在心里默念这样的中文,一来容易记忆,二来不容易出错漏掉一些关键字

--修改列属性

--修改表中的属性,使用alter--将姓名的列长度改为10,将出生日期的数据类型从data改为datatimeUSE TEST_427GOALTER TABLE XSB    ALTER COLUMN StudentName char(10) --使用alter表示更新修改GOALTER TABLE XSB    ALTER COLUMN Sbirthday datetimeGO

--删除表

--删除表USE TEST_427GODROP TABLE XSB --drop删除表

三. 操作表-插入记录

插入记录使用 insert 语句

--操作表数据-插入记录/*向数据库TEST_427的表XSB中插入如下一行数据:123456,天天,1,1994-11-21,软件工程,60,NULL*/USE TEST_427GOINSERT INTO XSB --不要忘了加上into     VALUES('123456','天天',1,'1994-11-21','软件工程',60,NULL) --values 单词后面有s

若表中有默认值,那么在插入表的时候,可以不用对默认值进行赋值操作。

在SQL Server中,可以一次插入多条记录,每条数据之间用逗号可开即可:

INSERT INTO XSB     VALUES    ('123457','晓晓',1,'1994-11-24','软件工程',60,NULL), --注意此处用逗号隔开    ('123458','明明',1,'1994-11-22','软件工程',60,NULL)

从表XSB中生成计算机专业的学生表,包括学号、姓名、专业,要求新表中的数据结果集中在前4行:

/*从表XSB中生成计算机专业的学生表,包括学号、姓名、专业,要求新表中的数据结果集中在前4行。*/--先创建表USE TEST_427GOCREATE TABLE XSB1(    studentNo char(10) PRIMARY KEY,    studentName char(12) NOT NULL,    speiality char(10) NULL)--插入数据INSERT TOP(4) INTO XSB1    --此处top(4)表示插入的数据为另一个表的前4个数据    SELECT StudentNo,StudentName,StudentSpecialty --按照题目要求,插入的是XSB表中的这几个元素        FROM XSB    --用from表示来自哪个表        WHERE StudentSpecialty = '软件工程' --约束条件GO

上面这条INSERT语句的功能是:将XSB中专业名为“软件工程”的各记录的学号、姓名、专业名列的值插入到表XSB1的各行中。

使用下面的查询语句进行检验查询:

SELECT *     FROM XSB1

运行结果:

四. 操作表-删除记录

可以用delete语句或者truncate table语句来实现

举例1:将TEST_427数据库的XSB中总学分大于50的行删除

USE TEST_427GODELETE    --使用delete删除    FROM XSB    --来自这张表    WHERE SumCredit < 50;    --条件GO

举例2:将TEST——427数据库的XSB中备注为空的行删除

DELETE     FROM XSB    WHERE StudentRemarks IS NULL --注意isGO

使用TRUNCATE TABLE删除表数据,将会删除表中的所有数据,因此也称为清除表数据语句。注意,使用该语句无法恢复,所以使用时要十分小心。

TRUNCATE TABLE XSB --XSB为所要删除的表名

五. 操作表-修改记录

用update语句来修改数据

举例1:将XSB中学号为123450的学生备注为三好学生

--修改数据USE TEST_427GOUPDATE XSB    SET StudentRemarks = '三好学生' --set表示修改    WHERE StudentNo = '123450'GO

运行结果:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表