1奉献给SQL初学者们的终极教材上一篇|下一篇此教材可以说涉及的范围是非常广的。。我们平常写的SQL语句都是出现在里面的。。且每一种方法都有案例,所以说如果你把所有的案例应用理解透的话。。可以说你已经成为高手了。。知识都是得靠自己去掌握的。。多看,多想。多问。多动手。相信你一定很快掌握的。。usemastergo--创建数据库book_managecreatedatabasebook_manageon(name=book_manage_primary,filename='d:\data\book_manage.mdf',size=10,maxsize=20,filegrowth=5)logon(name=book_manage_log,filename='d:\data\book_manage.ldf',size=5,maxsize=20,filegrowth=5)go--查看book_manage数据库信息execsp_helpdbbook_manage--修改数据库日志文件扩展空间alterdatabasebook_managemodifyfile(name=book_manage_log,filegrowth=52)--创建新表usebook_managegocreatetabletb_bookinfo(book_IDchar(6)notnull,booknamechar(30)notnull,pricedecimal(18,2)notnull,authorIDchar(4),publishIDchar(4))createtabletb_authorinfo(authorIDchar(4)notnull,authornamechar(20)notnull,sexchar(2),agetinyint,authaddresschar(30))gocreatetabletb_pubinfo(publishIDchar(4)notnull,pubnamechar(20)notnull,pubaddresschar(30))createtabletemp1(temIDchar(4)notnull,temnamevarchar(30)notnulldefault'默认名称')createtabletbl_a(emp_idchar(2)notnull,emp_namechar(10)notnull,emp_agechar(2))createtabletbl_b3(emp_idchar(2)notnull,spendchar(10)notnull,levelchar(10))--删除表droptabletemp1--添加tb_authorinfo表信息insertintotb_bookinfovalues('000008','asp.net',54.5,'A004','P106')insertintotb_authorinfovalues('A004','黄薇','男',25,'济南')insertintotb_pubinfovalues('P106','山东出版社','济南')--查询各个表信息select*fromtb_bookinfoselect*fromtb_pubinfoselect*fromtb_authorinfo--备份一个新表select*intoBtb_bookinfofromtb_bookinfoselect*intoBtb_authorinfofromtb_authorinfoselect*intoBtb_pubinfofromtb_pubinfo--查看单个表信息execsp_helptb_authorinfo--修改表,在temp1中添加一列altertabletemp1addsagechar(2)--删除temp1中的以列altertabletemp1dropcolumncol_new--添加一个约束altertabletemp1addcol_newvarchar(20)nullconstrainttem_uniqueunique--升序--修改类型(有错误)--altertabletemp1modifysagebit4--唯一元素(distinct)属性selectdistinctpublishidfromtb_bookinfoselectpublishidfromtb_bookinfoselecttop3book_ID,booknamefromtb_bookinfo--orderbybookname默认升序--desc降序--asc升selectb.book_id,b.booknamefromtb_bookinfoasb--将查出信息从新创将一个表selectbook_idas书号,booknameas书名intotabfromtb_bookinfoselect*fromtb_bookinfowhereauthorIDin('A002','B001')--in在什么范围之内select*fromtb_bookinfowherebooknamelike'计%'--模糊查询'计\_%'selectpublishID,avg(price)fromtb_bookinfogroupbypublishID--对相同组的类,显示平均值--在groupby的后面添加一个avg的查询条件selectpublishIDas出版社编号,avg(price)as平均价格fromtb_bookinfogroupbypublishIDhavingavg(price)25--内部连接查询selecttbl_a.emp_id,tbl_a.emp_name,tbl_a.emp_age,tbl_b.spendfromtbl_ainnerjointbl_bontbl_a.emp_id=tbl_b.emp_idselect*fromtbl_aasa,tbl_basbwherea.emp_id=b.emp_id--左连接查询selecttbl_a.emp_id,tbl_a.emp_name,tbl_a.emp_age,tbl_b.spend,tbl_b.levelfromtbl_aleftouterjointbl_bontbl_a.emp_id=tbl_b.emp_id--右连接查询selecttbl_a.emp_id,tbl_a.emp_name,tbl_a.emp_age,tbl_b.spend,tbl_b.levelfromtbl_arightouterjointbl_bontbl_a.emp_id=tbl_b.emp_id--全连接查询selecttbl_a.emp_id,tbl_a.emp_name,tbl_a.emp_age,tbl_b.spend,tbl_b.levelfromtbl_afullouterjointbl_bontbl_a.emp_id=tbl_b.emp_id---------------------------------------------------select*intoBtbl_bfromtbl_b5--修改价格updatetb_bookinfosetprice=price*0.8--/0.8--select*fromtb_bookinfo---------------------------------------------------清除表中所有信息truncatetableBtbl_a--将tbl_a表中的信息添加到Btbl_ainsertintoBtbl_aselect*fromtbl_aselect*fromBtbl_a---------------------------------------------------安全管理----添加登陆帐户execsp_addlogin'yonghuming','mima','shujuku'--修改密码execsp_password'oldpassword','newpassword','yonghuming'--oldpassword可以为空null--删除用户execsp_droplogin'yonghuming'----------------------------------------------------角色管理--sysadmin可以在sql中执行任何活动--serveradmin可以设置服务器访问内的配置选项,关闭服务器--setupadmin可以管理连接服务器及执行某些系统存储过程--securityadmin管理登陆和createdatabase权限,日志,密码--processadmin管理sql运行的进程--dbcreator可以创建\修改\删除数据库--diskadmin管理磁盘文件--bulkadmin执行bulkinsert语句--添加成员execsp_addsrvrolemember'2','bulkadmin'--2为用户名bulkadmin为固定角色名称--删除成员execsp_dropsrvrolemember'2','bulkadmin'--查看固定角色成员execsp_helpsrvrolemember'bulkadmin'-----------------------------------------------------------添加数据库角色--db_owner在数据库中右全部权限--db_accessadmin可以添加删除用户6--db_datareader可以查看来自数据库中所有用户的标底全部数据--db_datawriter更改来自数据库的所有表中全部数据--db_addadmin可以添加\修改\删除数据库中的对象--db_securityadmin管理数据库角色成员--db_backupoperator规数据库进行备份--db_denydatareader拒绝选择数据库的数据--db_denydatawriter拒绝更改数据库的数据usebook_managegoexecsp_addrole'test'--test为角色自定义数据库角色execsp_droprole'test'--在数据库角色删除角色组execsp_addrolemember'test','2'--2为将要添加的角色的帐号execsp_droprolemember'test','2'--2为将要删除的角色的帐号----------------------------------------------------用户帐号管理--execsp_grantlogin'sdzs\user'--添加windows用户登陆sql域名\用户名execsp_addlogin'2','2'--添加sql用户登陆sql用户名密码usebook_managegoexecsp_grantdbaccess'sdzs\user','yonghuming'--在windows用户下添加登陆用户访问(book_manage)数据库权限execsp_grantdbaccess'2','2'--添加用户2对该(book_manage)数据库的访问权限-------------------------------------------------------权限管理grantinsert,select,updatetableto2--给用户2有添加查询修改的权限revokecreatetablefrom2--废除用户2创建表的权限denycreatedatabaseto2--拒绝用户2创建数据库的权限--------------------------------------------------------创建视图usebook_managego7ifexists(select*fromsysobjectswherename='pub_book')dropviewpub_bookgocreateviewpub_bookas