ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:297KB ,
资源ID:4564851      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4564851.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(SQL-Server常用关键字、数据类型和常用语法.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

SQL-Server常用关键字、数据类型和常用语法.doc

1、word完整版)SQL Server常用关键字、数据类型和常用语法 SQL Server 2008 常用关键字、数据类型和常用语法 常用关键字: SQL server 2008一共大约有180多个关键字.简要分为主要关键字、辅助关键字和函数类关键字.本文就常用的这三类关键字进行语法说明和用例。 说明:1、比较好的习惯是,数据库名以D_开头,表名用T_开头,字段名以F_开头,这样可以防止和关键字重名。 2、如果确实用到了系统关键字,就要在关键上加[]方括号,以与关键字进行区别.例如有一个用户表被命名为USER,则查询该表内容的时候:SELECT * FROM USER语句是错误的,

2、应该是SELECT * FROM [USER]。因为USER是关键字。 编号 关键字 应用场景 主要关键字 1 CREATE 创建表 2 ALTER 修改表结构 3 DROP 删除数据库和表 4 INSERT 插入表数据 5 INTO 与INSERT连用,插入表数据 6 VALUES 插入表数据时,指定列值 7 UPDATE 更新表数据 8 SET 与UPDATE连用,设定列值 9 SELECT 查询表数据 10 FROM 从哪个表中查询 11 WHERE 查询表数据的条件 12 DATABASE 数据库 13

3、 TABLE 数据表 14 NOT 15 NULL 空值 16 IDENTITY(1,1) 标识列 17 CONSTRAINT 约束,后边跟约束名 18 PRIMARY 主键,PRIMARY KEY(列名) 19 FOREIGN 外键 FOREIGN KEY(列名) 20 KEY 21 REFERENCES 把…印作参考,指定外键的时候用 22 CHECK CHECK约束 23 UNIQUE 唯一性约束 24 COLUMN 列 25 DEFAULT 默认值 26 AND 和 27 OR 或 28 T

4、RUNCATE 截断,快速清空表内数据 29 ORDER 常与by连用 30 BY 与GROUP或ORDER连用 31 ASC 升序 32 DESC 降序 33 AS 列名别称 34 DELETE 删除表数据 35 LIKE 通配符 36 IS 用于NULL值 37 IN 离散值 38 BETWEEN 连续值,常与and连用 39 GROUP 分组,常与by连用 40 HAVING 对GROUP BY分组内的数据进行过滤 41 TOP 筛选结果集 42 DISTINCT 去重 43 UNION 44

5、 ALL 45 CASE 类似与C#中的SWITCH-—CASE语法,查询离散值 46 ELSE 设定case的默认值 47 END 结束case语句 48 WHEN 与case连用 49 VIEW 视图 50 INDEX 索引 51 JOIN 联合查询 52 ON 与JOIN连用 数据类型: SQL Server 2008一共有36种数据类型。具体如下: 编号 数据类型 存储空间 字符类型说明 整数型(4) 1 tinyint 1字节 取值范围:0--255 2 smallint 2字节 取值范围:—27

6、68--32767 3 int 4字节 取值范围:—231—231—1 4 bigint 8字节 取值范围:—263—263—1 浮点类型(6) 5 decimal(p,s) 5—17 字节 取值范围:—1038+1-1038-1。p (有效位数,p的取值小于38),可储存的最大十进位数总数,小数点左右两侧都包括在内。s (小数位数,0 <= s <= p 〈= 38) 小数点右侧的小数位数。 例如:decimal(3,1)表示,一共3位有效位,其中整数部分2位,小数部分1位,最大值是99.9,最小值是—99.9 6 numeric(p,s) 4字节

7、取值范围:—214,768。3648-—214,768。3647。用法类似decimal 7 smallmoney 4字节 取值范围:–214 748。3648~2 14 748.3647。主要是用于货币 8 money 8字节 取值范围:-3.438—3。438主要用于货币 9 real 4或8字节 取值范围:-3。40E+38~—1.18E-38,0,1.18E—38~3.40E+38 10 float 4字节 取值范围:—3.4E38~3.4E38 字符类型(8) 11 char(n) 每字符1字节,最大可达8000字节。ANSI字符,会用空格

8、填充. 12 nchar(n) 每字符2字节,最大可达4000字节。UNICODE字符,会用空格填充. 13 varchar(n) 每字符1字节,最大可达8000字节.ANSI字符,可变长度,不会用空格填充。 14 varchar(MAX) ANSI字符,最大可达2G 15 nvarchar(n) 每字符2字节,最大可达4000字节。UNICODE字符,可变长度,不会用空格填充。 16 nvarchar(MAX) 最多为231–1(2 147 483 647)字符 17 text 每字符1字节,最大可达2G。 18 ntext

9、 每字符2字节,最大可达2G。 二进制数据类型(5) 19 bit 1比特 NULL,0或1 20 binary(n) 固定长度二进制数据,最高可达8000字节。 21 varbinary 可变长度二进制数据,最高可达8000字节。 22 varbinary(MAX) 最多为232—1字节 23 image 可变长度二进制数据,最高可达2GB。 日期和时间类型(7) 24 smalldatetime 25 date 3字节 精度一天,支持范围01/01/0000—31/12/9999。 26 datetime 8字

10、节 0.00333秒,支持的范围是’1000-01-01 00:00:00’到'9999-12-31 23:59:59’.以’YYYY-MM-DD HH:MM:SS’格式显示DATETIME值 27 datetime2(n) 6——8字节 100纳秒 28 datetimeoffset(n) 8——10字节 100纳秒 29 time 3—5字节 100纳秒 30 timestamp TIMESTAMP值返回后显示为’YYYY-MM-DD HH:MM:SS’格式的字符串。 其他数据类型(6) 31 xml 用于存储xml格式的文档,最大可达2GB

11、支持128级层次。 32 geography 地理数据。 33 geometry 几何数据。 34 hierarchyid 主要解决的问题是拥有层次关系的表格,通常用来建立树形结构 35 sql_variant 用于存储 SQL Server 2005 支持的各种数据类型(不包括 text、ntext、image、timestamp 和 sql_variant)的值。对于 sql_variant 数据类型,必须先将它转换为其基本数据类型值,然后才能参与诸如加减这类运算 36 uniqueidentifier Uniqueidentifier

12、是全局唯一的标识,可存储16字节的二进制值,其作用与全局唯一标记符(GUID)一样,一般用来做主键。 常用语法: 一、数据库 【创建数据库】 CREATE DATABASE 〈dbname> 【修改数据库】 ALTER DATABASE 【删除数据库】 DROP DATABASE 〈dbname〉 二、表结构 【创建数据表】 1、设定字段是允许空,非空、标识列,自增和主键约束。 CREATE TABLE T_CUSTOMER —-表名 (CUSTOMERID INT IDENTITY(1,1),—-客户ID,标识列,从开始,每次自增 COMPANY

13、NAME NVARCHAR(50) NOT NULL,--,如果不显示指明NOT NULL,系统默认是允许空的 USERNAME NVARCHAR(10) NOT NULL,-—联系人姓名,非空 PHONENUMBER CHAR(11) NULL,-—联系电话,允许为空 CONSTRAINT T_CUSTOMER_PrimaryKey PRIMARY KEY (CUSTOMERID)) —-设定USERID为主键,用括号括起来 /*每个单词之间是空格隔开,每个字段之间用单引号隔开,整个字段定义部分用括号括起来*/ /*T_RegUser_PrimaryKey是约束名*/ 2、设定字

14、段是UNIQUEIDENTIFIER数据类型,唯一性约束,CHECK约束和默认值约束。 CREATE TABLE T_CUSTOMER (CUSTOMERID UNIQUEIDENTIFIER UNIQUE,—-客户ID,UNIQUEIDENTIFIER类型,唯一性约束 COMPANYNAME NVARCHAR(50) NOT NULL UNIQUE,--公司名称,非空,唯一性约束 USERNAME NVARCHAR(10) NOT NULL, PHONENUMBER CHAR(11) NULL, AGE TINYINT NULL CHECK(AGE>0),—-联系人年龄,允许空

15、check约束必须大于 MODIFIEDDATE DATE NULL CONSTRAINT T_CUSTOMER_DEFAULT DEFAULT GETDATE(),--默认值约束,并调用SQL函数GETDATE() CONSTRAINT T_CUSTOMER_PrimaryKey PRIMARY KEY (CUSTOMERID)) 3、设定字段外键 CREATE TABLE T_ORDER ——订单表 (ORDERID INT IDENTITY(1,1),—-订单ID,标识字段,自增 PRODUCT NVARCHAR(50) NOT NULL,-—产品 PAYMENT MO

16、NEY NOT NULL,-—货款 ORDER_CUSTOMERID UNIQUEIDENTIFIER NOT NULL,——客户ID,为外键,外键内容是T_CUSTOMER表的CUSTOMERID列 CONSTRAINT T_ORDER_PrimaryKey PRIMARY KEY(ORDERID),——设置ORDERID为主键 CONSTRAINT T_ORDER_T_CUSTOMER_ForeignKey FOREIGN KEY(ORDER_CUSTOMERID) REFERENCES T_CUSTOMER(CUSTOMERID)) /*设定外键基本语法*/ CONSTRAIN

17、T <约束名〉 FOREIGN KEY(〈外键表列名>) REFERENCES <主键表〉(<主键表列名〉) /*设置外键,T_ORDER_T_CUSTOMER_ForeignKey是外键约束名,FOREIGN KEY后边是本表内要被设置的外键列 REFERENCES后边是主键所在的表,括号内是主键表的链接列*/ /*表名后的所有内容,都要拿括号括起来*/ /*外键的数据类型要和主键一模一样,哪怕主键是UNIQUEIDENTIFIER也必须设置成一样*/ 【修改表名】 /*修改表名,可能会破坏脚本和存储过程。*/ EXEC SP_RENAME ’<原表名〉',’〈新表名>' 示

18、例: EXEC SP_RENAME 'T_CUSTOMER2’,'T_CUSTOMER22’ 【修改表结构】 1、添加列和列的约束 /*添加列、添加唯一性约束*/ ALTER TABLE <表名> ADD 〈列名1〉 BIT NOT NULL,—-添加多个列不用括号,用逗号分开即可 〈列名2〉 INT NOT NULL UNIQUE-—声明的时候,和创建表的时候一样 示例: ALTER TABLE T_CUSTOMER ADD GENDER BIT NOT NULL,——添加多个列不用括号,用逗号分开即可 CUSTOMERADDRESS INT NOT NULL UNIQ

19、UE——声明的时候,和创建表的时候一样 2、删除列 /*删除列*/ ALTER TABLE <表名〉 DROP COLUMN <列名1〉,〈列名2>—-使用关键字COLUNM(列) 示例: ALTER TABLE T_CUSTOMER DROP COLUMN GENDER,CUSTOMERADDRESS--使用关键字COLUNM(列) /*每个列名之间用逗号隔开,如果列上有任何约束,则需要先删除约束*/ 3、添加主键约束,唯一性约束、check约束和默认值约束 /*添加主键约束,唯一性约束,check约束和默认值约束*/ ALTER TABLE 〈表名> ADD CON

20、STRAINT <约束名〉 CHECK (CHECK约束内容),——CHECK约束,每个约束之间用逗号隔开 CONSTRAINT 〈约束名〉 UNIQUE(〈列名>),—-唯一性约束 CONSTRAINT <约束名〉 DEFAULT <默认约束值或函数〉 FOR <列名〉 --默认值约束 示例: ALTER TABLE T_CUSTOMER ADD CONSTRAINT T_CUMSTOMER_AGE_CHECK CHECK (AGE>0),——CHECK约束 CONSTRAINT T_CUSTOMER_USERNAME_UNIQUE UNIQUE(USERNAME),-—唯一性约

21、束 CONSTRAINT T_CUSTOMER_DEFAULT DEFAULT GETDATE() FOR MODIFIEDDATE —-默认值约束 4、删除主键约束,唯一性约束、check约束和默认值约束 /*删除主键约束,删除唯一性约束、删除check约束,删除默认值约束*/ ALTER TABLE <表名> DROP <约束名1〉,〈约束名2>,<约束名3>--后边直接跟约束名,用逗号隔开 示例: ALTER TABLE T_CUSTOMER DROP T_CUSTOMER_DEFAULT,—-后边直接跟约束名,用逗号隔开 UQ__T_CUSTOM__EDBD0E193

22、5BCFE0A, CK__T_CUSTOMER__AGE__276EDEB3 如果创建的时候,没有显性的指定约束名,例如UNIQUE,CHECK等约束,可以通过SP_HELP T_CUSTOMER来查询所有的约束名。在查询结果的第7个结果集中,可以看到类似下图的结果,第一列是约束类型,第二列就是约束名,最后一列是列名。 5、修改列的字段类型 /*修改列的字段类型和非空*/ ALTER TABLE 〈表名〉 ALTER COLUMN <列名> 〈新数据类型〉 示例: ALTER TABLE T_CUSTOMER ALTER COLUMN CUSTOMERADDRESS NV

23、ARCHAR(100) –—修改多列的字段类型还不知道怎么改 6、设置列的空/非空 /*修改列的空和非空*/ ALTER TABLE <表名> ALTER COLUMN <列名〉 〈数据类型> NOT NULL—必须跟数据类型,否则会 示例: ALTER TABLE T_CUSTOMER ALTER COLUMN MODIFIEDDATE DATE NULL 7、修改列名 /*修改列名,可能会破坏脚本和存储过程*/ EXEC SP_RENAME '〈tbname〉。〈原列名>’,'<新列名>','COLUMN'—-后边的column是固定写法 示例: EXEC SP_R

24、ENAME ’T_CUSTOMER。PHONENUMBER',’PHONE’,’COLUMN'—-将原来的PHONENUMBER电话号码,改成PHONE电话 【删除表】 DROP TABLE 〈tbname> 三、表数据 【插入数据】 1、插入一行全字段数据 /*插入一行全字段数据*/ INSERT INTO 〈tbname> VALUES(’值1’,'值2',’值3’) –-值的数量必须和表定义的一样多,而且数据类型必须一一对应 示例: INSERT INTO T_CUSTOMER VALUES (NEWID(),'公司3','用户3',’123’,DEFAULT,'x

25、xx’) –-要到了NEWID()函数 2、插入一行部分字段数据 /*插入一行数据*/ INSERT INTO

26、插入多行数据 INSERT INTO T_CUSTOMER2 (COMPANYNAME,USERNAME,PHONENUMBER) VALUES('公司2',’用户2',’13999999999’), (’公司3’,’用户3','13999999999'), —-用括号将每一行数据括起来,括号与括号之间用逗号隔开 (’公司4’,'用户4’,’13999999999’) 4、插入函数值和默认值 /*UNIQUEIDENTIFIER类型字段,使用NEWID()函数。有默认值的使用DEFAULT关键字*/ INSERT INTO (列1, 列2, 列3, 列

27、4,) VALUES(NEWID(),'值1','值2',DEFAULT) 示例: /*CUSTOMERID是UNIQUEIDENTIFIER类型,所以要使用NEWID()函数,MODIFIEDDATE字段有模式值,是取得当前的日期时间GETDATE()函数*/ INSERT INTO T_CUSTOMER (CUSTOMERID,COMPANYNAME,USERNAME,PHONE,MODIFIEDDATE) VALUES(NEWID(),'公司',’用户',’13999999999',DEFAULT) 【修改数据】 /*UPDATE通常是与SET和WHERE配合使用,如

28、果不用WHERE,则会把整个列都修改*/ UPDATE SET 列='值’ WHERE 列='值' AND 列=’值'——可以是任何删选条件 示例: /*将公司2的电话号码修改成13888888888*/ UPDATE T_CUSTOMER SET PHONE='13888888888’ WHERE COMPANYNAME='公司2’ 【查询数据】 1、查询所有数据,或者部分行数据(用where进行过滤) /*查询表中的所有数据用星号*/ SELECT * FROM 〈tbname> WHERE 〈筛选条件1> AND <筛选条件2〉 OR <筛选

29、条件3> 示例: /*查询客户表中的所有数据*/ SELECT * FROM T_CUSTOMER 2、查询表中的部分列数据, /*查询部分列的所有数据,或者部分行部分列的数据*/ SELECT 〈列名1〉,<列名2>,<…> —-这个列名顺序可以按照自己的想法来,不用非要和表定义一致 FROM T_ORDER WHERE <筛选条件1> AND <筛选条件2> OR 〈筛选条件3> 示例: /*查询订单表中的所有数据*/ SELECT PRODUCT, PAYMENT FROM T_ORDER 3、对查询出来的数据进行排序 /*ORDER BY 的默认排序是升序A

30、SC,如果BY的列是数字,则是从大到小,如果是字符串,则是从A到Z,如果是时间从远至近。降序的话是加关键字DESC。假如是升序,最好也加上ASC*/ SELECT * FROM WHERE 〈筛选条件1> AND 〈筛选条件2〉 OR 〈筛选条件3> ORDER BY 〈列名1〉 ASC(升序)/DESC(降序),〈列名2〉 ASC(升序)/DESC(降序) /*列1和列2可以采用不一样的排序*/ 示例: /*查询客户表中的所有数据*/ SELECT * FROM T_ORDER WHERE PAYMENT>100 –价格大于100 ORDER BY

31、PRODUCT ASC, PAYMENT DESC —-产品名称使用升序,产品价格使用降序 【删除数据】 1、删除一般数据 /*删除公司一般数据*/ DELETE FROM 〈tbname> WHERE <筛选条件1〉 AND <筛选条件2> OR 〈筛选条件3> 示例: /*删除公司,公司ID是订单表的外键*/ DELETE FROM T_CUSTOMER WHERE COMPANYNAME=’公司1' 2、快速高效的删除表内的全部数据 /*快速高效的清空表内的全部数据,TRUNCATE本意是截短、把…截短。TRUNCATE只能用来删除表中的所有数据,不能用来删除部分数

32、据,而且有外键约束的主键表不能被删除*/ TRUNCATE TABLE 示例: /*删除公司,公司ID是订单表的外键*/ TRUNCATE TABLE T_CUSTOMER 3、删除有外键约束的数据 /*如果该条数据已经被外键表引用,则无法删除.被引用的数据必须置于未被使用的状况,方法就是修改外键表字段,或者删除外键表中的引用数据*/ 示例: /*删除公司,公司ID是订单表的外键*/ UPDATE T_ORDER –将所有引用公司1的数据全部改成公司2 SET ORDER_CUSTOMERID=’2f20b157—a287-43e0-be99—1fb91

33、7618629' WHERE ORDER_CUSTOMERID=’c013076f—7889—400e—aa7a—b38436730d70' /*然后才可以在主键表中删除公司1*/ DELETE FROM T_CUSTOMER WHERE COMPANYNAME='公司1’ 四、其他辅助关键字 【LIKE通配符】 1、单字符通配符,只能用于字符串匹配 /*单字符通配符_*/ SELECT * FROM T_CUSTOMER WHERE <列名1〉 LIKE ’_通配符_’ AND 〈筛选条件2〉 OR 〈筛选条件3> 示例: SELECT * FROM T_CUST

34、OMER WHERE USERNAME LIKE '用户_'–—将客户表中包含"用户+任意字符”的行数据查出来 2、多字符通配符,只能用于字符串匹配 /*单字符通配符%,百分号代表*从0到N的字符串/ SELECT * FROM T_CUSTOMER WHERE <列名1〉 LIKE ’%通配符%' AND <筛选条件2〉 OR <筛选条件3> 示例: SELECT * FROM T_CUSTOMER WHERE USERNAME LIKE '%用户%'–-查询客户表中用户名包含“用户"二字的所有数据 【AS列名】 1、AS可以将查询结果的英文定义表头改成非英语的别名表

35、头 /*单字符通配符_*/ SELECT <列名1〉 AS 〈别名1>,<列名2> AS <别名2>–-每个列之间用逗号隔开 FROM 〈tbname> 示例: SELECT COMPANYNAME AS 公司,USERNAME AS 联系人,PHONE AS 联系电话 FROM T_CUSTOMER 【NULL值】 1、NULL值要用特殊的关键字IS 或IS NOT,而不能用!=或〈>之类的符号 示例: SELECT COMPANYNAME,USERNAME FROM T_CUSTOMER WHERE PHONE IS NULL--选出电话号码是NULL的行,也可以与

36、其他条件一起使用 或者 SELECT COMPANYNAME,USERNAME FROM T_CUSTOMER WHERE PHONE IS NOT NULL-—选出电话号码不是NULL的行 【IN匹配离散值】 1、如果要查询离散值,一个方法是很多个OR条件,可以可以用IN或NOT IN关键字. 示例: SELECT * FROM T_DOCTOR WHERE AGE IN (23,24,34) —-选出年龄是23,24和34岁的医生 或者 SELECT * FROM T_DOCTOR WHERE AGE NOT IN (23,24,34) –—选出年龄不是23,2

37、4和34岁的医生 【BETWEEN匹配连续值】 1、如果要查询离散值,一个方法是很多个OR条件,可以可以用IN或NOT IN关键字。 示例: SELECT * FROM T_DOCTOR WHERE AGE BETWEEN 20 AND 50--查询出年龄介于20到50之间的医生数据 或者 SELECT * FROM T_DOCTOR WHERE AGE NOT BETWEEN 20 AND 50--查询出年龄不介于20到50之间的医生数据 【GROUP分组】 1、按照某列分组 /*先按照GROUP BY字段进行分组,然后在分组内进行操作.所以SELECT后的列名只能

38、是GROUP BY内的列,或者是聚合函数.如果有WHERE的话,GROUP和ORDER都必须放在WHERE之后*/ SELECT 分组列名 AS 列别名,聚合函数1,聚合函数2 FROM 〈tbname〉 GROUP BY 分组列名 示例: SELECT F_AGE AS 年龄,COUNT(*) AS 人数, AVG(F_SALARY) AS 工资平均值 FROM T_EMPLOYEE GROUP BY F_AGE—按照年龄分组 输出结果: 2、按照多列分组 /*先按照列名1分组,再按照列名2分组。如何列名1分为3组,每一组里边按照列名2又分为2组,则输出就是6行数据*

39、/ SELECT 列名1,列名2,聚合函数 FROM 〈tbname〉 GROUP BY 列名1,列名2--直接用逗号隔开多个列名即可 示例: SELECT F_AGE AS 年龄,F_SALARY AS 工资, COUNT(*) AS 人数 FROM T_EMPLOYEE GROUP BY F_AGE,F_SALARY——按照年龄分组,再按照工资分组,然后统计人数 ORDER BY F_AGE ASC--ORDER BY也可以一起使用 输出结果: 【HAVING数据分组后的再筛选】 1、数据分组后的筛选 /*HAVING 是对分组以后的数据进行过滤。有了GROUP

40、 BY才能使用HAVING,无GROUP BY 是不能使用HAVING的。HAVING中的列,也只能和SELECT语句一样,使用GROUP BY列或者聚合函数*/ SELECT 列名1,列名2,聚合函数 FROM 〈tbname> GROUP BY 列名1,列名2--直接用逗号隔开多个列名即可 HAVING 聚合函数的筛选条件 示例: SELECT F_AGE AS 年龄,F_SALARY AS 工资, COUNT(*) AS 人数 FROM T_EMPLOYEE GROUP BY F_AGE,F_SALARY——按照年龄分组,再按照工资分组,然后统计人数 HAVING CO

41、UNT(*)>1--在分组中剔除count数为的小分组 输出结果: 【TOP限制结果集】 1、对查询出的前几条数据的筛选 /*一般是与ORDER BY连用,而且TOP 必须放在*型号或者列名的前面。不和ORDER BY也可以使用,但是查询结果不确定*/ SELECT TOP 数量 列1,列2 FROM

42、进行筛选,使用子查询。这个非常重要的是用在分页上。 /*如果要选择从X开始后Y个结果的子集,第一步先查询出TOP X-1个结果子集,然后把它排除掉就是从X到X+Y的结果子集。删除的时候一般是用主键,或者没有重复的数据列.最主要的是NOT IN关键字*/ SELECT TOP X 列名1,列名2 FROM ORDER BY 排序列名 DESC ) ORDER BY 排序列名 DESC /*WHERE后的列名必须和子查询的SELECT列名一致*/ /*主查询的ORDE

43、R BY 列名必须和子查询的ORDER BY列名一致,而且排序方式也必须一致*/ 示例: /*查询出工资排名是4,5,6名*/ SELECT TOP 3 F_NAME,F_SALARY FROM T_EMPLOYEE WHERE F_ID NOT IN (SELECT TOP 3 F_ID FROM T_EMPLOYEE ORDER BY F_SALARY DESC ) ORDER BY F_SALARY DESC 【DISTINCT去除重复数据】 1、查询一列中的无重复数据 /*只能查询列的结果集。DISTINCT要放在SELECT之后,和所有列名的前面*/ SELECT

44、 DISTINCT 去重列名 FROM 示例: SELECT DISTINCT F_DEPARTMENT-—查询出的部门列去重 FROM T_EMPLOYEE 2、多列组合去重 /*每个列都一样的,才算重复。如果一列不一样,就不算重复*/ SELECT DISTINCT 去重列名1,去重列名2 FROM 〈tbname〉 示例: SELECT DISTINCT F_DEPARTMENT,F_SUBCOMPANY FROM T_EMPLOYEE 【UNION合并查询结果】 1、合并查询结果 /*合并查询结果集,所以每个每个结果集必须有相同的列数

45、每个结果集的列必须类型相容,位置也必须一致,可以合并2个以上的查询结果。但是默认会合并重复数据*/ /*如果列数不一样,必须再相应的位置补齐.默认查询结果是对第一列排序*/ /*如果列名不一致,则表头默认是采用第一个查询的列名*/ /*外键是把多个列组合在一起,而UNION是把多个行组合在一起*/ SELECT 列1,列2, 补齐列 FROM UNION SELECT 列1,列2, 列3 FROM 〈tbname2〉 示例: SELECT FNAME,FAGE,0 AS "工资" FROM T_TEMPEMPLOYEE—-临时工没工资,所以要补齐 UNI

46、ON SELECT F_NAME,F_AGE,F_SALARY FROM T_EMPLOYEE 2、ALL合并查询出的所有结果,不去重 /*除非程序需要,一般要加ALL,因为判断去重,会让数据库消耗掉大量的资源*/ SELECT 列1,列2, 补齐列 FROM 〈tbname1〉 UNION ALL SELECT 列1,列2, 列3 FROM 〈tbname2〉 示例: SELECT FNAME FROM T_TEMPEMPLOYEE—-名字里头有重复的 UNION ALL SELECT F_NAME FROM T_EMPLOYEE 3、利用UNION 多加一行,

47、做一些函数操作 示例: SELECT F_NAME,F_SALARY FROM T_EMPLOYEE UNION ALL SELECT ’工资合计',SUM(F_SALARY) FROM T_EMPLOYEE—-工资合计 UNION ALL SELECT '平均工资’,AVG(F_SALARY) FROM T_EMPLOYEE-—平均工资 【JOIN联合查询】 1、JOIN联合查询 /*JOIN联合查询不光是可以查有主/外键关联的,也可以查没有关联的几张数据表,但是得有一列数据相等.而且可以列出几张表中所有的列*/ SELECT 表1.列1,表2。列3,表2。列4 F

48、ROM 表1 JOIN 表2 ON 表1.列1=表2。列2 /*或者给表取个别名,比较容易查看*/ SELECT O。列1,O。列2,C。列3 FROM 表1 AS C JOIN 表2 AS O ON C.列1=O.列2 示例: SELECT O。ORDERID,O.PRODUCT,C.PHONE FROM T_CUSTOMER AS C JOIN T_ORDER AS O ON C.CUSTOMERID=O.ORDER_CUSTOMERID 五、常用函数: 函数名 函数意义 示例 数学函数 SUM() 求某一列的和 AVG() 求某一列的平均值

49、 MAX() 取出某一列的最大值 MIN() 取出某一列的最小值 ABS() 求绝对值 CEILING() 舍入到比它大的、最近的最大整数。注意不是数学意义上的四舍五入 例如:3.33舍入到4,-3.33舍入到—3 FLOOR() 舍入到比它小的、最近的最大整数。注意不是数学意义上的四舍五入 例如:3。33舍入到3,-3.33舍入到—4 ROUND() 舍入到离我半径的整数,就是传统意义上的数学上的四舍五入 例如:3。65舍入到4,-3。65舍入到—4。 ROUND(3.14159,3)就是保留小数点后3位,将舍入为3。14200 字符串函数

50、LEN() 字符串的长度 括号里头是字符串或列名 LOWER() 字符串转成小写 同上 UPPER() 字符串转成大写 同上 LTRIM() 去掉字符串左边的空格 同上 RTRIM() 去掉字符串右边的空格 同上.如果要去掉两边的空格,就想L再R,或者先R再L SUBSTRING() 取子字符串.有三个参数,SUBSTRING(STRING START_POSITION LENGHT)取子字符串 SELECT SUBSTRING(’abcdef111’,2,3) 日期函数 GETDATE() 获取服务器当前日期和时间 DATEADD() DATE

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服