MySQL从入门到精通二

第1章:MySQL基础

1.1运算符

1.1.1 算术运算符

算术运算符是MySQL中最常用的一类运算符。MySQL支持的算术运算符包括加、减、乘、除、求余。

算术运算符
符号作用符号作用
+加法运算%求余运算
-减法运算DIV除法运算
*乘法运算MOD求余运算,返回余数
/除法运算

加(+)、减(-)和乘(*)可以同时运算多个操作数。除号(/)和求余运算符(%)也可以同时计算多个操作数,但不建议使用。DIV和MOD这两个运算符只有两个参数。进行除法和求余的运算时,如果x2参数是0,计算结果将是空值(NULL)。

1.1.2 比较运算符

比较运算符是查询数据时最常用的一类运算符。SELECT语句中的条件语句经常使用比较运算符。比较运算符可以用于判断表中的哪些记录是符合条件的。比较运算符的符号、名称和应用示例如下表所示。

比较运算符
符号名称示例符号名称示例
=等于id=5is not nulln/aid is not null
>大于id>5between andn/aid between 1 and 15
<小于id<5inn/aid in (3,4,5)
>=大于或等于id>=5not inn/aname not in (shi,li)
<=小于或等于id<=5like匹配模式name like ('shi%')
!=或<>不等于id!=5not like匹配模式name not like ('shi%')
is nulln/aid IS NULLregexp常规表达式name 正规表达式

下面对几种较常用的比较运算符进行详解

1、运算符"="

"="用来判断数字、字符串和表达式等是否相等。如果相等,返回1;否则,返回0。

在使用运算符"="判断两个字符是否相同时,数据库系统是根据字符的ASCII码进行判断的。如果ASCII码相等,则表示这两个字符相同;如果ASCII码不相等,则表示两个字符不同。切记空值(NULL)不能使用“=”来判断。

2、运算符"<>"和"!="

"<>"和"!="用来判断数字、字符串、表达式是否不相等。如果不相等,则返回1,否则,返回0。这两个符号也不能用来判断空值(NULL)。

3、运算符">"

">"用来判断左边的操作数是否大于右边的操作数。如果大于,返回1;否则,返回0。同样,空值(NULL)不能使用“>”来判断。

4、运算符IS NULL

IS NULL用来判断操作数是否为空值(NULL)。操作数为NULL时,结果返回1;否则,返回0。IS NOT NULL刚好与IS NULL相反。

“=”、“<>”、“!=”、“>”、“>=”、“<”、“<=”等运算符都不能用来判断空值(NULL)。一旦使用,结果就会返回NULL。如果要判断一个值是否为空值,可以使用“<=>”、IS NULL和IS NOT NULL。

5、运算符BETWEEN AND

BETWEEN AND用于判断数据是否在某个取值返回内,其表达式如下。

x1 BETWEEN m AND n

如果x1大于或等于m,且小于或等于n,结果将返回1;否则,将返回0。

6、运算符IN

IN用于判断数据是否在某个集合中,其表达式如下。

x1 IN(值1,值2,值3,...,值n)

如果x1等于值1到值n中的任何一个值,则结果将返回1;否则,结果将返回0。

7、运算符LIKE

LIKE用来匹配字符串,其表达式如下。

x1 LIKE s1

如果x1与字符串s1匹配,结果将返回1;否则,返回0。

8、运算符REGEXP

REGEXP同样用于匹配字符串,但其使用的是正则表达式进行匹配,其表达式如下。

1.1.3 逻辑运算符

逻辑运算符用来判断表达式的真假。如果表达式是真,则结果返回1;如果表达式是假,则结果返回0。逻辑运算符又称为布尔运算符。MySQL中支持4种逻辑运算符,分别是与、或、非和异或。

逻辑运算符
符号作用符号作用
&&或AND!或NOT
||或ORXOR异或

1、与运算

'&&'或'AND'是与运算的两种表达方式。如果所有数据不为0且不为空值,结果返回1;如果存在任何一个数据为0,则结果返回0;如果存在一个数据为NULL且没有数据为0,则结果返回NULL。与运算符支持多个数据同时进行运算。

2、或运算

“||”或者“OR”表示或运算。如果数据中存在任何一个数据为非0的数字,则结果返回1;如果数据中不包含非0的数字,但包含NULL,则结果返回NULL;如果操作数中有0,则结果返回0。或运算符也可以同时操作多个数据。

3、非运算

“!”或者“NOT”表示非运算。非运算对操作数据进行按位取反,并返回与操作数据相反的操作。如果操作数据是非0数字,则结果返回0;如果操作数据是0,则结果返回1;如果操作数据是NULL,则结果返回NULL。

4、异或运算

XOR表示异或运算。只要其中任何一个操作数据为NULL,结果就返回NULL;如果两个操作数都是非0值,或者都是0,则结果返回0;如果一个为0,另一个为非0值,则结果返回1。

1.1.4 运算符的优先级

由于在实际应用中可能需要同时使用多个运算符,因此必须考虑运算符的运算顺序。

MySQL运算符使用的优先级,按照从高到低、从左到右的级别进行运算操作。

MySQL运算符的优先级
优先级运算符
1!
2~
3^
4*,/,DIV,%,MOD
5+、-
6>>,<<
7&
8|
9=,<=>,<,<=,>,>=,!=,<>,IN,IS,NULL,LIKE,REGERXP
10BETWEEN AND,CASE,WHEN,THEN,ELSE
11NOT
12&&,AND
13||,OR,XOR
14:=

第2章:表数据的增、删、改操作

2.1.1 使用INSERT...VALUES语句插入数据

INSERT...VALUES语句是INSERT语句最常用的语法格式。使用INSERT语句插入数据,语法格式如下

1、插入一条完整数据

(1) 在编写SQL语句之前,先查看数据表tb_admin的结构,具体代码如下

DESC db_database08.tb_admin;

(2) 编写SQL语句,先选择数据表所在的数据库,然后应用INSERT...VALUES语句实现向数据表td-admin插入一条完整的数据,具体代码如下。

USE db_database08;

INSERT INTO tb_admin VALUES(1,'mr','mrsoft','2014-09-05 10:25:20');

(3) 使用SELECT * FROM tb_admin语句来查看数据表tb_admin中的数据,具体代码如下

SELECT * FROM tb_admin;

2、插入数据记录的一部分

(1) 编写SQL语句,先选择数据表所在的数据库,然后应用INSERT..VALUES语句实现向数据表tb_admin中插入一条记录,只包括user和password字段的值,具体代码如下。

USE db_database08;

INSERT INTO tb_admin(user,password)

VALUES('rjkflm','111');

(2)使用SELECT * FROM tb_admin语句来查看数据表tb_admin中的数据,具体代码如下

SELECT * FROM tb_admin;

因为在设计数据表时,将id字段设置为自动编号,所以即使没有指定id的值,MySQL也会自动为它填上相应的编号。

3、插入多条记录

(1) 编写SQL语句,先选择数据表所在的数据库,然后应用INSERT...VALUES语句来实现向数据表tb_admin中插入3条记录,每条记录都只包括user、password和createtime字段的值,具体代码如下。

USE db_database08;

INSERT INTO tb_admin(user,password,createtime)

VALUES ('mrbccd','111','2014-09-05 10:32:26'),

('mrbccd','111','2014-09-05 10:32:26'),

('mrbccd','111','2014-09-05 10:32:26');

(2) 使用SELECT * FROM tb_admin语句来查看数据表tb_admin中的数据,具体代码如下。

SELECT * FROM tb_admin;

2.1.2 使用INSERT..SET语句插入数据

(1) 编写SQL语句,先选择数据表所在的数据库,然后应用INSERT...SET语句实现向数据表tb_admin中插入一条记录,该条记录中包括user、password和createtime字段的值,具体代码如下。

USE db_database08;

INSERT INTO tb_admin

SET user='mrbccd',password='111',createtime='2014-09-06 10:32:26';

(2) 使用SELECT * FROM tb_admin语句来查看数据表tb_admin中的数据,具体代码如下

SELECT * FROM tb_admin;

2.1.3 使用INSERT...SELECT语句插入查询结果

(1) 查看数据表tb_mrbook的结构

DESC db_database08.tb_mrbook;

(2) 查询数据表tb_mrbook中的数据,具体代码如下

SELECT * FROM tb_mrbook;

(3) 编写SQL语句,实现从数据表tb_mrbook中查询user和pass字段的值,并将其插入数据表tb_admin中,具体代码如下

INSERT INTO db_database08.tb_admin

         (user,password)

         SELECT user,pass FROM tb_mrbook

(4) 使用SELECT语句来查看数据表tb-admin中的数据,具体代码如下

SELECT * FROM tb_database08.tb_admin;

2.2 修改数据

(1) 编写SQL语句修改用户名为mrbccd的管理员密码为123,具体代码如下

UPDATE db_database08.tb_admin SET password='123' WHERE user='mrbccd';

更新时一定要保证WHERE子句的正确性,一旦WHERE子句出错,就会破坏所有改变的数据。

(2) 查看修改的数据库中的内容,代码如下

SELECT * FROM db_database08.tb-admin WHERE user='mrbccd';

 第3章:数据查询

3.1 基本查询语句

SELECT语句基本语法如下

select selection_list

from 数据表名

where primary_constraint

group by sorting_cloumns

order by sorting_cloumns

having secondary_consstraint

limit count

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值