您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > sqlserver数据库基础知识
SQLServer2005基础教程SQLServer2005安装几种数据库产品介绍•SQLServer只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NTserver只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据。•Oracle能在所有主流平台上运行(包括windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。•Sysbase能在所有主流平台上运行(包括windows)。但由于早期Sybase与OS集成度不高,因此VERSION11.9.2以下版本需要较多OS和DB级补丁。在多平台的混合环境中,会有一定问题。•DB2能在所有主流平台上运行(包括windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。•MySql可以说这是中小企业网站Linux平台的首选自由数据库系统。它是一个跨平台数据库系统,一个真正的多用户、多线程的SQL数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。同时,也是Linux系统中使用最为简单的数据库系统,安装简单、使用简单、管理也简单,且数据库系统的稳定性也很不错。SQLServer的安全性•身份验证模式(1)Windows身份验证模式客户机使用Windows操作系统的用户帐户和密码连接数据库服务器时,SQLServer2005使用Windows操作系统来进行身份验证。(2)混合模式客户机使用用户帐户和密码连接数据库服务器时,服务器首先在数据库中查询是否有相同账户和密码的用户,基有则接受连接。若数据库中没有相应的账户和密码,则向windows操作系统请求验证客户机的身份,若两者都没有通过,则拒绝连接。•Mastermaster数据库位于SqlServer的核心,如果该数据库被损坏,SqlServer将无法正常工作。因此请大家千万不要对master作任何操作。Master数据库中的内容主要有:所有的登录名或用户ID所属的角色。所有的系统配置设置。服务器中的数据库的名称及相关信息。数据库中的位置。SQLserver如何初始化。用于存储系统重要信息的特殊的系统表。SQLServer中的数据库•tempdbtempdb数据库,是一个临时性的数据库,它存在于SqlServer会话期间,一旦SqlServer关闭,tempdb数据库将丢失。当Sqlserver得新启动时,将重建全新的、空的tempdb数据库,以供使用。其作用是保存数据库运行过程中生成的临时数据以供用户使用。对于tempdb,我们只需关注其大小的设置。SQLServer中的数据库•model模板数据库,作为其它数据库的模板数据库。•msdb当创建备分或执行还原等作业时,存储有关这些任务的信息的数据库。利用查询编辑器创建数据库•格式:CREATEDATABASEdatabase_name•A.创建未指定文件的数据库CREATEDATABASEmytest;B.创建指定数据和事务日志文件的数据库'CREATEDATABASESalesON(NAME=Sales_dat,FILENAME=‘c:\saledat.mdf',SIZE=10,MAXSIZE=50,FILEGROWTH=5)登录名要连接到SqlServer中,我们必须采用以下方式之一–Windows登录名如果用户名属于某个特定的windows组,并在SqlServer中包含该组,那么该用户帐户就能够访问SqlServer。–SqlServer登录名–例:在windows中创建一个用户组(operator_DB_group)和一个用户名(xiaobao),并使用户名为用户组的一个成员。同时使之登录指定的用户数据库。2、数据库角色•Dbo/db_owner:特指数据库所在者•Db_accessadmin:可以管理登录名对数据库的访问•Db_backupoperator:可以备分数据库•Db_datareader:可以从所有用户定义表中读取数据。•Db_datawriter:可以对用户表进行任何写行为。•Db_ddladmin:可以执行数据定义行为,如创建表。•Db_denydatareader:不能从用户表写入数据。•Db_denydatawriter:不能向用户表写入数据。•Db_securityadmin:不能修改数据库角色成员和管理权限。•Public:可以看到任何由公共或完整权力、权限的用户所创建的数据库对象。•例:使创新的用户只能对某几个表进行选择操作。表的数据类型•用户在创建表时需要根据数据的需要进行数据类型的选择,从而方便的对数据进行操作。上述作者表中,作者的名字应为字符(char)型。而成绩表中的成绩应为浮点型(float)。因而我们应对数据类型有比较深入的学习和了解。•1、char(nchar存储unicode格式的字符),固定数据类型。如果定义10个字符长度的字段时,注意如输入”aaa”时将会变成”aaa”共10个字符存进硬盘中。最长为8000字符。•2、varchar(nvarchar存储unicode格式的字符),可变数据类型。如果定义10个字符长度的字段时,注意如输入”aaa”时将会以3个字符共存进硬盘中。最长为8000字符。•3、text(ntext存储unicode格式的字符),最大可存储2G字符。•4、image,用于存储任何类型的二进制数据,包括图像、视频、音乐。•5、int数据类型用于存储没有小数点的数字值,从-2147483648至2147483647之间的数据。•6、bigint数据类型与int数据类型相似,不同的是能存更大的数据-9223372036854775808至9223372036854775807。•7、smallint数据类型与以上两个数据差不多,只是存储的数相对比较小-32768至32767。•8、tinyint数据类型比smallint的数据类型更小,只能存储0至255的数据。•9、decimal/numeric数据类型用于存储相同精度和范围的数据-1038到1038-1的数据。•10、float数据类型用于存储小数点不固定的数值,能存储-1.79E+308至1.79E+308的数据。•11、real数据类型跟float数据类型,存储的数值范围是-3.40E+38至3.40E+38的数值。•12、money数据类型存储的范围是-922337203685477.5808至922337203685477.5807的数值。•13、smallmoney与money相似,其存储的数值范围是-214748.3648至214748.3647。•14、datetime日期类型用于存储1753年1月1日至9999年12月31日的时间。•15、smalldatetime与datetime相类似,其存储范围是从1900年1月1日至2079年6月6日.•16、binary以二进制数据存储数据。主要存储作为标记或标记组合的数据。•17、varbinary,与binary相似,主要存储类似图像的数据。在SSMS中创建表•在学生信息管理系统中建立学生表。学生学号姓名班别年龄出生年月政治面貌籍贯家庭住址表的列的设置•Null值null值表示没有数据要输入系统,跟0和“”不一样。•默认(default)值设为默认值的的某列,如果用户输入数据时,不向其输入数据,则会以用户设定的值输入。•Identity值自动编号,当希望给行一个唯一而又容易确定的ID号,则可将之设置identity值。该值由系统自动生成。例:将上述学生表的学号设置为identity值,为学生的年龄设置默认值。通过查询窗格定义表•创建表的基本语法createtable表名(列名数据类型[数据长度][identity(增长的初始值,增长的长度)][null/notnull])•例:创建客户表CreatetableCustomer(CustomerIdbigintIDENTITY(1,1)NOTNULL,ClearedBalancemoneyNOTNULL,CustomerTitleIdintNOTNULL,CustomerFirstNamenvarchar(50)notnull,CustomerLastNamenvarchar(50)notnull,Addressnvarchar(50)notnull,ProductIdbigintnotnull,ProductDetailnvarchar(200)notnull)T-SQL的INSERT命令的语法Insert语法:INSERT[INTO]表名[(列名1,列名2,列名3…,列名n)]Values(表达式1,表达式2,表达式3…,表达式n)注意:(1)插入数据时,表达式的个数与列名的个数要一致。(2)表达式的类型与列名的类型要一致。(3)如果省略列名时,表达式的值顺序必须要与创建表时的顺序一致。(4)如果某列的值可为空,可将之设置为null。(5)在创建的外键的表中插入数据时,一定要注意只有在主键表有你需要插入的值才能插入数据。(6)如果某列上设置了identity(),则不需要插入数据,忽略之即可。Select语句查询SELECT[ALL|DISTINCT][TOPexpression[PERCENT][WITHTIES]]{*|{table_name|view_name|table_alias}.*|{column_name|[]expression|$IDENTITY|$ROWGUID}[[AS]column_alias]|column_alias=expression}[,...n]FROMtable_name|view_namealias_nameWHEREfilter_CriteriaORDERBYordering_criteria•例1:从pubs数据库查询所有的作者的信息。Select*fromauthors•例2:从pubs数据库查询前10个作者的信息。Selecttop10*fromauthors•例3:从pubs数据库中查询前10%的作者的信息。Selecttop10percent*fromauthors•例4:从pubs数据库中查询作者的姓名,电话,地址与邮编号.Selectau_lname,au_fname,phone,address,zipFromauthors•例5:从从pubs数据库中查询作者的所在的居住的州郡.Selectallstatefromauthors•例6:查询pubs数据库中所有作者的姓名(作为一个字段返回),并将中文标识列。Selectau_fname+”,”+au_lnameas姓名fromauthors•例7:查询pubs数据库中所有居住在Oakland的作者。•Select*fromauthorswherecity=‘Oakland’•例8:查询pubs数据库中所有居住在Oakland的作者,并以他们的姓氏排列数据(顺序,降序).•Select*fromauthorswherecity=‘Oakland’orderbyasc(desc)SQL运算符•算法运算符:+、—、*、/、%•比较运算符:、=、=、、=、、!=,!、!•位算法符:&、|、~、^•逻辑运算符:And,Or,Not,Between,Like,In,All,Some,Any•赋值运算符:=•其中Between常与and一起使用•Like的通配符的使用•%:代表0个或多个字符,可放置于字符串的末尾或开始处.•_:代表一个任何单字符。•[]:允许指定值的集合或值的范围中的单个字符用于查找,如%[c-f]%。•[^…]:表示不允许出现的字符。Update命令Update语法:Update表
本文标题:sqlserver数据库基础知识
链接地址:https://www.777doc.com/doc-2850364 .html