MySQL数据操作和备份总结.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
昨日回顾 高级操作 复制表结构 create table 表A like 表B; 复制表结构,包含列属性 复制表中的数据 create table 表A select *或字段列表 from 表B; 复制表中的数据,也有结构,但没有列属性 蠕虫复制 insert into 表名 select *或字段列表 from 表名; 限制操作: limit n;用于限制更新、限制删除、限制查询 查询 select 【all|distinct】 *|字段列表|字段名 【as】 别名 from 数据源 【where】【group by】【having】【order by】【limit】 all 默认显示所有的数据 distinct 在显示的时候去掉重复数据 数据源: 单表数据源 多表数据源 会产生迪卡尔积 字段数:两个表的字段相加 记录数:两个表的字段数相乘 子查询数据源 from后是一个select查询语句得到的一个结果集,需要使用括号括起来,并且赋予一个别名。 【where】 = 专用于比较null 本质:将数据从磁盘中读取到内存,一条条先读取到内存,再进行判断,判断成功放到结果集中。 【group by】 根据字段进行分组。分组并不是group by真正的目的,主要对分组后的小数据区域再进行统计。 统计函数 count(*或字段名); * 表示统计记录数 字段名 表示根据字段名进行统计记录数,如果某一条记录中的被统计的字段值为null,则不统计。 max(); 统计最大值 min(); 统计最小值 sum(); 求和 avg(); 求平均值 多字段分组 语法: group by 字段1,字段2.... 先使用字段1进行分组,再使用字段2,在上一级分组的结果中每一组,再进行分组。出现具层级的分组。如果不使用with rollup,那么所有的统计函数,都是对最小的组进行统计。 with rollup使用汇总,多字段分组产生和层级结构的分组,由里向外再对最小组之上的,每一个层级的组,再进行与统计函数相同的操作。 【having】 对分组后的结果再进行筛选。 where与having都是进行筛选,只是筛选的时机不同。 having可以使用统计函数作为条件,where不可以使用统计函数作为条件。 外键 创建: 方式1:在创建表时使用foreign key(字段名) references 表名(主键); 方式2:通过修改表结构add foreign key(字段名) references 表名(主键); 删除: alter table 表名 drop foreign key 外键名; 如果查看外键名:show create table 表名; 外键的约束: B表中的某一个字段是A表的主键字段。 A表为主表,B表为从表: 主表被从表约束。 1、A表本身不能随意 被删除 2、A表中的记录的变动,不能随意删除或更新数据,言外之意有一定的约束 置空约束 当主表的记录删除时,那么从表中的记录中的外键字段调用为null 语法: on delete set null 级联约束 当主表的记录更新时,那么从表中的记录中的外键字段同步更新。 从表被主表约束 1、从表的数据:从表中的外键字段的值,必须是,主表中的主键字段中的某一个值。 子查询 一个select中还包含另一个select,其中最里面的select语句称之为子查询 根据select出现的位置可以将子查询分为以下几类: from子查询 where子查询 exists子查询 从select返回的结果,那么子查询又可以分为: 标量子查询 查询的结果只有一个值。 示例: 需求:查询zhangsan所在的教室 思路: 首先,先写最终想得到查询==》教室 select room from class ...... 再行,条件==》查询zhangsan where id =(select c_id from stu where s_name=zhangsan) 列子查询 查询得到的结果,是一个一列多行的数据。 需求: 查询班级为php的所有的学生 select * from stu where c_id =(select id from class where c_name=php); 查询班级为php和ios的所有的学生 select * from stu where c_id in (select id from class where c_name = php or c_name=ios); 示例: 行子查询 查询的结果是一行多列。 需求:查询学生表中,sex为1,age为最大的记录 select * from stu where

文档评论(0)

富贵礼包 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档