命令行进入SQLCMD:sqlcmd –s machineName\instanceName使用数据库:USE db_nameGO删除数据库:(不能删除系统数据库)USE tempdbGOSELECT name,state_descFROM sys.databasesWHERE name=’db_name’GODROP DATABASE db_name1,db_name2,…GO更改数据库文件ALTER DATABASE db_name{ADD FILE<filespec>-- 指定要添加的文件|ADD LOG FILE<filespec>-- 指定要添加的日志文件| REMOVE FILE logical_file_name -- 指定要删除的数据文件名| MODIFY FILE<filespec>-- 指定要更改的文件| MODIFY NAME= new_dbname -- 重命名数据库}修改数据库属性:ALTER DATABASE db_nameSET ANSI_NULL_DEFAULT ON更名:USE tempdbGOALTER DATABASE db_nameSET SINGLE_USERALTER DATABASE db_testMODIFY NAME=db_new_nameALTER DATABASE db_new_nameSET MULTI_USER更改数据库文件组:ALTER DATABASE db_nameADD FILEGROUP filegroup_name [CONTAINS FILESTREAM]|REMOVE FILEGROUP filegroup_nam--(要先删除组中的文件)|[MODIFY FILEGROUP filegroup_name{<filegroup_option>|DEFAULT|NAME=new_filegroup_name}]注意:要更改为默认文件组,文件组中至少要包含一个文件。
分离[ , [ @skipchecks= ] 'skipchecks' ][ , [ @keepfulltextindexfile = ] 'KeepFulltextIndexFile' ]附加CREATE DATABASE db_nameON <filespec> [,..n]FOR {ATTACH|ATTACH_REBUILD_LOG}系统数据库master数据库记录了SQL SERVER的数据、端点、服务器和系统配置信息。
还有所有数据库及其数据库文件的位置,以及实例的初始化信息。
msdb数据库是SQL SERVER代理用于计划警报和作业及其它功能。
其属性主要包括msdb数据文件、日志文件的初始值。
model数据库是创建其他用户数据库的模板。
resource数据库具有只读的特性。
其中包含了SQL SERVER所用到的所有系统对象(系统视图)。
一般不要对resource 数据库进行修改。
不过,用户可以移动reource数据库。
用户可用sys.objects系统视图查看系统对象。
tempdb数据库是一个全局临时资源。
tempdb可以与所有连接共用。
表创建USE db_nameGOIF OBJECT_ID('<schema_name>.<table_name>')IS NOT NULLDROP TABLE<schema_name >.<table_name>GOCREATE TABLE table_name(<col_namel><data_type> [NULL | NOT NULL][PRIMARY | UNIQUE][FOREIGN KEY [(column_name)]]REFERENCES ref_table [(ref_column)]<col_name2><data_type>.........<constraint_definition> […n])GO也可以通过SELECT INTO创建表:SELECT col1,col2,col3 INTO tb_name1 FROM tb_name2表的修改ALTER TABLE table_nameADD [<column_name> <data_type>][PRIMARY KEY | CONSTRAINT][FOREIGN KEY (column_name) REFERENCES ref_table(ref_column)]DROP [CONSTRAINT] constraint_name |COLUMN column_nameALTER TABLEADD CONSTRAINT<contraint_name ><constraint_type>(<constraint_column_name ><logical_expression>)sys.key_constraintsDROP TABLE table_name系统表系统表在性能和安全性上都存在问题,SQL Server的后续版本中将逐步删除系统表,因此最好使用目录视图来获取系统级信息。
用户无法对系统表进行修改操作,只有通过专用的管理员连接(DAC)才能直接查询和修改系统表。
临时表存储在tempdb中本地临时表:本地且对创建者可见,其它用户不可见,当用户断开连接时,系统自动删除之。
USE db_nameGOCREATE TABLE #tb_name()全局临时表:对所有用户可见,当使用安的所有用户断开连接时,系统自动删除之。
USE db_nameGOCREATE TABLE ##tb_name()专用的管理员连接通过DAC,用户可以直接修改系统表。
DAC需要用户到服务器现场方可操作。
SQLCMD –E –S machine_name\instanceName –A其中-A表示使用DAC连接,-E建立信任连接(适用于Windows身份验证模式),-S表示连接到machine_name上的instanceName实例。
注意:在使用DAC之前,要打开SQL Server Browser服务。
数字类型,默认18;S是小数位,要:0~P.默认为0.货币型精确为4位小数。
精确与存储字节数逻辑数值型bit(可以存储整型数据1、0或NULL。
如果输入0以外的其他值时,SQL Server均将它们当作1看待)近似数字类型(浮点数据)REAL (精度7位)FLOAT(建议使用):(精度15位)FLOAT[(n)]. n是尾数(科学计数法)Unicode字符串NTEXTNCHAR[(n)]:n:1~4000,所占存储空间为2n个字节。
NVARCHAR[(n|max)]:max:2^31-1个字节,n:1~4000,占2n+2个字节。
字符串CHAR:n:1~8000,占用n字节VARCHAR:n:1~8000,占用n+2字节TEXT日期和时间DATETIME (1753.1.1-9999.12.31)SMALLDATETIME (1900.1.1-2079.6.6)格式:'yyyy-mm-dd hh:mm:ss AM/PM'转型CAST(expression AS data_type):将指定的expression的值转换为由data_type所指定的数据类型的函数。
CONVERT(data_type[(length)],expression [,style]):将指定的expression的值转换为由data_type所指定的数据类型的函数。
其它数据类型CURSOR 可用于变量或存储过程OUTPUT参数,CREATE TABLE中的列,不能使用CURSOR数据类型TIMESTAMP 自动生成的二进制数字的数据类型,存储大小为8字节。
在TIMESTAMP中只存储递增的数字,而不保留具体的日期或时间。
一个表只能有一个TIMESTAMP列。
HIERARCHYID 长度可变的层次类型,创建具有层次结构的表.最适合存储的分层数据类型是树。
UNIQUEIDENTIFIER 16字节的GUID。
NEWID()函数获得一个初始值.SQL_VARIANT 使数据库对象能够支持其他数据类型的值。
XML 可以存储XML数据的类型。
最大不能超过2GB。
XML([CONTENT | DOCUMENT] XML_schema_collection_name)TABLE 主要用于存储结果集。
TABLE变量可用于函数、存储过程和批处理的内部,也可以作为参数。
可以像SQL Server中普通的表那样使用。
GEOGRAPHY和GEOMETRY:空间类型排序规则查找所有字符排序规则select name,description from fn_helpcollations()修改数据库排序规则ALTER DATABASE db_name COLLATE France_BINGOSELECT CONVERT(VARCHAR,DATABASEPROPERTYEX(…db_name‟,‟collation‟))列级排序规则支持NVARCHAR和NCHAR等字符串类型数据。
在CREATE TABLE时,由COLLATE子句设置。
查看SELECT AS列名, AS数据类型, c.max_length AS长度,c.collation_name AS列的排序规则FROM sys.columns AS c JOIN sys.types AS tWHERE c.object_id=OBJECT_ID(…dbo.table_demo‟)修改ALTER TABLE tb_nameALTER column_name NCHAR(10)COLLATE Greek_CS_AI表达式级排序规则表达式级排序规则是SQL语句运行时,通过COLLATE设置返回的结果集的排序规则。
USE db_nameGOSELECT col1,col2FROM tb_nameORDER BY name COLLATE Latin1_General_CS_AI二进制字符串(FILESTREAM)BINARY[(n)]:固定长度二进制数据类型。
n:1~8000,占n字节。
VARBINARY[(n|max)]:可变长度二进制数据类型。
n:1~8000.max代表2^31-1个字节。
实际存储空间n+2字节。
IMAGE如果没有指定n,默认为1。