SQLServer2000讲义
1,数据文件a)主数据文件以.mdf为后缀的文件b)二级数据文件以.ndf为后缀的文件2,日志文件以.ldf为后缀的文件3,文件组a)主文件组包括主数据文件,数据库的其它对象(索引,约束等).b)自定义文件组由用户自己定义的文件组.c)默认文件组除了主文件组和自定义文件组之外的文件组.二进制数据或大文本的数据文件放在默认文件
组中.4,创建数据库a)企业管理器创建数据库b)使用Transact-SQL创建数据库i.快速创建数据库createdatabaseTestDBii.创建拥有一个数据文件和一个日志文件的数据库createdatabaseTestDBon(name='TestDB_data',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_data.mdf',size=10,maxsize=30,filegrowth=1)logon
(name='TestDB_log',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_log.ldf',size=5MB,maxsize=10MB,filegrowth=10%)Goiii.创建拥有一个主数据文件,两个二级数据文件和两个日志文件的数据库createdatabaseTestDBon(name='TestDB_data',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_data.mdf',size=10,maxsize=30,filegrowth=1),
(name='TestDB_data_1',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_data_1.ndf',size=10,maxsize=30,filegrowth=1),(name='TestDB_data_2',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_data_2.ndf',size=10,maxsize=30,filegrowth=1)logon(name='TestDB_log_1',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_log_1.ldf',
size=5MB,maxsize=10MB,filegrowth=10%),(name='TestDB_log_2',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_log_2.ldf',size=5MB,maxsize=10MB,filegrowth=10%)goiv.创建拥有一个主文件组和两个自定义文件组的数据库createdatabaseTestDBon(name='TestDB_data',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_data.mdf',
size=10,maxsize=30,filegrowth=1),filegroupfg1(name='TestDB_data_1',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_data_1.ndf',size=10,maxsize=30,filegrowth=1),filegroupfg2(name='TestDB_data_2',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_data_2.ndf',size=10,maxsize=30,filegrowth=1)
logon(name='TestDB_log_1',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_log_1.ldf',size=5MB,maxsize=10MB,filegrowth=10%),(name='TestDB_log_2',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_log_2.ldf',size=5MB,maxsize=10MB,filegrowth=10%)go
5,查看数据库信息
a)sp_helpdb[数据库名]b)sp_databasesc)sp_helpfile[文件逻辑名]d)sp_helpfilegroup[文件组逻辑名]6,改更数据库名称a)sp_renamedb原名,新名7,修改数据库a)在文件组中增加两个数据文件,并将该文件组设为默认文件组alterdatabaseTestDBaddfile(name='TestDB_data_3',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_data_3.ndf'),(name='TestDB_data_4',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_data_4.ndf'//这两局一起执行
)tofilegroupfg1alterdatabaseTestDBmodifyfilegroupfg1default8,删除数据库a)删除单个数据库dropdatabaseTestDBb)删除多个数据库dropdatabaseTestDB,TestDB29,创建表a)企业管理器创建表b)使用Transact-SQL创建表useTestDBgocreatetablet_employee(idintprimarykeyidentity(10001,1),
namevarchar(20)notnull,salarymoneycheck(salary>=0),--ageintcheck(age>=18andage<=60),ageintcheck(agebetween18and60),dept_idint)Gocreatetablet_order(order_novarchar(16)primarykey,owner_idint,order_timedatetime)gocreatetablet_order_detail(order_novarchar(16),ware_idint,ware_countint,primarykey(order_no,ware_id)
)go10,删除表droptablet_employee11,修改表的定义(只能修改非主键属性)a)增加列altertablet_employeeaddheightdecimal(5,2)b)修改列altertablet_employeealtercolumnheightintc)删除列altertablet_employeedropcolumnheight12,查看表的属性a)sp_help表名b)sp_spaceused表名
13,表格重命名a)sp_rename原名,新名14,索引a)概念:i.索引分为簇集索引(Clustered)和非簇集索引(Nonclustered).簇集索引根据键值来对行进行排序,每个表只能有一个簇集索引.ii.经常被搜索的列(如where子句中出现的列),在orderby中出现的列,是主键或外键的列,值唯一的列适合用索引.iii.iv.v.包含太多重复的列(如性别)和bit,text和image不能建立索引.在查询中很少使用的列不适合用索引.在多个列上建立的索引称为复合索引.create[unique][clustered|nonclustered]index索引名on表名(列名)c)删除索引dropindex表名.索引名
b)创建索引
15,简单查询select*fromt_employeeselectid,namefromt_employee16,top关键字selecttop3id,namefromt_employee17,distinct关键字selectdistinctname,salary,agefromt_employee218,使用计算列见1919,列的别名a)不带asselectb)带asselectid,name,salary*1.2asABC,age,dept_idfromt_employeec)使用"="selectid,name,ABC=salary*1.2,age,dept_idid,name,salary*1.2ABC,age,dept_idfromt_employee
fromt_employee20,where子句selectid,name,salary,age,dept_idfromt_employeewheredept_id=1andsalary>=150021,使用逻辑表达式a)notb)andc)or22,使用between关键字23,使用in关键字24,使用like子句进行模糊查询a)%(百分号)表示0到n个任意字符b)_(下划线)表示单个的任意字符c)[](封闭方括号)表示方括号里列出的任意一个字符d)[^]表示任意一个没有在方括号里列出的字符
25,转义字符的使用a)使用escape表示转义字符select*fromt_employeewhereaddresslike'%\%%'escape'\'26,使用orderby给数据排序select*fromt_employeeorderbysalarydesc27,使用insert添加表格数据a)简单的insert语句b)省略列清单的insert语句c)省略values清单的insert语句28,使用update修改数据updatet_employeesetname='王五',age=22whereid=1000229,使用delete删除表中的数据deletefromt_employeewhereaddresslike'%武昌%'