我想练习sql语句,请问如何做呢?

谁能给我一个数据库呢,并且给我很多练习题附答案的呢?... 谁能给我一个数据库呢,并且给我很多练习题附答案的呢? 展开
 我来答
yjx_xiaoxin
2009-12-25 · TA获得超过6702个赞
知道大有可为答主
回答量:4618
采纳率:50%
帮助的人:2465万
展开全部
安装一个数据库服务器,建立一个库。
然后先做这些练习吧,语句都加了注释了
/*
建立一个由3个文件组成的数据库,数据库名称为test。
主数据文件逻辑名称为test_data,物理文件名c:\test_data.mdf;
辅助数据文件逻辑名称为test_data2,物理文件名c:\test_data2.ndf;
日至文件逻辑名称为test_log,物理文件名c:\test_log.ldf;
所有文件初始尺寸为3mb,可以自动增长,最大尺寸为15mb。
*/
create database test on
primary
(
name=test_data,
filename='c:\test_data.mdf',
size=3mb,
maxsize=15mb,
filegrowth=1mb
),
(
name=test_data2,
filename='c:\test_data2.ndf',
size=3mb,
maxsize=15mb,
filegrowth=1mb
)
log on
(
name=test_log,
filename='c:\test_log.ldf',
size=3mb,
maxsize=15mb,
filegrowth=1mb
)

/*
创建一个名为employees的表,该表由5个字段组成:emp_id(员工编号)、ename(员工名称)、
age(年龄)、title(职务)、salary(薪水)。其中emp_id为该表的主键。该表存放在主文件组。
*/
use test
go
CREATE TABLE employees(
emp_id char (4) primary key,
ename nvarchar (10) NOT NULL,
age tinyint NOT NULL,
title nvarchar (10) NULL,
salary money NULL,
) ON [PRIMARY]

--向employees表插入部分数据
insert into employees values('0001','杨建新','22','经理','3000')
insert into employees values('0002','杨建新','23','职员','4000')
insert into employees values('0003','杨建新','24','总经理','5000')
insert into employees values('0004','杨建新','26','职员','2000')

--创建备份设备test_bak,其位置为c:\backup\test_bak.bak
sp_addumpdevice 'disk','test_bak','c:\backup\test_bak.bak'

--建立数据库test的完整备份到备份设备test_bak,并命名为test_full_bak1
backup database test to test_bak with name='test_full_bak1'

--向employees表插入新数据
insert into employees values('0005','王建新','24','总经理','1000')
insert into employees values('0006','刘建新','26','职员','2000')

--执行test数据库的事务日志备份,该备份追加到备份设备test_bak,命名为test_log_bak1
backup log test to test_bak with name='test_log_bak1'

--截断employees表,清空内容(记录此时的时间)
truncate table employees

--备份数据库的尾部日志
use master
go
backup log test to test_bak with name='test_log_recovery',norecovery

--恢复数据库的完整备份,并且不要执行还原进程(norecovery)
restore database test from test_bak with file=1,norecovery

--恢复第一个日志备份,如果此时执行recovery,将得到所有数据
restore log test from test_bak with file=2,recovery

--如果执行上述语句时,使用norecovery选项,则可以继续恢复第二个日志备份,即尾部日志
restore log test from test_bak with file=2,norecovery
restore log test from test_bak with file=3,recovery

--如果按照上述操作,则恢复完成后employees表中没有任何数据,因为尾部日志中包含清空表的操作
--若要恢复所有数据,也可以恢复到时间点到清空时间之前
restore log test from test_bak with file=3,stopat='2008-11-16 11:25:00'

--添加一个名为mike,密码为123456的login账户,该账户的默认数据库为northwind
sp_addlogin 'mike','123456','northwind'
--切换到northwind数据库
use northwind
go
--将登录账户mike映射为当前数据库中的用户
sp_grantdbaccess 'mike','mike' --或:sp_adduser 'mike','mike'
--建立数据库角色accessdata
sp_addrole tablecreate
--为数据库角色tablecreate赋予创建表的权限
grant create table to tablecreate
--将用户mike加入到角色tablecreate中
sp_addrolemember 'tablecreate','mike'
--赋予用户mike对products表的插入数据权限
grant insert on products to mike
--撤销用户mike对products表的权限
revoke insert on products from mike
--察看角色信息
sp_helprole tablecreate
--察看角色包括的成员
sp_helprolemember tablecreate
--在角色tablecreate中删除成员mike
sp_droprolemember 'tablecreate','mike'
--删除角色tablecreate
sp_droprole tablecreate
--删除数据库用户账户
sp_revokedbaccess 'mike'
--删除登录帐号
sp_droplogin 'mike'
reveal2009
2009-12-25
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
老师是这样教的 先附加到自己电脑上一个自己想要实验的数据库 这个数据库是随便的 但是你要知道数据库包含的内容 然后就是自己练习一些查找啊 添加 删除 等操作 我可以给你一个数据库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0a3558898
2009-12-25 · TA获得超过1863个赞
知道小有建树答主
回答量:1080
采纳率:0%
帮助的人:0
展开全部
建一个库,然后到SQL数据库查底窗口去执行就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jonahjeff
2009-12-25 · TA获得超过3380个赞
知道大有可为答主
回答量:3218
采纳率:38%
帮助的人:1019万
展开全部
自己买2本书,然后网上去下个客户端,在机器上装好就行了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式