【SQL必知必会】

编程入门 行业动态 更新时间:2024-10-05 19:12:08

【SQL必知<a href=https://www.elefans.com/category/jswz/34/1760210.html style=必会】"/>

【SQL必知必会】

组合查询:
本章讲述如何利用的union 的操作符合将多条的select 语句组合成一个结果集合。
17.1 组合查询
多数sql 查询的都只能从一个多个表中返回数据的单条select 语句。Mysql也允许执行多个查询,(或多条select 语句),并将结果查询结果返回。
  这些组合的查询的称之为并或符合查询。
  有2中情况需要是使用组合查询:
1.    在单个查询中从不同的表中返回类似结构的数据。
2.    对多个个表中执行多个查询,按多个查询返回数据。

组合查询和多个where 条件,
多数情况下,组合相同表的2个查询的完成的工作与多个where子句的单挑插叙完成的工作相同。换句话说,任何具有多个where子句的select语句都可以作为一个组合查询给出。
这2中技术在不同的查询性能中性能也不同。应该尝试这2中技术,确定对特定的查询的那一种性能更好。

17.2 组合查询
 可以使用union 操作符合 来组合薯条Sql 查询,利用unionc
这2条语句有千米那的2条select 语句组成,语句中用unionc的关键字分割。Uinon指示mysql 之行条select 语句,并把输出组合成单个查询届国际和。

17.2.3 取消冲虚的活取消重复的行。
 请返回17.0.9。1 ,考察一下有所用的样例select 语句。我们注意到在分别之心是,第一条select语句返回4行,第二条select 语句返回6行,但在union 组合中中只是返沪了8行,而不是9行,
 Union从查询结果结合中自动去除了重复号的行,
这是uinonc 的操纵,事实上如果想返回匹配所有的行,可以使用union ALL 而不是uinon.

Union 与where 
  本章where几乎总是完成与多个where条件相同的工作,uion all 作为uninon 的一种使用,

组合不同的表结果:
 为了表述接单,本章的例子中的组合查询的使用的的是相同的表结果。
Union 可以极大的简化复杂的where子句。简化多个表中的检索数据的操作。

第18章

第8章,介绍个了Like关键字,他使用了通配符操作符文本的和部分文本,使用link,能够包产特树的数值活部分的属支行,

在第九长中,用基于文本的搜搜为正则表达式的匹配列数值的更进一步的介绍。
虽然这些搜索机制非常有用但是存在几个重要的限制,
性能: --同配合和正则表达式匹配通常要使用Mysql尝试匹配表中的搜友航,
因此,由于被搜索汗的不断增减,这些搜搜肯能非常耗时。
明确空值,


18.2 启用全文本搜索支持:
一般在创建表时,启用全文本搜索,create table 语句,接受fulltext子句,下面的
Create  table productsnotes
(
  Note_id  int     not null
)
  搜索不区分大小写,除非使用bingay 方法,否则全文搜索不区分大小写。

Select     note_tetes
From products
Where math(note_text) againsta


18.4  布尔文本搜索
Mysql 支持全文本的搜索的另外一种方式,成为布尔方式,
要撇配的词语,
要排斥的词语,
表达式分组。
另外一些内容。。

Bolean 文本不等于全文本搜索语法的的地方在于即使美哦与一定fullText索引,也可以使用他,但是这是一种非常缓慢的擦偶哦。

In  Boolean mode 的行为差异,虽然这个例子的结果是没有in Boolean mode 的相同。


为了匹配包含heavy 但包含任意的rope开始的行,可以使如下查询:
Select  note_text
   From productsntoes
  Where mathc

18.2.5  全文本搜索的使用说明
在结束本章之前,给出关于全文本搜索的某邪重要性的说明。
Select note_text
From productotes
Where match(note_text) against(‘rabbit’);

Select note_text
From productnotes
Where note_text like ‘%rabbit%’;

18.2.3  使用扩展查询
查询扩展是设法放宽所返回的全为你bend额搜索结果的范围的轻卡un个,你想
找出所有的提到anvailas 的注视。

   这也是查询扩展的一想任务,在是哟个查询扩展时,mysql 使用的索引进行2边

来完成扫描。
首先,进行一个基本的全文搜索印象,找出与搜索条件匹配的行。
其次,Mysql 检查这些匹配行并选择所有用的词汇。
在其次,My算起来会再次进行全文本搜索。
Select note_text
From productsntes
Where  match(note_text) against(‘anvils’);


18.2.4 布尔文本的额搜索
Mysql 支持全文本的搜索的另外一种实行,

要匹配的数字
为演示in Boolean mode 的作用,举一个简单的例子;
 Select note_text
From productnotes
Where match(note_texgt) a against(‘havery’);

18-1 全文本boolean 操作符号:
+   包含,词语必须存在
-     排除,次必须不出现
-     包含,而且增加等技术之
()  把词语组成字表达撒
~    取消一个词的排序数值
     词尾的通配符
    “” 定义一个短语,


Select note_text
From productnotes
Where match(note_text)  against(‘+rabbit’)

18.2.5 全文搜索的使说明

在结束本章的执勤啊,给出滚与去哪问搜索的某些方法。
18.3 小结
本章介绍了为什么要使用全文本的搜索,以及如何使用mysql的mathch
()和against()函数进行全文本搜索。我们还学习了查询扩展。


第19 章

19.1 数据插入
毫无疑问: 
 Select 是最常用的SQL语句了。

故名司思议:
插入完整的行
插入行的一部分的。
插入多行
插入某些查询的结果。

19.2 插入完整的的行
把数据插入表中最简单的方法是使用基本的inselrt语法,他要求制定表明和和插入到行新行中的数值。下面举一个例子:
Insert into  customers
Values (null,’ Pep E’,
’100’,
 ‘loc’,
  ‘ca’,
  ‘90046’,
  ‘usa’,
   Null,
Null);
下面的例子是插入对应的方法更安全:
Insert into customers(
Cust_name,cust_address,cust-_state,
Cust_zip,cust_cuntry,
Cust_contact,
Cust_email
Values (
     Pep E’,
’100’,
 ‘loc’,
  ‘ca’,
  ‘90046’,
  ‘usa’,
   Null,
Null);

不管使用那种insert语法,都必须使用values的张
正确数目,如果不提供的列明,则鼻血给出没给包提供一个数值,
如果不这样,将差生一条错误信息。
   使用这招那个语法,还可以只给某些列提供设置,给其他列不提供数组。

19.3   插入多个行
 Insert 可以插入一行到一个表中,但如果你想插入多个行怎么办?
可以使用多条的insert 语句,甚至一次提交她们,每条语句使用一个分好结束,如下所思:

Insert into customers(cust_name,cust_adress,cust_city,cust_state,
Cust_zip,cust_zcuountry)
Values (‘Pep E’,
’100’,
 ‘loc’,
  ‘ca’,
  ‘90046’,
  ‘usa’,
   Null,
Null);奥找那个。

Iao

19.4 插入检索出的数据
Insert 一般用来给表插入一个hiding列是数hi的阿灰姑娘,但是insert
还存在另外一种事实,可以利益能够他已将一条slsslelct 语句的姐uohcaru
这就是所谓i的insert select ,故名思议,它是由一条insert语句和一条slelect 与ujuzucheng。
  假如你想从他另一个i额表中的并客户类中到你的customter中,不行袄每次
读取一行,然后再将它用insert ,可以如下进行;


 假如你想把另一表的何必难过到列表中你的customer表中,不需要每次
读取一行,然后用insert 插入,可以如下进行:
   Insert into  customer(cust_id,cust_contact,cust_email
,cust_name,cust-address,cust_city,custstate
Cust_zip,cust_country)
Select cust_id,
       Cust_contact,
       Cust_emalil,
Cust_name
Cust_address,
Cust_city.
Cust_state
Cust-zip
Cust_countr
From custn例子在ew;

Inser select 中的列名称
为及暗淡期间, 
Insert select 中select 语句是可以宝宝where izju的过滤的插入的数据。

更多的例子: 
如果想看insert 用法的更多例子,请看法哦俘虏给胡的样例填充脚本,这
主要用于出啊和关键。

19.5 小结:
本章介绍如何将行插入到数据库表中,我们削下使用了insert的几个方法,以及为什么
要明确使用列名成,学习了如何使用Insert select 从其他表中导入行。
下一章中讲述如何使用的update,delete 进一步的操作表数据。


20章: 更新和删除数据
本章介绍如何使用update,delete 语句进一步操作表数据。
20.1  为了更新(修改)表中的数据,可以使用update 语句。可以采用
方式update:
更新表中的特定航。
更新表中的所有航。
不要胜率where 子句。 
   在使用update 是一定要主义细心,因为在稍不注意,就会更新表中的
所育航,
Update 与安全,可以限制和空值update 语句的使用,更多内容
请案件28章。
Update 语句非常容易使用,甚至就太容易试用了,基本的update
语句有3部分的组成,分别是:
要更新的表,
列名称和她们的新书只。
确定要更i向农行的过滤条件。

Update customer
Set cust_email=’’
Where cust_is=’’

Update 语句总是 按照更新表达额名字开始的,再次例子中,新
表的名字是customers.set 命令是用来将细腻的数值更新鞥更新的列的树脂基。
Set 子句的设置的cust_email列设置只是那个的数值:
 Set cust_email=’elemer@fudd’。

Update customers
Set cust_emial=null
Where cust_id=10005

20.2 删除数据
为了删除特定的行
从表中删除所有的行
不要审理过程里where 子句 
在 使用delete 时,一定要主要细心,因为稍不容易就会iao的错误的删除表中的所有的行。
在使用这条语句前。
 Delete 与安全
 可以限制和控制edelte 语句的使用,更多的内容请餐时间死28章。
下面的语句的从customers 表中的删除一行。
Delete from customers
Where cust_id=10086

这条语句从customer  表中删除一行。
Delete  from customers
Where cust_id=10086

者掉语句很同意立即诶,delete from 需求只in个从中删除数据的表明。
Where 子句过滤要删除的行。 在这个例子中,之删除10086。
  如果深绿where 子句,他将删除表中的每个客户。
Delete 不需要列明或通配符,delete 删除正行而不是删除列。为了删除指定的的列,请使用updae 语句
  Delete 语句从表中删除行,甚至是删除表中的所有行,但是delete不删除
表本省。
   更块的删除
  如果相送表中删除所有航,不要使用delete.可以使用truncacate  table 语句。
他完成相同的工作,但速度更快,truincate 实际上是删除原来的表,并重
创建一个表,而不是删除表中的数据。

20.3  更新和删除的原则
除非是虚度的大撒un和删除的每一行,斗则金额不带where 的update 
活delete 语句。
保证每个表都饿哦逐渐(如果忘记这个内哦功能请参与第15章)尽可能在
Where 子句中那样使用它,(可以制定多个数值活取范围)。
在对update  或delete语句使用的where 子句钱,应该使用select 语句进行测试,保证他过滤的是正确的记录,以防止辨析的where子句不正确。

使用的强制以你用完成行的数据库(关于这个内同),mysql 将不允许删除僦其他香菇那得呢数据行。

20.4 小结
  我们在本章中学习如何使用了udpate 和delete 语句处理表中的的数据。
我们学次这些语句的语法,知道了他们呢固有的危险性。
在本章中还境界的了为什么where 子句对update 和delete 语句很虫咬,
并且给出了那个该和删除的尊处的一些原则,以保证数据的安全。

第21章  创建和操作表
本章将会艘标的创建,更改和删除的基本知识。
2.1.1  创建的表
Mysql 不仅
使用具有交互式的出啊和关键爱你和姑那里的标的额工作
表ue可以直ia接i用Mysql语句操作。
为了用程序创建i表,可使用create table 语句。值得主义的是在使用交互式的工作室,,实际上使用的是Mysql的语句,但是这些语句不是用户辨析的,界面工作会自动的成社工并至次年个响应的Mysql语句。


21.1.1   表创建基础
为了用creat tichuable 创建表,必须给出虾类信息:
新表的名字,在关键字create table 之后给出
表列的名字和定义IT,用逗号分割。
 Create table customers
(
 Cust_id int not null auto_increment,
 Cust-name char(50) not null,
 Cust_arddress cahr(5)  null,
Cust_city  char(50)    null;
Cust_state  char(5)   null,
Cust_contain charchar(50)
Cust_email char(255) null,
Primary key(cust_id)
) engine=Innodb;

Create table customers
(
 Cust-id int not null auto-auto-incremnet.
 Cust_name char(50)  not null,
Cust_address cahr(50)  null,
Cust-city  char(50)     null,
Cust_state   char(5) null,
Cust_contacht char(5)  null.
Cust_email   char(255) null,
Primary key (cust_id)
)engine =InnodB;


21.2 使用NULL的说只
在第6章中nul l数值就是没有数值或却只。允许null的数值列也循序在插入时不给该类的数值。换句话数,在插入活更新行时,该列必须有数值。
 
理解null  不要把null与空船想混淆,逐渐为数值唯一表示的每个行的列。
主见只能使用不循序null的数值的列。徐云null的数值,列不能作为唯一标识。

21.1.4  使用ato_incremnet
  让你跟我们再次考察custoers与ordres    .custoer.

   覆盖的auto_incremnt


21.1.5 指定的默认数值
如果在插入行时,给出数值,Mysql 允


21.1.6  一下是几个需要知道的引擎:
innodeDB 是一个可靠的食物处理引擎,不支持文本搜索。
myISAM是一个性能极高的引擎,他支持全文本搜索,但是不支持食物物理。


那么,你应该使用那个引擎呢?
外键不能夸引擎处理。

21.2 更新表
为更新表的定义,可使用alter table 语句,但是理想表的中的存储数据以后,该报就不应该更新,


 

更多推荐

【SQL必知必会】

本文发布于:2024-02-13 11:50:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1758798.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:必会   SQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!