加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

把握SQL四条最根基的数据操纵语句

发布时间:2018-08-25 06:59:30 所属栏目:电商 来源:站长网
导读:把握sql四条最根基的数据操纵语句:insert,select,update和delete。 练把握sql是数据库用户的名贵财产。在本文中,我们将引导你把握四条最根基的数据操纵语句—sql的焦点成果—来依次先容较量操纵符、选择断言以及三值逻辑。当你完成这些进修后,显然你

把握sql四条最根基的数据操纵语句:insert,select,update和delete。

练把握sql是数据库用户的名贵财产。在本文中,我们将引导你把握四条最根基的数据操纵语句—sql的焦点成果—来依次先容较量操纵符、选择断言以及三值逻辑。当你完成这些进修后,显然你已经开始算是能干sql了。

在我们开始之前,先行使create table语句来建设一个表(如图1所示)。ddl语句对数据库工具如表、列和视举办界说。它们并差池表中的行举办处理赏罚,这是由于ddl语句并不处理赏罚数据库中现实的数据。这些事变由另一类sql语句—数据操纵说话(dml)语句举办处理赏罚。

sql中有四种根基的dml操纵:insert,select,update和delete。因为这是大大都sql用户常常用到的,我们有须要在此对它们举办逐一声名。在图1中我们给出了一个名为employees的表。个中的每一行对应一个特定的雇员记录。请认识这张表,我们在后头的例子中将要用到它。

毗连查询

通过毗连运算符可以实现多个表查询。毗连是相关数据库模子的首要特点,也是它区别于其余范例数据库打点体系的一个符号。

在相关数据库打点体系中,表成立时各数据之间的相关不必确定,常把一个实体的全部信息存放在一个表中。当检索数据时,通过毗连操纵查询出存放在多个表中的差异实体的信息。毗连操纵给用户带来很大的机动性,他们可以在任何时辰增进新的数据范例。为差异实体建设新的表,而后通过毗连举办查询。

毗连可以在select 语句的from子句或where子句中成立,似是而非在from子句中指出毗连时有助于将毗连操纵与where子句中的搜刮前提区分隔来。以是,在transact-sql中保举行使这种要领。

sql-92尺度所界说的from子句的毗连语法名目为:

from join_table join_type join_table

[on (join_condition)]

个中join_table指出参加毗连操纵的表名,毗连可以对统一个表操纵,也可以对多表操纵,对统一个表操纵的毗连又称做自毗连。

join_type 指出毗连范例,可分为三种:内毗连、外毗连和交错毗连。内毗连(inner join)行使较量运算符举办表间某(些)列数据的较量操纵,并列出这些表中与毗连前提相匹配的数据行。按照所行使的较量方法差异,内毗连又分为等值毗连、天然毗连和不等毗连三种。

外毗连分为左外毗连(left outer join或left join)、右外毗连(right outer join或right join) 和全外毗连(full outer join或full join)三种。与内毗连差异的是,外毗连不但列出与毗连前提相匹配的行,而是列出左表(左外毗连时)、右表(右外毗连时)或两个表(全外毗连时)中全部切合搜刮前提的数据行。

交错毗连(cross join)没有where 子句,它返回毗连表中全部数据行的笛卡尔积,其功效荟萃中的数据行数便是第一个表中切合查询前提的数据行数乘以第二个表中切合查询前提的数据行数。

毗连操纵中的on (join_condition) 子句指出毗连前提,它由被毗连表中的列和较量运算符、逻辑运算符等组成。
无论哪种毗连都不能对text、ntext和image数据范例罗列办直接毗连,但可以对这三种罗列办间接毗连。譬喻:
select p1.pub_id,p2.pub_id,p1.pr_info

from pub_info as p1 inner join pub_info as p2

on datalength(p1.pr_info)=datalength(p2.pr_info)

(一)内毗连

内毗连查询操纵列出与毗连前提匹配的数据行,它行使较量运算符较量被毗连列的列值。内毗连分三种:

1、等值毗连:在毗连前提中行使便是号(=)运算符较量被毗连列的列值,其查询功效中列出被毗连表中的全部列,包罗个中的一再列。

2、不等毗连: 在毗连前提行使除便是运算符以外的其余较量运算符较量被毗连的列的列值。这些运算符包罗>、>=、<=、<、!>、!<和<>。

3、天然毗连:在毗连前提中行使便是(=)运算符较量被毗连列的列值,但它行使选择列表指出查询功效荟萃中所包罗的列,并删除毗连表中的一再列。

例,下面行使等值毗连列出authors和publishers表中位于统一都市的作者和出书社:

select *

from authors as a inner join publishers as p

on a.city=p.city

又如行使天然毗连,在选择列表中删除authors 和publishers 表中一再列(city和state):

select a.*,p.pub_id,p.pub_name,p.country

from authors as a inner join publishers as p

on a.city=p.city

(二)外毗连

内毗连时,返回查询功效荟萃中的仅是切合查询前提( where 搜刮前提或 having 前提)和毗连前提的行。而回收外毗连时,它返回到查询功效荟萃中的不只包括切合毗连前提的行,并且还包罗左表(左外毗连时)、右表(右外毗连时)或两个边接表(全外毗连)中的全部数据行。

如下面行使左外毗连将论坛内容和作者信息毗连起来:

select a.*,b.* from luntan left join usertable as b

on a.username=b.username

下面行使全外毗连将city表中的全部作者以及user表中的全部作者,以及他们地址的都市:

select a.*,b.*

from city as a full outer join user as b

on a.username=b.username

(三)交错毗连

交错毗连不带where 子句,它返回被毗连的两个表全部数据行的笛卡尔积,返回到功效荟萃中的数据行数便是第一个表中切合查询前提的数据行数乘以第二个表中切合查询前提的数据行数。

例,titles表中有6类图书,而publishers表中有8家出书社,则下列交错毗连检索到的记录数将等

于6*8=48行。

select type,pub_name

from titles cross join publishers

order by type

union运算符可以将两个或两个以上上select语句的查询功效荟萃归并成一个功效荟萃表现,即执行连系查询。union的语法名目为:

select_statement

union [all] selectstatement

[union [all] selectstatement][…n]

个中selectstatement为待连系的select查询语句。

all选项暗示将全部行归并到功效荟萃中。不指定该项时,被连系查询功效荟萃中的一再行将只保存一行。

连系查询时,查询功效的列问题为第一个查询语句的列问题。因此,要界说列问题必需在第一个查询语句中界说。要春连系查询功效排序时,也必需行使第一查询语句中的列名、列问题可能列序号。

[1] [2] [3] 下一页  

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读