MySql 的增 、删、改、查 四大语句的使用
一、 新增数据
新增一条数据语句:
INSERT [INTO] taole_name(field1,field2,...) VALUE(value1,value2,...);
新增多条数据:
INSERT [INTO] taole_name(field1,field2,...) VALUE(value1,value2,...),(value1,value2,...)[,...];
说明:1. 如果省略字段列表,则必须为所有字段赋值;
2. auto_increment 字段如果想进行赋值时,可以用 NULL 或 DEFAULT 代替;这样既保证字段名称与字段值数量的匹配,又保证可以自动编号;
3. 必须保证字段的数量、顺序、数据类型与字段的数量、顺序、数据类型、完全匹配;
二、 删除数据
删除记录(单表删除)
DELETE FROM table_name [WHERE 条件];
说明: 如果省略WHERE条件,则删除全部记录
三、更改数据
更新记录(单表更新)
UPDATE table_name SET 字段名称=值,字段名称=值[,...] [WHERE 条件]
说明:如果省略WHERE条件,则更新全部记录
四、 查询数据
SELECT expr[,...] [FROM table_name [WHERE 条件] [GROUP BY 分组字段][HAVING 分组条件][ORDER BY 排序字段 [ASC|DESC][,...]] [LIMIT [偏移值,]记录数量]]
说明:A.expr的语法结构: expr [[AS] alias]
B.如果要罗列数据表所有字段,可以通过星号(*)来表示;
C.如果人为修改为字段的排列顺序或别名,将对MySQL函数库中的相关函数产生影响;
D.table_name的语法结构是: table_name [[AS] alias]
E.WHERE条件用于进行记录的过滤;
F.GROUP BY是按某个字段进行分组,同一组的记录只保留第一条;
G.HAVING是指对分组的结果进行过滤,必须保证条件要么出现在GROUP BY字段中,要么出现在聚合函数中。
H.是查询的结果按某个字符进行排序,其中ASC为升序(默认);DESC为降序
I.LIMIT用于限制返回的记录数,语法结构是LIMIT [offset,]row_count,offset,记录的偏移值,就是从第几条记录开始返回,从0开始编号;row_count,记录的数量,
就是每次返回多少条记录;
提示:LIMIT子句主要用于PHP+MySQL实现分页效果,其中row_count参数由程序员决定;offset参数值是由浏览者的交互动作决定的,其计算公式为:(当前页码 - 1) * 每页显示的记录数 计算总页数的公式为:ceil(总记录数 / 每页显示的记录数)
五、联合查询
演示数据表:school_student, school_chinese, school_english

1. 内连接(INNER JOIN):仅显示符合连接条件的记录。
SELECT s.number AS `学号`,s.name AS `姓名`,c.score AS `语文`,e.score AS `英语` FROM school_student AS s INNER JOIN school_chinese AS c ON c.number=s.number INNER JOIN school_english AS e ON e.number=s.number;
查询结果:

2. 外连接(OUTER JOIN):又分为左外连接(LEFT [OUTER] JOIN)和右外连接(RIGHT [OUTER] JOIN)
左外连接显示左表的全部和右表中符合连接条件的记录;
右外连接显示右表的全部和左表中符合连接条件的记录;
连接的语法结构 ... 数据表名称 连接类型 数据表名称 ON 连接条件 ....
SELECT s.id,s.number AS `学号`,s.name AS `姓名`,c.score AS `语文`,e.score AS `英语` FROM school_student AS s LEFT JOIN school_chinese AS c ON c.number=s.number RIGHT JOIN school_english AS e ON e.number=s.number;
查询结果:

六、 子查询
子查询是指嵌套在其他SQL语句内的SELECT子句。子查询必须使用小括号括起来。
例:获取表school_english 成绩大于等于平均分数的名单:
SELECT * FROM school_english WHERE score>=(SELECT AVG(score) FROM school_english);
查询结果:
说明:引发子查询的情况
A.由比较运算符引发的子查询
如果比较运算符返回多个结果,此时必须用ANY、ALL进行结果的限定
ANY、ALL
>、>= ANY,返回最小值
>、>= ALL,返回最大值
<、<= ANY,返回最大值
<、<= ALL,返回最小值
B.由[NOT] IN引发的子查询
C.由[NOT] EXISTS引发的子查询

浙公网安备 33010602011771号