• 近期将进行后台系统升级,如有访问不畅,请稍后再试!
  • 极客文库-知识库上线!
  • 极客文库小编@勤劳的小蚂蚁,为您推荐每日资讯,欢迎关注!
  • 每日更新优质编程文章!
  • 更多功能模块开发中。。。

深入浅出MySQL数据库(三)MySQL数据操作

文章目录[隐藏]

添加记录

INSERT [INTO] tbl_name[(col_name,...)] {VALUE|VALUES}(VALUES...);

不指定字段名称:INSERT tbl_name VALUE(value...)

需要按照建表时的字段顺序给每一个字段赋值

列出指定字段:INSERT tbl_name(字段名称,...) VALUES(值,...)

INSERT … SET 的形式:INSERT tbl_name SET 字段名称=值,...;

INSERT … SELECT:INSERT tbl_name[(字段名称...)] SELECT 字段名称,... FROM tbl_name [WHERE 条件]

一次添加多条记录:INSERT tbl_name[(字段名称,...)] VALUES(值,...),(值,....),(值,...)

修改记录

UPDATE tbl_name SET 字段名称=值,字段名称=值 [WHERE 条件]

如果不添加条件,整个表中的记录都会被更新

删除记录

DELETE FROM tbl_name [WHERE 条件]

如果不添加条件,表中所有记录都会被删除

DELETE 清空数据表的时候不会重置 AUTO_INCREMENT 的值,可以通过 ALTER 语句将其重置为 1

  彻底清空数据表

TRUNCATE [TABLE] tbl_name;

清除表中所有记录,会重置 AUTO_INCREMENT 的值

查询记录

SELECT select_expr,... FROM tbl_name
[WHERE 条件]
[GROUP BY {col_name|position} HAVING 二次筛选]
[ORDER BY {col_name|position|expr} [ASC|DESC]]
[LIMIT 限制结果集的显示条数] 

  查询表中所有记录

SELECT * FROM tbl_name;

  指定字段的信息

SELECT 字段名称,... FROM tbl_name

  库名.表名

SELECT 字段名称,... FROM db_name.tbl_name;

  给字段起别名

SELECT 字段名称 [AS] 别名名称,... FROM db_name.tbl_name;

  给数据表起别名

SELECT 字段名称 ,... FROM tbl_name [AS] 别名;

  表名.字段名的

SELECT tbl_name.col_name,... FROM tbl_name;

  WHERE 条件

会筛选出符合条件的记录

比较运算符:> >= < <= != <> <=>

IS [NOT] NULL:检测值是否为 NULL 或者 NOT NULL

指定范围:[NOT] BETWEEN … AND

指定集合:[NOT] IN(值,…)

逻辑运算符:AND (逻辑与) OR (逻辑或)

匹配字符:[NOT] LIKE (%:任意长度的字符串,_:任意一个字符)

  GROUP BY 分组

把值相同放到一个组中,最终查询出的结果只会显示组中一条记录

分组配合 GROUP_CONCAT()查看组中某个字段的详细信息

配合聚合函数使用:

配合 WITH ROLLUP 关键使用:会在记录末尾添加一条记录,是上面所有记录的总和

HAVING 子句对分组结果进行二次筛选

  ORDER BY 排序

ORDER BY 字段名称 ASC|DESC

  LIMIT 限制结果集显示条数

LIMIT 值:显示结果集的前几条记录

LIMIT offset,row_count:从 offset 开始,显示几条记录,offset 从 0 开始

多表查询

  笛卡尔积的形式

  内连接的形式

查询两个表中符合连接条件的记录

SELECT 字段名称,... FROM tbl_name1
INNER JOIN tbl_name2
ON 连接条件

  外连接的形式

左外连接:先显示左表中的全部记录,再去右表中查询复合条件的记录,不符合的以 NULL 代替

SELECT 字段名称,... FROM tbl_name1
LEFT [OUTER] JOIN tbl_name2
ON 条件;

右外连接:先显示右表中的全部记录,再去左表中查询复合条件的记录,不符合的以 NULL 代替

SELECT 字段名称,... FROM tbl_name1
 RIGHT [OUTER] JOIN tbl_name2
ON 条件;

外键约束

只有 InnoDB 存储引擎支持外键

  创建外键

建表时指定外键:[CONSTRAINT 外键名称 ]FOREIGN KEY(字段名称) REFERENCES 主表(字段名称)

子表的外键字段和主表的主键字段类型要相似;如果是数值型要求一致,并且无符号也要一致;如果是字符型,要求类型一致,长度可以不同

如果外键字段没有创建索引,MySQL会自动帮我们添加索引

子表的外键关联的必须是父表的主键

外键约束的参照操作:

动态添加外键:动态添加外键之前表中的记录一定合法的记录,没有脏值,否则外键添加不成功

ALTER TABLE tbl_name
[CONSTRAINT 外键名称] ADD FOREIGN KEY(外键字段) REFERENCES 主表(主键字段);

动态删除外键:

ALTER TABLE tbl_name
DROP FOREIGN KEY fk_name;

特殊形式的查询

  子查询

SELECT 字段名称 FROM tbl_name WHERE col_name=(SELECT col_name FROM tbl_name)

内层语句查询的结果可以做为外层语句查询的条件

由 IN 引发的子查询

由比较运算符引出子查询

由 EXISTS 引发的子查询

ANY SOME ALL

INSERT … SELECT

CREATE … SELECT

CREATE TABLE tbl_name LIKE tbl_name;

  联合查询

UNION:

SELECT 字段名称,... FROM tbl_name1 
UNION
SELECT 字段名称... FROM tbl_name2;

UNION ALL:

SELECT 字段名称,... FROM tbl_name1 
UNION ALL
SELECT 字段名称... FROM tbl_name2;
UNION ALL 是简单的合并,UNION 会去掉表中重复记录

  自身连接查询

无限级分类的实现形式

思维导图下载

文件下载

密码:

注意:本段内容须成功“回复本文”后“刷新本页”方可查看!


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:深入浅出 MySQL 数据库(三)MySQL 数据操作
喜欢 (0)
[247507792@qq.com]
分享 (0)

欢迎 注册账号 登录 发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00