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 触发器名
发布评论