2023年7月13日发(作者:)
(整理)SQLServer数据库基本知识点.
SQL Server 数据库基本知识点一、数据类型数据类型类型描述就是否常用bit
整型bit 数据类型就是整型,其值只能,就是0、1或空值。这种数据类型用于存储只有两种可能值的数据On 或Off如Yes 或No、True 或Fa lse 、整型int 数据类型可以存储从231int
-
(-2147483648)到之间的整就是231 (2147483 647)数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节smallint整型smallint
215数据类型可以存储从到215-
之(-32768)(32767)间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用tinyint整型tinyint
2 字节空间0到数据类型能存储从255 之间的整数。它在您只打算存储有限数目的数值时很有用。这种数据类型在数据库中占用个字节numericdecimal精确数值型精确数值型numeric型相同decimal
-10381
数据类型与decimal
数据类型能用来存储从38-1到10-1的固定精度与范围的数值型数据。使用这种数据类型时,必须指定范围与精度。范围就是小数点左右所能存储的数字的总位数。精度就是小数点右边存储的数字的位数(整理)SQLServer数据库基本知识点.
money货币型money
-9220smallmoney
货币型数据类型用来表示钱与亿到9220 亿之间的数数据类型用来表、3648 到货币值。这种数据类型能存储从据,精确到货币单位的万分之一smallmoney
存储从-214748示钱与货币值。这种数据类型能214748、3647 之间的数据,精确到货币单位的万分之一float 近似数值型float 数据类型就是一种近似数值类型,供浮点数使用。说浮点数就是近似的,就是因为在其范围内不就是所有的数都能精确表示。浮点数可以就是从到1、79E+308
real
近似数值型-1、79E+308之间的任意数,就就是real 数据类型像浮点数一样是近似数值类型。它可以表示数值在-3、40E+38之间的浮点数到3、40E+38datetime
日期时间型datetime数据类型用来表示日期与时间。这种数据类型存储从1753年1月1日到9999年12月3 1日间所有的日期与时间数据, 精确到三百分之一秒或毫秒Smalldatetime 日期时间型smalldatetime 数据类型用来,精确表示从1900年1月1日到2079年6月6日间的日期与时间到一分钟cursor
特殊数据型cursor 数据类型就是一种特殊的数据类型,它包含一个对游标的引用。这种数据类型用在存储过程中,而且创建表时不能用timestamp
特殊数据型timestamp 数据类型就是一种一个表列。每特殊的数据类型,用来创建一个数据库范围内的唯一数码。中只能有一个时,timestamptimestamp里,timestamptimestamp次插入或修改一行列的值都会改变。“time”, 但列不就是人们可识值就是唯一的尽管它的名字中有3、33就是就是别的日期。在一个数据库(整理)SQLServer数据库基本知识点.
Uniqueidentifier特殊数据型Uniqueidentifier数据类型用来,即存储一个全局唯一标识符GUID。GUID确实就是全局唯一的。这个数几乎没有机会在另一个系统中被重建。可以使用NEWID 函数或转换一个字符串为唯一标识符来初始化具有唯一标识符的列char字符型char数据类型用来存储指定长度的定长非统一编码型的数据。当定义一列为此类型时,您必须指定列长。当您总能知道要存储的数据的长度时,此数据类型很有用。例如,当您按邮政编码加格式来存储数据时4个字符,您知道总要用就是到10个字符。此数据类型的列宽最大为8000 个字符varchar字符型varchar数据类型,同char类型一样,用来存储非统一编码型字符数据。与char 型不一样,此数据类型为变长。当定义一列为该数据类型时,您要指定该列的最大长度。它与char数据类型最大的区别就是,存储的长度不就是列长,而就是数据的长度text字符型text 数据类型用来存储大量的非统一编码型字符数据。这种数据类型最多可以有个字符nchar统一编码字符型nchar 数据类型用来存储定长统,而不一编码字符型数据。统一编码用双字节结构来存储每个字符就是用单字节(普通文本中的情况)。它允许大量的扩展字符。此数据类型能存储nvarchar
统一编码字符型nvarchar
4000种字符,使用的字节空间上增加了一倍数据类型用作变长的统一编码字符型数据。此数据类型能存储4000种字符,使用的字节空间增加了一倍ntext
统一编码字符型ntext 数据类型用来存储大量的30就是231-1或20亿统一编码字符型数据。这种数据类型能存储2 -1或将近10亿个字符,且使用的字节空间增加了(整理)SQLServer数据库基本知识点.
一倍binary 二进制数据类型binary数据类型用来存储可达8000 字节长的定长的二进制数据。当输入表的内容接近相同的长度时,您应该使用这种数据类型varbinary
二进制数据类型varbinary 数据类型用来存储可达8000 字节长的变长的二进制数据。当输入表的内容大小可变时,您应该使用这种数据类型image 二进制数据类型image 数据类型用来存储变长的二进制数据,最大可达231-1或大约20亿字节二、常用语句(用到的数据库Northwind)
查询语句简单的Transact-SQL查询只包括选择列表、所查询列、查询的表或视图、以及搜索条件等。例如Futterkiste”的ContactNameFROM Customers
WHERE CompanyName='Alfreds Futterkiste'
(一) 选择列表选择列表(select_list)指出所查询列,它可以就是一组列名列表、星号、表达式、变量部变量与全局变量1、选择所有列例如,下面语句显示SELECT *
FROM Customers
2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。例如:
SELECT ContactName, Address
FROM Customers
3、更改列标题在选择列表中,可重新指定列标题。定义格式为列标题as 列名列名列标题如果指定的列标题不就是标准的标识符格式时句使用汉字显示列标题:
,应使用引号定界符,例如,下列语:
Customers表中所有列的数据:
)等构成。(包括局SELECT ContactName, Address
,下面的语句查询Customers 表中公司名称为“Alfreds
字段与Address字段。FROM子句与WHERE子句。它们分别说明(整理)SQLServer数据库基本知识点.
SELECT ContactName
FROM Customers
4、删除重复行SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在留一行。SELECT DISTINCT(Country)
FROM Customers
5、限制返回的行数使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n
PERCENT时,说明n就是表示一百分数,指定返回的行数等于总行数的百分之几。例如:
SELECT TOP 2 *
FROM Customers
SELECT TOP 20 PERCENT *
FROM Customers
(二)FROM子句FROM子句指定SELECT语句查询及与查询相关的表或视图。表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在Orders与Customers表中同时存在中的CustomerID时应使用下面语句格式加以限定:
、CustomerID
:
select * from Orders,Customers
where Orders、CustomerID =Customers表名as 别名表名别名select * from Orders as a,Customers as b
,它还能够从其它查询语句所返回的结果集合中查询where a、CustomerID =b、CustomerID
SELECT不仅能从表或视图中检索数据数据。例如:
select * from Customers where CustomerID in (select CustomerID from Orders where
EmployeeID=4)
此例中,将SELECT返回的结果集合给予一别名(三) 使用WHERE子句设置查询条件WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:
CustomerID,然后再从中检索数据。在FROM子句中可用以下两种格式为表或视图指定别名CustomerID列,在查询两个表在FROM子句中最多可指定,如果选择列256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时SELECT返回的结果集合中只保as 联系人名称, Address as地址(整理)SQLServer数据库基本知识点.
select CustomerID from Orders where EmployeeID=4
WHERE子句可包括各种条件运算符:
):BETWEEN…AND…):IN (项1,项2……)):LIKE、NOT LIKE
比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<
范围运算符(表达式值就是否在指定的范围NOT BETWEEN…AND…列表运算符(判断表达式就是否为列表中的指定项NOT IN (项1,项2……)模式匹配符(判断值就是否与指定的字符通配格式相符空值判断符(判断表达式就是否为空逻辑运算符(用于多条件的逻辑连接):IS NULL、NOT IS NULL
):NOT、AND、OR
相当于age>=10 AND age<=30 1、范围运算符例:age BETWEEN 10 AND 302、列表运算符例:country IN ('Germany','China')
3、模式匹配符例:常用于模糊查找,它判断列值就是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime与smalldatetime可使用以下通配字符:
百分号%:可匹配任意类型与长度的字符等类型查询。插入语句语法:Insert into 表(字段1,字段2,…、字段n) values(值1,值2,…、值n)
例如:Insert into Region(RegionID, RegionDescription)values(5,'Southern')
更新语句语法:update 表set 字段1 = 值1,字段2=值2,字段n=值n where 条件如:
update Customers set ContactName='John',Address ='AvdaCustomerID='ALFKI'
where 条件同查询语句、de la' where
删除语句语法:delete from 表where 条件如:
delete from Customers where CustomerID='ALFKI'
where 条件同查询语句清空表:
truncate table 表清空表中所有数据,表中如果有自增长字段,该字段在插入时会重新开始注意:
由于更新语句与删除语句会更改表数据对公司业务主要表进行更新与删除操作时一定要先进行备份,然后进行操作备份语句select *
intoCustomers20101019 fromCustomers目标表(Customers)不存在时会自动创建(整理)SQLServer数据库基本知识点.
三、优点:
1、存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。2、当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储存储过程过程封装起来与数据库提供的事务处理结合一起使用。3、存储过程可以重复使用,可减少数据库开发人员的工作量4、安全性高,可设定只有某此用户才具有对指定存储过程的使用权语法CREATE PROC[ EDURE ] [ owner[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,、、、n ]
[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
[ FOR REPLICATION ]
AS sql_statement [
参数owner
拥有存储过程的用户角色的名称。procedure_name
新存储过程的名称。过程名必须符合标识符规则;number
就是可选的整数,用来对同名的过程分组将同组的过程一起除去。例如名称中包含定界标识符当的定界符。@parameter
过程中的参数。在CREATE PROCEDURE 语句中可以声明一个或多个参数。用户必,或者该值设置为等每个过程须在执行过程时提供每个所声明参数的值于另一个参数)。存储过程最多可以有的参数仅用于该过程本身data_type
参数的数据类型。除table 之外的其她所有数据类型均可以用作存储过程的参数。但OUTPUT 参数。如果指定cursor 数据类型,则还必须指定,没有最大数cursor 数据类型的输出参数就是,cursor 数据类型只能用于目的限制。VARYING
指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用于游标参(除非定义了该参数的默认值2、100 个参数。参数名称必须符合标识符的规则。,参数只能代替,以便用一条DROP PROCEDURE 语句即可,名为orders 的应用程序使用的过程可以命名为语句将除去整个组。如果前后使用适,只应在procedure_name
,且对于数据库及其所有者必须唯一。ID 的名称。owner 必须就是当前用户的名称或当前用户所属的、、、n ]
、] procedure_name [ ; number ]
orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc
,则数字不应包含在标识符中使用@ 符号作为第一个字符来指定参数名称。;相同的参数名称可以用在其它过程中。默认情况下常量,而不能用于代替表名、列名或其它数据库对象的名称。VARYING 与OUTPUT 关键字。对于可以就是(整理)SQLServer数据库基本知识点.
数。default
参数的默认值。如果定义了默认值是常量或OUTPUT
表明参数就是返回参数。该选项的值可以返回给EXEC[UTE]。使用OUTPUT 参数可OUTPUT 参数。使用OUTPUT 将信息返回给调用过程。Text、ntext 与image 参数可用作关键字的输出参数可以就是游标占位符。如:
CREATE PROCEDURE CustOrdersDetail @OrderID int
AS
SELECT ProductName,
UnitPrice=ROUND(OdQuantity,
Discount=CONVERT(int, Discount * 100),
ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od2)
FROM Products P, [Order Details] Od
WHERE Od、ProductID = P、ProductID and Od、OrderID = @OrderID
GO
四:游标:
、UnitPrice),
、UnitPrice, 2),
(%、_、[] 与[^])。,不必指定该参数的值即可执行过程。默认值必须就LIKE 关键字,那么默认值中可以包含通配符NULL。如果过程将对该参数使用游标(Cursor)就是处理数据的一种方法,为了查瞧或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力。我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。1.声明游标2.打开游标3.读取游标数据4.关闭游标5.释放游标常用于需要把多行的数据如:
进行拼接处理declare @ContactName varchar(50)
declare @AllContactName varchar(5000)
set @AllContactName =’’DECLARE GetContactName_Cursor CURSOR
FOR select ContactName from Customers where CustomerId = 'ALFKI'
OPEN GetContactName_Cursor
FETCH NEXT FROM GetContactName_Cursor into @ContactName
WHILE @@FETCH_STATUS = 0
BEGIN
set @ AllContactName= AllContactName+@ContactName
print @ AllContactName
FETCH NEXT FROM GetContactName_Cursor into @ContactName (整理)SQLServer数据库基本知识点.
END
CLOSE GetContactName_Cursor
DEALLOCATE GetContactName_Cursor
五:常用系统函数与变量系统变量:
select @@ERROR
select @@IDENTITY
Select USER_NAME()
select @@ERROR
select GETDATE() --毫秒USE tempdb Select @@DBTS
select @@IDENTITY --Select @@IDLE
位为毫秒Select @@LANGID --返回当前所使用语言的本地语言标识符--返回当前使用的语言名--当前会话的当前锁超时设置,单位为毫秒。--返回SQL上允许的同时用户连接的最大数。返(ID)。Select @@LANGUAGE
Select @@IO_BUSY
--为当前数据库返回当前timestamp 数据类型的值。这一timestamp 值保证在数据库中就是唯一的。返回最后插入的标识值,单位为毫秒,单--返回SQL自上次启动后用于执行输入与输出操作的时间--返回SQL自上次启动后闲置的时间--返回最后执行的Transact-SQL 语句的错误代码(integer)
--返回最后插入的标识值--返回用户数据库用户名Transact-SQL 语句的错误代码--返回自上次SQL启动以来连接或试图连接的次数。--返回自上次启动SQL 以来CPU 的工作时间,单位为--返回最后执行的当前时间:
select @@CONNECTIONS
select @@CPU_BUSY/100
Select @@LOCK_TIMEOUT
回的数不必为当前配置的数值EXEC sp_configure
Select @@MAX_CONNECTIONS
--显示当前服务器的全局配置设置返回decimal 与numeric 数据类型所用的精度级别38。SET 选项的信息。,Select @@MAX_PRECISION --select @@OPTIONS
目。Select @@PACK_SENT
包错误数。Select @@SERVERNAME --Select @@SERVICENAME --Select @@TIMETICKS --数。Select @@TOTAL_READ
Select @@TOTAL_WRITE
Select @@TRANCOUNT
Select @@VERSION
系统函数:
1. 字符转换函数即该服务器中当前设置的精度。默认最大精度--返回当前Select @@PACK_RECEIVED --返回SQL自启动后从网络上读取的输入数据包数--返回SQ自上次启动后写到网络上的输出数据包数目。--返回自SQL启动后,在SQL连接上发生的网络数据Select @@PACKET_ERRORS
返回运行SQL服务器名称。返回SQL正在其下运行的注册表键名--返回SQL服务器自启动后,所遇到的磁盘读/写错误--返回SQL服务器自启动后读取磁盘的次数。--返回SQL服务器自启动后写入磁盘的次数。--返回当前连接的活动事务数。返回SQL服务器一刻度的微秒数Select @@TOTAL_ERRORS
--返回SQL服务器安装的日期、版本与处理器类型。(整理)SQLServer数据库基本知识点.
LOWER()与UPPER()
LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写STR() 把数值型数据转换为字符型数据。2.
去空格函数LTRIM() 把字符串头部的空格去掉。RTRIM() 把字符串尾部的空格去掉。3.
取子串函数left()
LEFT (
返回character_expression
RIGHT()
RIGHT (
返回character_expression
SUBSTRING()
SUBSTRING (
返回从字符串左边第4. 字符串比较函数CHARINDEX()
返回字符串中某个指定的子串出现的开始位置。PATINDEX()
返回字符串中某个指定的子串出现的开始位置。starting_ position 个字符起length个字符的部分。右起integer_expression 个字符。左起integer_expression 个字符。5.
字符串操作函数REPLACE()
返回被替换了指定子串的字符串。SPACE()
返回一个有指定长度的空白字符串。6. 数据类型转换函数CAST()
CAST (
CONVERT()
CONVERT (
1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。2)length用于指定数据的长度,缺省值为30。INT或SAMLLINT这样的INTEGER类型、结果必须3)把CHAR或VARCHAR类型转换为诸如就是带正号或负号的数值。4)TEXT类型到CHAR或VARCHAR类型转换最多为类型就是最大长度。5)IMAGE类型存储的数据转换到6)把整数值转换为美元、英镑等。7)BIT类型的转换把非零值转换为8)试图转换到不同长度的数据类型8000个字符,即CHAR或VARCHAR数据BINARY或VARBINARY类型,最多为8000个字符。类型,按定义的国家的货币单位来处理,如人民币、MONEY或SMALLMONEY1,并仍以BIT类型存储。,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。style 就是将DATATIME 9)用CONVERT() 函数的style 选项能以不同的格式显示日期与时间。(整理)SQLServer数据库基本知识点.
与SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。7. 日期函数DATEADD()
DATEADD (
返回指定日期date 加上指定的额外日期间隔DATEDIFF()
DATEDIFF (
返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值就是一个number 产生的新日期。带有正负号的整数值。DATEPART()
DATEPART (
以整数值的形式返回日期的指定部分。此部分由datepart
DATEPART (dd, date) 等同于DAY (date)
DATEPART (mm, date) 等同于MONTH (date)
DATEPART (yy, date) 等同于YEAR (date)
GETDATE()
以DATETIME 的缺省格式返回系统当前的日期与时间来指定。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689246529a225622.html
评论列表(0条)