mysql的真删改查,mysql基本增删改查、所有查询子句以及连接查询完全解读

上一章mysql教程中我们讨论了:mysql数据类型、数据库连接、基本数据库和表操作,本章中我们开始讨论mysql的高级内容:基本增删改查、所有查询子句以及连接查询。

一、mysql基本增删改查

1、插入数据

要将数据插入MySQL表,需要使用SQL insert into命令可以将数据插入到MySQL表中,下面是insert into命令的通用SQL语法,用于将数据插入MySQL表:

insert into table_name ( field1, field2,...fieldN )

values

( value1, value2,...valueN );

2、查找数据

SQL select命令用于从MySQL数据库查找数据,下面是select命令的通用SQL语法,用于从MySQL表中查找数据:

select field1, field2,...fieldN

from tn1, tn2...

[where clause]

[offset M ][limit N]

你可以在单个select命令中获取一个或多个字段。

你可以指定*号来代替字段,在本例中select *将返回所有字段。

可以使用where子句指定任何条件。

offset为偏移量,默认偏移量从0开始。

使用limit属性限制返回的数量。

3、更新数据

需要更新MySQL表中的现有数据,可以通过使用SQL update命令来实现这一点,这将修改任何MySQL表的任何字段值。下面的代码块使用update命令的通用SQL语法来修改MySQL表中的数据:

update table_name set field1 = new-value1, field2 = new-value2

[where clause]

4、删除数据

语法如下:

delete from table_name [where clause]

如果没有指定where子句,那么所有记录都将从给定的MySQL表中删除。

可以使用where子句指定任何条件。

可以一次删除单个表中的记录。

当希望删除表中选定的行时,where子句非常有用。

二、MySQL所有查询子句

1、where子句

我们可以使用一个名为where子句的条件句来过滤掉结果,使用这个where子句我们可以指定一个选择条件来从表中选择所需的记录。

下面的代码块具有select命令的通用SQL语法,带有用于从MySQL表获取数据的where子句:

select field1, field2,...fieldN tn1, tn2...

[where condition1 [AND [OR]] condition2.....

可以使用一个或多个由逗号分隔的表来包含使用where子句的各种条件,但是where子句是select命令的可选部分。

可以使用where子句指定任何条件。

可以使用and或or操作符指定多个条件。

where子句的工作原理类似于任何编程语言中的if条件,这个子句用于比较给定的值和MySQL表中可用的字段值。

以下是操作符列表,可以与where子句一起使用,假设字段A等于10字段B等于20:

操作符描述例子

=相等则为真。(A = B) not true.

!=不相等则条件为真。(A != B) true.

>检查左操作数的值是否大于右操作数的值,如果是则条件为真。(A > B) not true.

>=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。(A >= B) not true.

<=检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。(A <= B) true.

where子句特别是在使用MySQL连接查询的时候,并且使用主键搜索记录以加快搜索速度是一种常见的做法,果给定的条件不匹配表中的任何记录,那么查询将不返回任何行。

2、like子句

我们可以使用一个名为where子句的条件句来选择所需的记录,模糊查询使用where,如果没有%字符,LIKE子句与where子句的等号是一样的。

下面的代码块具有select命令的通用SQL语法,以及用于从MySQL表获取数据的like子句。

select field1, field2,...fieldN tn1, tn2...

where field1 like condition1 [AND [OR]] filed2 = 'somevalue'

可以使用where子句指定任何条件。

可以使用like子句和where子句。

你可以用LIKE子句来代替等号。

当LIKE与%符号一起使用时,它将像元字符搜索一样工作。

可以使用AND或or操作符指定多个条件。

where……like子句可以与update或delete共同使用。

3、like子句的正则表达式

你已经看到MySQL的like…%匹配模式,MySQL支持另一种基于正则表达式和REGEXP操作符的模式匹配操作。

模式模式匹配

^字符串的开始

$字符串结束

.任意单个字符

[…]方括号中列出的任何字符

[^…]不在方括号中列出的任何字符

p1|p2|p3变更申请表;匹配p1、p2或p3的任何模式

*前一个元素的零或多个

+前一个元素的一个或多个实例

{n}前一个元素的n个实例

{m,n}前一个元素的m到n个实例

4、NULL值

MySQL提供了三个操作符将字段或列值与NULL进行比较:

is NULL

– 字段为空返回true。

is not

NULL – 字段不为空返回true。

<=>

– 这个操作符比较值包括比较NULL

不能使用= NULL或!= NULL在列中查找空值,有时甚至NULL = NULL也会失败,若要查找是否为空的列,请使用is NULL或is not NULL。

5、order by排序子句

这里可以通过添加order

by子句对结果集进行排序,该子句指定要排序的列的名称。

下面的代码块是select命令的通用SQL语法和order by子句,用于对MySQL表中的数据进行排序。

select field1, field2,...fieldN tn1, tn2...

order by field1, [field2...] [ASC [DESC]]

对返回结果进行排序。

可以对多个字段的结果进行排序。

ASC或DESC表现进行升序或降序排序,默认升序。

在通常情况下你可以用where…like子句放在一个条件句中。

三、MySQL连接查询

在大多数实际的MySQL使用中常常需要在一个查询中从多个表获取数据,我们可以在单个SQL查询中使用多个表。MySQL中的连接操作指的是将两个或多个表连接成一个表,我们还将看到一个左连接的示例,它与简单的MySQL连接不同。

1、union连接

union连接有union语句和union

all语句,union语句用于将多个select的结果集合并为一个结果,union语句处理的是相同列的数据,而且不包含重复数据。union all语句也就将多个select结果集的相同列合并,但是包含重复数据,union连接使用语法如下:

select exp1, epx2, ... epx_n (字段1)

from tables

[where conditions]

union [all | DISTINCT]

select exp1, epx2, ... epx_n (和字段1相同)

from tables

[where conditions];

2、内连接inner join

inner join内连接用于获取两个表中自动匹配的记录,内连接求差集,和上面join的使用是类似的,但是这里合并两个表使用的条件关键字是on(包括下面介绍的左连接和右连接),

select exp1, epx2, ... epx_n

from table1

inner join table2

[on conditions];

3、左连接left join

左连接求所有表中全部包含左边表数据的结果集,该查询包含左表所有数据,连接进来的表按照on条件的要求进行合并,使用语法和上面的内连接类似,table1是左边的表:

select exp1, epx2, ... epx_n

from table1

left join table2

[on conditions];

4、右连接right join

右连接查询和左连接查询相反:结果集包含所有右表的数据,使用语法如下,table2为右边表:

select exp1, epx2, ... epx_n

from table1

right join table2

[on conditions];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值