2023年6月21日发(作者:)

SQL数据库操作复习

一、在查询分析器中使用SQL语句完成以下练习,并记下答案。

1. 创建表stu

答案:

create table stu (id varchar(10),name

字段名 数据类型 长度

varchar(20),age int)

id varchar 10

name varchar 20

age int 4

2.向stu 表内插入两条记录,第一条记录内容是id字段为1001;name字段为zhangsan;age字段为20 。第二条记录内容是id字段为1003;name字段为wangwu;age字段为18 。

答案:insert into stu values('1001','zhangsan',20)

insert into stu values('1003','wangwu',18)

3.在表stu上创建字段id的索引test_idx 。

答案:create index test_idx on stu(id)

4.在表test上创建字段xuehao的唯一索引xuehao_idx 。字段名 数据类型 长度

若表不存在请按右面要求创建表 。

xuehao

varchar 10

答案: create table test(xuehao varchar(10),chengji

chengji decimal 5,1

decimal(5,1),kaoshirq datetime)

kaoshirq 8

日期

create unique index xuehao_idx on test(xuehao)

5.向test 表内插入三条记录,第一条记录内容是xuehao字段为1001;changji字段为86.5;kaoshirq 字段为“2007年5月7日” 。第二条记录内容是xuehao字段为1003;chengji字段为88 ;第三条记录内容是xuehao字段为1005。

答案:insert into test values('1001',86.5,'2007-5-7')

insert into test values('1003',88,null)

insert into test(xuehao) values('1005')

6.修改stu 表内id为1003的记录,将其name字段的内容改为lisi。

答案:update stu set name='lisi' where id='1003'

7.查询test 表的所有记录,并按chengji降序排列。

答案:select * from test order by chengji desc

8.查询stu 表中id为1003的记录。

答案:select * from stu where id='1003'

9.删除test 表内xuehao为1005的记录。

答案:delete from test where xuehao='1005'

10.创建视图v_test ,要求包含stu 表中所有age大于10的id字段和name字段的内容。

答案:create view v_test as select id,name from stu where age>10

11.创建视图v_test001 ,要求包含stu表中的id字段和name字段;test表中chengji的内容。( stu 表中id 字段即为test表中xuehao 字段)

答案: create view v_test001 as select id,name,chengji from stu,test where id=xuehao

12.创建存储过程p_test 显示test表中所有内容。

答案: create procedure p_test as select * from test

13.创建触发器t_test ,要求当运行了插入、更新、删除test 表中记录的SQL命令后,立即显示test表中所有内容。

答案:create trigger t_test on test after insert,update,delete as select * from test

14.查询stu 表内所有记录,要求输出id、name字段以及name字段的前3个字符(显示名为“f_name”)。

答案:select id,name,left(name,3) f_name from stu

15.修改stu表结构,将name字段设置成不允许为空。 答案:alter table stu alter column name varchar(20) not null

16.复制test表结构到一个名为test001的新表。

答案:drop table test001

select top 0 * into test001 from test

17.删除test001 表。

答案:drop table test001

二、附录

SQL常用命令汇编

1. 创建表:create table 表名 (字段1 类型(长度),字段2 类型(长度),„„)

常用类型:int 整型,不能设置长度

decimal 或 numeric 浮点型,可设置(小数点前,小数点后)

varchar 或 char 字符型,可设置(长度)

datetime 日期型,不能设置长度

2. 创建索引:create index 索引名 on 表名(字段名)

unique 唯一

clustered 聚集 nonclustered 非聚集

默认建立的是升序排列的非聚集索引

3. 插入记录:insert into表名 values(字段值1,字段值2,„„)

字段值个数与表结构吻合,字符型和日期型的字段值要加单引号

或: insert into表名(字段1,字段2,„„)values(字段值1,字段值2,„„)

4. 更新记录:update表名 set字段名=字段值 where 条件

5. 删除记录:delete from表名where 条件

6. 查询命令: select 输出字段名表 from 表名where 条件 order by 排序字段 (asc|desc 升|降序)

或: select 输出字段名表 from 表名where 条件 group by分组字段

(另外:分组子句可加 having

分组条件;输出字段名表后面可加 into

子句输出至新表;输出字段名表前面可加top

子句指定输出行数)

输出字段名表的几种形式:

*

表示输出所有字段。

字段1,字段2,„„ 表示选择输出字段。

表达式(字段名) as 显示名,„„ 表示列名是显示名,输出表达式计算值。

7. 创建视图:create view 视图名 as 查询命令

8. 创建存储过程:create procedure 过程名 as查询命令

10.修改表结构

alter table 表名 add 字段名 类型 null / not null (空或非空)

alter table 表名 drop column 字段名

alter table 表名 alter column 字段名 类型 null / not null (空或非空)

11.使用系统存储过程

查看数据表结构信息: sp_help 数据表名

12.删除命令的使用

删除数据表: drop table 数据表名

删除表的索引: drop index 数据表名. 索引名

删除视图: drop view 视图名

删除存储过程: drop procedure 存储过程名

删除表的触发器信息: drop trigger 触发器名

2023年6月21日发(作者:)

SQL数据库操作复习

一、在查询分析器中使用SQL语句完成以下练习,并记下答案。

1. 创建表stu

答案:

create table stu (id varchar(10),name

字段名 数据类型 长度

varchar(20),age int)

id varchar 10

name varchar 20

age int 4

2.向stu 表内插入两条记录,第一条记录内容是id字段为1001;name字段为zhangsan;age字段为20 。第二条记录内容是id字段为1003;name字段为wangwu;age字段为18 。

答案:insert into stu values('1001','zhangsan',20)

insert into stu values('1003','wangwu',18)

3.在表stu上创建字段id的索引test_idx 。

答案:create index test_idx on stu(id)

4.在表test上创建字段xuehao的唯一索引xuehao_idx 。字段名 数据类型 长度

若表不存在请按右面要求创建表 。

xuehao

varchar 10

答案: create table test(xuehao varchar(10),chengji

chengji decimal 5,1

decimal(5,1),kaoshirq datetime)

kaoshirq 8

日期

create unique index xuehao_idx on test(xuehao)

5.向test 表内插入三条记录,第一条记录内容是xuehao字段为1001;changji字段为86.5;kaoshirq 字段为“2007年5月7日” 。第二条记录内容是xuehao字段为1003;chengji字段为88 ;第三条记录内容是xuehao字段为1005。

答案:insert into test values('1001',86.5,'2007-5-7')

insert into test values('1003',88,null)

insert into test(xuehao) values('1005')

6.修改stu 表内id为1003的记录,将其name字段的内容改为lisi。

答案:update stu set name='lisi' where id='1003'

7.查询test 表的所有记录,并按chengji降序排列。

答案:select * from test order by chengji desc

8.查询stu 表中id为1003的记录。

答案:select * from stu where id='1003'

9.删除test 表内xuehao为1005的记录。

答案:delete from test where xuehao='1005'

10.创建视图v_test ,要求包含stu 表中所有age大于10的id字段和name字段的内容。

答案:create view v_test as select id,name from stu where age>10

11.创建视图v_test001 ,要求包含stu表中的id字段和name字段;test表中chengji的内容。( stu 表中id 字段即为test表中xuehao 字段)

答案: create view v_test001 as select id,name,chengji from stu,test where id=xuehao

12.创建存储过程p_test 显示test表中所有内容。

答案: create procedure p_test as select * from test

13.创建触发器t_test ,要求当运行了插入、更新、删除test 表中记录的SQL命令后,立即显示test表中所有内容。

答案:create trigger t_test on test after insert,update,delete as select * from test

14.查询stu 表内所有记录,要求输出id、name字段以及name字段的前3个字符(显示名为“f_name”)。

答案:select id,name,left(name,3) f_name from stu

15.修改stu表结构,将name字段设置成不允许为空。 答案:alter table stu alter column name varchar(20) not null

16.复制test表结构到一个名为test001的新表。

答案:drop table test001

select top 0 * into test001 from test

17.删除test001 表。

答案:drop table test001

二、附录

SQL常用命令汇编

1. 创建表:create table 表名 (字段1 类型(长度),字段2 类型(长度),„„)

常用类型:int 整型,不能设置长度

decimal 或 numeric 浮点型,可设置(小数点前,小数点后)

varchar 或 char 字符型,可设置(长度)

datetime 日期型,不能设置长度

2. 创建索引:create index 索引名 on 表名(字段名)

unique 唯一

clustered 聚集 nonclustered 非聚集

默认建立的是升序排列的非聚集索引

3. 插入记录:insert into表名 values(字段值1,字段值2,„„)

字段值个数与表结构吻合,字符型和日期型的字段值要加单引号

或: insert into表名(字段1,字段2,„„)values(字段值1,字段值2,„„)

4. 更新记录:update表名 set字段名=字段值 where 条件

5. 删除记录:delete from表名where 条件

6. 查询命令: select 输出字段名表 from 表名where 条件 order by 排序字段 (asc|desc 升|降序)

或: select 输出字段名表 from 表名where 条件 group by分组字段

(另外:分组子句可加 having

分组条件;输出字段名表后面可加 into

子句输出至新表;输出字段名表前面可加top

子句指定输出行数)

输出字段名表的几种形式:

*

表示输出所有字段。

字段1,字段2,„„ 表示选择输出字段。

表达式(字段名) as 显示名,„„ 表示列名是显示名,输出表达式计算值。

7. 创建视图:create view 视图名 as 查询命令

8. 创建存储过程:create procedure 过程名 as查询命令

10.修改表结构

alter table 表名 add 字段名 类型 null / not null (空或非空)

alter table 表名 drop column 字段名

alter table 表名 alter column 字段名 类型 null / not null (空或非空)

11.使用系统存储过程

查看数据表结构信息: sp_help 数据表名

12.删除命令的使用

删除数据表: drop table 数据表名

删除表的索引: drop index 数据表名. 索引名

删除视图: drop view 视图名

删除存储过程: drop procedure 存储过程名

删除表的触发器信息: drop trigger 触发器名