




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MySQL数据库学习笔记 关系数据库的查询语言 SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以“系统 R“的名字在 IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来 IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以 IBM
2、 SQL 为基础的标准关连式资料语言定义。 第一章、了解概念,并理解它一、资料定义 DDL(Data Definition Language) 资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。 数据库第二章MySQL数据库数据类型 第一节、数据类型MySQL数据库目前支持以下几种下列代码字母用于描述中:M 指出最大的显示尺寸。最大的显示尺寸长度为 255。 D 适用于浮点类型。指出跟随在十进制小数点后的数字数量。最大可能值为
3、 30,但不应大于 M-2。 方括号 ("" and "") 指定可选的类型修饰部份。 1、数值型(包括整数与浮点数,浮点型支持科学表示法)浮点类型:numeric nju:merik decimal(5,2),数字位:5,小数位:2 numeric 等价于 decimal 并且是作为字符串存储的.而不是作为二进制浮点数.说明:salary DECIMAL(3,2)在这个例子中,3 (精度(precision) 代表重要的十进制数字的数目,2 (数据范围(scale) 代表在小数点后的数字位数。在这种情况下,因此,salary 列可以存储的值范围是从 -
4、99.99 到 99.99。(实际上 MySQL 在这个列中可以存储的数值可以一直到 999.99,因为它没有存储正数的符号)。 整型:integer类型 占用字节 从 到 TINYINT 1 -128 127 SMALLINT 2 -32768 3276
5、7 MEDIUMINT 3 -8388608 8388607 INT 4 -2147483648 2147483647 BIGINT 8 -9223372036854775808 9223372036854775807 2、字符串(字符)类型3、日期和时间类型4、Null类型 不同
6、于例如数字类型的0或字符串的5、布尔类型 TURE FALSE 标识符约定标识符 最大长度 允许的字符数据库 64 一个目录名中允许的任何字符,除了/,和.表 64 一个目录名中允许的任何字符,除了/和.列 64 所有的字符 索引 64 所有的字符 加名 255 所有的字符定界符,反引号ANSI SQL中双引号为定界符注意:在MYSQL中,数据库和表对应操作系统下的目录与文件,因而,操作系统的敏感性决定数据库和表命名
7、的大小敏感,所以在LINUX下数据库与表名的大小写敏感.提示:USE ,HELP 是Mysql中为少数几个不需要终结符的语句之一.用户变量表示为: var_name;set x=99; 等同于x := 99;系统变量用两个表示,它分为2种,全局系统变量和会话系统变量.下面详细说明各种类型MySQL支持所有的ANSI/ISO SQL92数字类型.1、数值型 一个整数可以在浮点语境中使用;它被解释为等值的浮点数;同样,一个浮点数可以被转化为整数,但损失精度,如100.1->100,100.5->101;2.Mysql支持16进制数值,在数字的语境中,它们表现类似于一个整数(6
8、4位精度);如select 0xa+0; 在字符串的语境中,它们表现类似于一个二进制的字符串,每一对16进制ASCII码被转为一个字符: select 0x787868 ; =select x'787868' select hex('xxh'); select 0xa+5; select true,true,flase,FALSE;其中浮点型用于域,表示方法解释一下,如:FLOAT(M,D) UNSIGNED ZEROFILL 如果 UNSIGNED 被指定,负值是不允许的。M 是显示宽度,D 是小数位
9、数。并且如果负号“”也占一个宽度。2、字符串类型字符串是多个字符组成的一个字符序列,由单引号,或双引号字符包围,但在ANSI模式中运行时只能用单引号,也就是说在SQL SERVER数据库,使用应该使用单引号,保证兼容性应该使用单引号. 字符串类型有 CHAR、VARCHAR、BLOB、TEXT、ENUM 和 SET;ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举。 每个枚举值均有一个索引值: 在列说明中列表值所允许的成员值被从 1 开始编号。 空字符串错误值的索引值为 0。这就意味着,你可以使用下面所示的
10、 SELECT 语句找出被赋于无效 ENUM 值的记录行。 mysql> SELECT * FROM tbl_name WHERE enum_col=0;NULL 值的索引值为 NULL。 总结:ENUM用于互相排斥的值,而 SET列可以从一个值的列表中选择多个值。常用技巧:1.在命令提示符下:mysql -h -u root db_name <x.sql在串的环境中,可用十六进制常数来指定串值。其语法与前面描述的数值值相同,但是每对十六进制的数字都被看作 ASCII 代码并转换为字符,其结果用于串。例如, 0x616263作为串时为“a b c”。在一个字符串中,如果某个序列具有
11、特殊的含义,每个序列以反斜线符号 (“”)开头,称为转义字符。 MySQL 识别下列转义字符: 0 一个 ASCII 0 (NUL) 字符。 ' 一个 ASCII 39 单引号 (“'”) 字符。 " 一个 ASCII 34 双引号 (“"”) 字符。 b 一个 ASCII 8 退格符。 n 一个 ASCII 10 换行符。 r 一个 ASCII 13 回车符。 t 一个 ASCII 9 制表符(TAB)。 z ASCII(26) (Control-Z)。这个字符可以处理在 Windows 系统中 ASCII(26) 代表一个文件的结束的问题。(当使用 my
12、sql database < filename 时 ASCII(26) 可能会引起问题产生。) 一个 ASCII 92 反斜线 (“”) 字符。 % 一个 ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数。 _ 一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数. 3、日期和时间类型4、Null类型Null是ANSI中值的空。查找NUll类型用IS Null 和IS Not Null测试;并且不能对
13、NULL类型进行算术运算。其结果为NULL。5.mysql的注释为两种:/*/和#(单行注释,类似UNIX的脚本注释;)第07章 MySQL函数mysql 运算符A.比较运算符=,!=(<>),>,>=,<,<=Null安全等于比较<=>is null ,is not null isnull(express)如果expr大于或等于min,并且expr小于或等于max,between返回1,否则返回0.它等价于表达式(min<=expr and expr<=max)expr in (v1,v2,.);如果expr 是in列表中的一值,它
14、将返回1,否则返回0.B.逻辑运算符 在mysql中,所有的逻辑运算符返回的值均为true,false,或null(未知),在mysql中,它们由1(true),0(false)和null实现. select !1 等同于 select not 1; C.流程控制函数 ifnull(expr1,value) 当expr1的值是null时,返回value,不是null时,返回expr1 case value when compare-value then result . set a=2; select case a
15、0;when 1 then 'one' when 2 then 'two' else 'more' end; if (expr1,expre2,expr3) 如果expr1为真,(expr1<>0以及expr1<>null),那么if()返回expr2,否则返回expr3 nullif(expr1,expr2) 如果expr1=expr2为真,返回null,否则返回expr1;mysql> select nullif(1,1); -> nullmysq
16、l> select nullif(1,2) -> 1D.mysql字符串函数返回字符串str最左边的那个字符的ASCII码值.mysql> select ascii('2'); -> 50返回N的字符串表示的2进制值形式.mysql> select bin(12); -> '1100'返回N的字符串表示的八进制值形式mysql> select oct(12); -> 14如果x是一个数字,返回n的字符串表示的16进制值形式,这里n是一个长长的(bigint)数字.如果x是一个
17、字符串,x中的每个字符均被转换为2位16进制数字,并以16进制的字符串形式返回.这是0xff形式的字符串反转操作.mysql> select hex(255); -> ffmysql> select hex('abc'); /select ascii('a'); -> 97 select hex(97); -> 61 -> 616263mysql> 0x616263; -> abcchar()以整数类型解释参数,返回这个整数所代表的Ascii码值给出的字符组成的字符串,null值将被忽
18、略mysql> select char(120,120,104); -> xxhconcat(str1,str2,.)将参数连接成字符串返回,如果有任何一个参数为null,返回值也为null.locate(子串substr,母串str)返回子串substr在字符吕中第一次出现的位置.如果子串substr在str中不存在,返回值为0:ltrim(str)返回移除了领头的空格字符后的str;第08章 MySQL数据操纵语言DML·select 语法·select 列1,列2,列3,from 表1,表2,表3where 条件group by .having
19、.第二节域/列类型属性域/列的类型属性,有以下特性: 其中可以存放什么类型的值。 值要占据多少空间,以及该值是否是定长的(所有值占相同数量的空间)或(所占空间量依赖于所存储的值)。 该类型的值怎样比较和存储。 此类型是否允许 NULL 值。 此类型是否可以索引。 ·数字·日期和时间·字符串(字符)列类型的属性有以下四种:·Default·Not Null 或 Null·Primary Key 即主键·Auto_increment (只有1个只能被索引)一、数据库的操作操作系统下的操作mysql -h -u -pm
20、ysql -h localhost -uroot ·创建数据库·删除数据库·显示数据库·使用数据库·数据库其他相关操作1、创建数据库CREATE DATABASE db_Name;说明:2、删除数据库DROP DATABASE db_Name;说明:可以简写为:drop db_name;3、显示数据库SHOW databases;说明:显示当前有哪些数据库。4、使用数据库USE database;说明:5、显示数据库中有哪些表首先USE database;然后SHOW tables;参见:show的用法 二、表格、索引的操作·
21、;创建表格·更改表格·建立索引·删除表格、索引·表格其他相关操作以下操作都是以表格table_name或索引为操作单位。DESCRIBE或DESC命令除外。 文件 用途 tbl_name.frm 表定义 (form) 文件 tbl_name.MYD 数据文件 tbl_name.MYI
22、 索引文件 1、创建表格: CREATE TABLE table_name( column1 DATATYPE NOT NULL NOT NULL PRIMARY KEY, column2 DATATYPE NOT NULL, .)说明: DATATYPE -是资料的格式,也就是字段的数据类型Not Null -不允许资料有空的PRIMARY KEY -是本表的主键。 可以通过一个表的内容来拷贝一个表,如CREATETEMPORARY TABLEnew_tbl_name SELECT * FROM old_tbl_name;CREATETEMPORARY T
23、ABLEnew_tbl_name SELECT * FROM old_tbl_name where 1=0;(只是拷贝空表)2、更改表格 ALTER TABLE tbl_name ADD COLUMN col_name DATATYPE 说明:增加一个栏位即(字段)(没有删除某个栏位的语法)。 ALTER TABLE tbl_name RENAME AS new_name;说明:对表重命名。ALTER TABLE table_name drop column_name说明:删除指定的列名。ALTER TABLE tbl_name CHANGE old_column_name new
24、_column_name DATATYPE 说明:更改列名及列属性。 例:ALTER TABLE tbl_name CHANGE old_column_name new_column_name int(2) not null primary key ; ALTER TABLE table_name ADD PRIMARY KEY (column_name) 说明:更改表得的定义把某个栏位设为主键。 ALTER TABLE table_name DROP PRIMARY KEY (column_name) 说明:把主键的定义删除。 ALTER TABLE my_tbl TYPE=ISAM或MYI
25、SAM,HELP,InnoDB 等等 说明:更改表的类型3、建立索引 CREATE INDEX index_name ON table_name (column_name) ;CREATE UNIQUE index_name ON table_name (column_name) ;ALTER TABLE tbl_name ADD INDEX index_name(column_list);ALTER TABLE tbl_name ADD UNIQUE index_name(column_list);ALTER TABLE tbl_name ADD PRIMARY KEY (column_li
26、st);说明:对某个表格的栏位建立索引以增加查询时的速度。 4、删除表格、索引 DROP tbl_name1,tbl_name2,tbl_name3.; DROP INDEX index_name ON tbl_name;ALTER TABLE tbl_name DROP INDEX index_name;ALTER TABLE tbl_name DROP Primary Key;5、显示表格中列的信息语法:DESCRIBE | DESC tbl_name col_name | wildDESCRIBE tbl_name;说明:DESCRIBE 是 SHOW COLUM
27、NS FROM 的缩写。用于显示表格中列的信息。DESCRIBE tbl_name; 等于SHOW COLUMNS FROM tbl_name; 也可以简写为:desc tal_name;describe vt. 描写, 记述, 形容, 形容 三、记录的操作·记录的添加·记录的更改·记录的删除··首先来大概了解一下INSERT 的语法,有以下几种方式:INSERT INTO tbl_name (col_name,.) VALUES (expression | DEFAULT),.),(.),.
28、160; ON DUPLICATE KEY UPDATE col_name=expression, . 或者 INSERT INTO tbl_name (col_name,.) SELECT .或者 INSERT INTO tbl_name SET col_name=(expression | DEFAULT), . ON DUPLICATE KEY UPDATE co
29、l_name=expression, . 说明:我们只关心记录添加的方式啦。注意啦,现在我们开始啦。1、记录的添加最简单的一种:直接添加一行记录就是:INSERT INTO tbl_name (col_name,.) VALUES (expression | DEFAULT),.),(.),.);例:INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2); insert tbl_name (col1,col2) values ('007','xxh5fd')第二种: 2、
30、记录的更改还是先来看一看UPDATE 的语法UPDATE tbl_name , tbl_name . SET col_name1=expr1 , col_name2=expr2 .WHERE where_definition说明:UPDATE 以新的值更新现存表中行的列。SET 子句指出要修改哪个列和他们应该给定的值。WHERE 子句如果被给出,指定哪个记录行应该被更新。否则,所有的记录行被更新。如果 ORDER BY 子句被指定,记录行将被以指定的次序更新。 例子:UPDATE ybc set id=8 where id=0;3.记录的删除简单的语法:DELETE F
31、ROM table_name WHERE conditions 说明:删除符合条件的资料。 数据语法:SHOW 语句可用来获取数据库和表的几个方面的信息,它有如下用法:SHOW DATABASES 列出服务器上的数据库SHOW TABLES 列出当前数据库中的表SHOW TABLESFROM db_name 列出指定数据库中的表SHOW FULL COLUMNS FROM tbl_name 显示指定表中列的信息,等同于desc tbl_name;SHOW INDEX FROM tbl_name 显示指定表中索引的信息SHOW TABLE STATUS 显示缺省数据库中表
32、的说明信息SHOW TABLE STATUS FROM db_name 显示指定数据库中表的说明信息DESCRIBE tbl_name 和 EXPLAIN tbl_name 语句与 SHOW COLUMNS FROM tbl_name功能相同。SELECT 的使用及语法详解作用说明:SELECT 用于检索从一个或多个表中选取出的行。select_expression 表示你希望检索的列。 SELECT 也可以被用于检索没有引用任何表的计算列。要讲的内容是:·第一个查询·选择特定的列,对列进行排序·查找不重复的数据·创建虚拟列,及列的别名的使用·
33、按条件检索··好,现在开始我们的第一个查询啦!SELECT * From tbl_name; 组合查询 组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上的 表格才能够得到结果的。 SELECT * FROM table1,table2 WHERE table1.colum1=table2.column1 说明: 1.查询两个表格中其中 column1 值相同的资料。 2.当然两个表格相互比较的栏位,其资料形态必须相同。 3.一个复杂的查询其动用到的表格可能会很多个。 整合性的查询: SELECT COUNT (*) FROM
34、 table_name WHERE column_name = xxx 说明: 查询符合条件的资料共有几笔。 SELECT SUM(column1) FROM table_name 说明: 1.计算出总和,所选的栏位必须是可数的数字形态。 2.除此以外还有 AVG() 是计算平均、MAX()、MIN()计算最大最小值的整合性查询。 SELECT column1,AVG(column2) FROM table_name GROUP BY column1 HAVING AVG(column2) > xxx 说明: 1.GROUP BY: 以column1 为一组计算 column2 的平均值
35、必须和 AVG、SUM等整合性查询的关键字 一起使用。 2.HAVING : 必须和 GROUP BY 一起使用作为整合性的限制。 复合性的查询 SELECT * FROM table_name1 WHERE EXISTS ( SELECT * FROM table_name2 WHERE conditions ) 说明: 1.WHERE 的 conditions 可以是另外一个的 query。 2.EXISTS 在此是指存在与否。 SELECT * FROM table_name1 WHERE column1 IN ( SELECT column1 FROM table_name2 WHER
36、E conditions ) 说明: 1. IN 後面接的是一个集合,表示column1 存在集合里面。 2. SELECT 出来的资料形态必须符合 column1。 其他查询 SELECT * FROM table_name1 WHERE column1 LIKE 'x%' ;说明:LIKE 必须和後面的'x%' 相呼应表示以 x为开头的字串。 SELECT * FROM table_name1 WHERE column1 IN ('xxx','yyy',.) 说明:IN 後面接的是一个集合,表示column1 存在集合里面。
37、SELECT * FROM table_name1 WHERE column1 BETWEEN xx AND yy 说明:BETWEEN 表示 column1 的值介於 xx 和 yy 之间。 其它重要概念:SQL 允许你创建一个虚拟列或对已有的列进组合和修改后产生的派生列。SQL 允许可以创建一个新的虚拟列,而且还可以对它安自己的需要进行重命名,你可以按语法列名 别名来对任何一个列进行重命名(注意在列名与别名之间有空格)或用()括起来。词语解释:numericnju:'merikadj.(=mumerical)数字的, 数值的decimaldesimEladj.以十作基础的, 十进位
38、的SQL查询语句精华使用简要 一、 简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为"张三"的nickname字段和email字段。 SELECT nickname,emailFROM testtableWHERE name='张三' (一) 选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
39、1、选择所有列例如,下面语句显示testtable表中所有列的数据: SELECT *FROM testtable 2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。例如: SELECT nickname,emailFROM testtable 3、更改列标题在选择列表中,可重新指定列标题。定义格式为:列标题=列名列名 列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT 昵称=nickname,电子邮件=emailFROM testtable 4、删除
40、重复行SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。5、限制返回的行数使用TOP n PERCENT选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: SELECT TOP 2 *FROM testtableSELECT TOP 20 PERCENT *FROM testtable(二)FROM子句 FROM子句指定SELECT语句查
41、询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: SELECT username,citytable.cityidFROM usertable,citytableWHERE usertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名:表名
42、 as 别名表名 别名(二) FROM子句FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: SELECT username,citytable.cityidFROM usertable,citytableWHERE usertable.cityid=citytable.cit
43、yid 在FROM子句中可用以下两种格式为表或视图指定别名:表名 as 别名表名 别名例如上面语句可用表的别名格式表示为: SELECT username,b.cityidFROM usertable a,citytable bWHERE a.cityid=b.cityid SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。例如: SELECT a.au_fname+a.au_lnameFROM authors a,titleauthor ta(SELECT title_id,titleFROM titlesWHERE
44、 ytd_sales>10000) AS tWHERE a.au_id=ta.au_idAND ta.title_id=t.title_id 此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。(三) 使用WHERE子句设置查询条件WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据: SELECT *FROM usertableWHERE age>20 WHERE子句可包括各种条件运算符:比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<范围运算符(表达式值
45、是否在指定的范围):BETWEEN.AND.NOT BETWEEN.AND.列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2.)NOT IN (项1,项2.)模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE空值判断符(判断表达式是否为空):IS NULL、NOT IS NULL逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=302、列表运算符例:country IN ('Germany','China'
46、;)3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。可使用以下通配字符:百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%。下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。方括号:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。:其取值也 相同,但它要求所匹配对象为指定字符以外的任一个字符。例如:限制以Publishing结尾,使用LIKE '%Publishing'限制以A开头:LIKE 'A
47、%'限制以A开头外:LIKE 'A%'4、空值判断符例WHERE age IS NULL5、逻辑运算符:优先级为NOT、AND、OR(四)查询结果排序 使用ORDER BY子句对查询返回的结果按一列或多列排序。ORDER BY子句的语法格式为:ORDER BY column_name ASC|DESC ,.n其中ASC表示升序,为默认值,DESC为降序。ORDER BY不能按ntext、text和image数据类型进行排序。例如: SELECT *FROM usertableORDER BY age desc,userid ASC 另外,可以根据
48、表达式进行排序。二、 联合查询UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。UNION的语法格式为: select_statementUNION ALL selectstatementUNION ALL selectstatement.n 其中selectstatement为待联合的SELECT查询语句。ALL选项表示将所有行合并到结果集合中。不指定该项时,被联合查询结果集合中的重复行将只保留一行。联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语句中定义。要对联合查询
49、结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。 在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。在自动转换时,对于数值类型,系统将低精度的数据类型转换为高精度的数据类型。在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:查询1 UNION (查询2 UNION 查询3)三、连接查询通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。在关系数据库管理系统中,表建立
50、时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。SQL-92标准所定义的FROM子句的连接语法格式为: FROM join_table join_type join_tableON (join_condition) 其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。join_type 指出连接类型,可分为三种:内连接、外连接和交叉连接。内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。外
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 2940-2025柴油机用喷油泵、调速器、喷油器弹簧技术规范
- 滴滴包车司机考试题目及答案
- 天津小学考试试题及答案
- 土壤修复风险评估方法-洞察及研究
- 2025年高压电工基础知识考试试题集及解析
- 2025年高校教师资格证之《高等教育心理学》试题及答案详解
- 2025年高级会计师考试《高级会计实务》真题及答案解析
- 学生考试奇葩试题及答案
- 魔法史题库大全及答案
- 规范扶贫贷款管理办法
- 2025年秋季学期教科版二年级上册科学教学计划(三篇)
- 买家赎楼签协议签合同
- 2025至2030年中国虹膜识别市场深度调查分析及投资前景研究预测报告
- 2025-2026学年人教版(2024)初中信息科技七年级(全一册)教学计划及进度表(第一学期)
- 拖拉机和联合收割机查验记录表
- (公开课)26个英文字母书写笔顺动态演示(基础教育)
- Q∕GDW 11304.2-2021 电力设备带电检测仪器技术规范 第2部分:红外热像仪
- 部编版一年级道德与法治上册第1课《开开心心上学去》精品课件
- 高分子化学6离子聚合阳离子
- 注塑机各部件的中英文名称和作用
- NB_T 10337-2019《水电工程预可行性研究报告编制规程》_(高清最新)
评论
0/150
提交评论