开发者社区> 问答> 正文

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

谁能给我一个数据库呢,并且给我很多练习题附答案的呢?

展开
收起
游客fj3owmkk3vxpk 2021-09-30 17:24:55 616 0
1 条回答
写回答
取消 提交回答
  • 安装一个数据库服务器,建立一个库。 然后先做这些练习吧,语句都加了注释了 /* 建立一个由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'

    2021-09-30 17:25:59
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载