为了账号安全,请及时绑定邮箱和手机立即绑定

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
学习人数
综合评分9.67
950人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 二、由[NOT]IN引发的子查询

    1、使用[NOT]IN的子查询

    语法结构:operand comparison_operator [NOT] IN (subquery)=ANY运算符与IN等效,!=ALL或<>ALL运算符与NOT IN等效。

    三、使用[NOT]EXISTS的子查询(不经常使用)

    定义:如果子查询返回了结果,EXISTS将返回TRUE;否则为FALSE。

    查看全部
  • 子查询产生的情况可以分为三类:

    一、使用比较运算符的子查询,包括=、>、<、>=、<=、<>、!=、<=>。

    语法结构:operand comparison_operator subquery

    案例:查找商品平均价格,AVG是一个聚合函数,特点是只有一个返回值,求平均值,聚合函数还有MAX、MIN、COUNT、SUM、等等,可以使用ROUND()函数来进行四舍五入,并保留小数的位数。

    https://img1.sycdn.imooc.com//5d05bbbb0001c9a605970330.jpg

    没使用子查询查看以上22个商品中哪一个商品价格大于5636.36

    https://img1.sycdn.imooc.com//5d05bca000013a0e06270298.jpg

    使用子查询完成如上功能:

    https://img1.sycdn.imooc.com//5d05bd74000186d406510296.jpg

    查询超极本类型商品的价格

    https://img1.sycdn.imooc.com//5d05bed00001e63c06430179.jpg

    查询哪些商品的价格大于这些超极本产生错误的原因:子查询返回的结果是三个,应该指定为一个结果。

    https://img1.sycdn.imooc.com//5d05bfc200013f5406480283.jpg

    如果子查询返回的是多个结果的时候,可以使用关键字ANY、SOME、或者ALL修饰比较运算符

    ANY和SOME是等价的:外查询符合其中一个即可。

    ALL:外查询符合全部。

    语法:

    operand comparison_operator ANY(subquery)

    operand comparison_operator SOME(subquery)

    operand comparison_operator ALL(subquery)

    使用ANY、SOME、ALL、的简单原则:

    https://img1.sycdn.imooc.com//5d05c2760001330610900425.jpg

    使用ANY修饰,返回的是大于内查询最小值(4299)的查询结果

    https://img1.sycdn.imooc.com//5d05c26d0001da1206880332.jpg


    使用ALL关键字修饰>=:
    https://img1.sycdn.imooc.com//5d05c2f90001572806340234.jpg

    查看全部
  • MySQL子查询简介

    子查询(Subquery):出现在其他SQL语句内的SELECT子句。

    例如:

    SELECT * FROM t1 WHERE col1 =(SELECT col2 FROM t2);

    其中SELECT * FROM t1,称为Outer Query(外查询)/Outer Statement(外声明),SELECT col2 FROM t2,称为SubQuery(子查询)。

    使用子查询时注意:

    【a】子查询嵌套在查询内部,并且子查询必须出现在圆括号内。

    【b】子查询可以包含多个关键字或条件,如DISTINCT、GROUT BY、ORDER BY、LIMIT,函数等。

    【c】子查询的外层查询可以是:SELECT,INSERT,UPDATE,SET或DO。

    【d】外查询这里指所有SQL命令的统称,因为SQL称为结构化查询语言

    子查询返回值:可以是返回标量、一行、一列、或者子查询,并且可以通过该返回值进行增、删、改、查。

    查看全部
  • 数据准备:六张表

    https://img1.sycdn.imooc.com//5d04a0ef0001ad9106520536.jpg

    SET NAMES gbk:客户端以GBK的编码显示。

    一、子查询

    二、连接

    三、多表删除、多表更新

    查看全部
    0 采集 收起 来源:数据准备

    2020-01-13

  • http://img1.sycdn.imooc.com//5e1c25e20001f12208130453.jpg外键约束参照

    查看全部
  • 本节知识点总结:

    数据记录的操作:

    INSERT:可以通过三种方法进行记录的插入,分别为普通INSERT、INSERT SET、INSERT SELECT语句

    https://img1.sycdn.imooc.com//5d049b9d0001cd8807090382.jpg

    UPDATE:实际有两种更新语句,单表更新和多表更新(详见第五章)

    https://img1.sycdn.imooc.com//5d049c2e000103b807260415.jpg

    DELETE:存在两种语法结构,单表删除、多表删除。

    https://img1.sycdn.imooc.com//5d049c6d00013dc106380368.jpg

    SELECT:https://img1.sycdn.imooc.com//5d049cee0001758f07650297.jpg

    查看全部
    0 采集 收起 来源:小结

    2020-01-11

  • limit语句限制查询数量(除了可以对记录进行排序,还可以限制记录返回的数量)

    语法:[LIMIT {[offset,] row_count | row_count OFFSET offset}],两种语法结构,第一种语法结构比较常见,默认情况下返回所有查询到的结果,如果只添加一个数字,它表示从第一条记录开始返回,返回这个数字的数据数,如果返回第三条和第四条数据,就需要告诉从第几条返回,返回几条。拓展:在以后PHP当中,进行分页的时候,就会利用LIMIT语句来进行分页效果的实现,在分页效果实现当中,偏移值的计算公式是已经计算好的,计算公式就是当前括号中的页码减1*每一页显示的记录数。

    限制返回两条记录

    https://img1.sycdn.imooc.com//5d0492ef000131a505350356.jpg

    想要返回第三条和第四条数据却返回第四条和第五条出现这种情况的原因?

    https://img1.sycdn.imooc.com//5d04936b0001e0c403450125.jpg

    答:SELECT语句返回的查询结果,是从0开始编号,所以要想从第三条记录返回指定数量的记录,需要把3改为2。

    返回第三条和第四条数据

    https://img1.sycdn.imooc.com//5d0494140001728103870112.jpg

    注意:查询的id号和结果集没有任何的联系,只要排在结果集中第一个位置,那么它就是0,排在第二个位置就是1。

    id号为7,但是它在结果集中是第二条记录。

    https://img1.sycdn.imooc.com//5d04950c00015e8b06110377.jpg

    INSERT语法:INSERT [INTO]  tbl_name SET col_name={expr | DEFAULT},...它可以将查找的结果,存储到指定的数据表。说明:与第一种方式的区别在于,此方法可以使用子查询(SubQuery)

    案例:users表当中年龄大于30的记录的用户名插入到test表的用户名这一列,注意:因为test表中需要插入的只有一个字段,所以SELECT结果集中也只有一个字段,在插入时要指定test表中指定字段,因为test表中有两个字段,即使是主键自增也不可以。

    https://img1.sycdn.imooc.com//5d04999f0001f9ec05950376.jpg

    查看全部
  • order by语句对查询结果排序(除了对分组条件进行指定,还可以对分组的结果进行排序)

    语法:[ORDER BY{col_name | expr | position}[ASC | DESC], ...],可以按照某一字段进行排序,也可以按照位置进行排序,和GROUP BY完全相同的,ASC为升序,并且是默认的,DESC为降序,也可以同时以两个或者两个以上字段进行排序。

    一个字段进行排序(按照ID降序)

    https://img1.sycdn.imooc.com//5d048f56000106f206030225.jpg

    两个字段进行排序(users表中存在很多重复记录,年龄按升序,如果记录相同,则id按照降序排列。


    https://img1.sycdn.imooc.com//5d0490ba0001f8b805390225.jpg

    https://img1.sycdn.imooc.com//5d0490ba0001e93b05890206.jpg

    查看全部
  • 分组条件

    [HAVING where_condition]

    http://img1.sycdn.imooc.com//5e197df400018d4c07130351.jpg

    要求:条件字段必须为 聚合函数 或 SELECT 后面的字段

    having 语句分组,用在group by后面追加条件,判断式中的字段是必须出现在前面select中的 或者是可以包含没有出现在前面查询中的字段的一个聚合函数count(),max()等等

    查看全部
  • MySQL group by语句对查询结果分组

    http://img1.sycdn.imooc.com//5e197c2500012b7507760330.jpg

    查看全部
  • MySQL查询表达式解析

    http://img1.sycdn.imooc.com//5e197b3f0001eecc08600515.jpg

    http://img1.sycdn.imooc.com//5e197b450001141c08420433.jpg


    查看全部
  • 二、数据表 数据表是数据库中最重要的组成部分之一,是其他对象的基础。 USE:打开数据库 USE+数据库名称 SHOW DATEBASES;(查看数据库) USE tset;(打开数据库test) SELECT DATABASE();(显示当前用户所使用的数据库) 创建数据库: CREATE TABLE [IF NOT EXSITS] table_name( column_name data_type, .... ) 创建数据表: CREATE TABLE tb1( username VARCHAR(20), age TINYINT UNSIGNED, salary FLOAT(8,2)UNSIGNED );
    查看全部
  • MySQL修改数据表——修改列定义和更名数据表

    一、修改列定义(针对数据类型和位置)

    ALTER TABLE 表名 MODIFY [COLUMN] 列名 column_definition [FIRST | AFTER 列名]

    注意:由大类型——>小类型可能会造成数据的丢失(比如:SMALLINT(无符号为0-65535)——>TINYINT(0-255))。

    二、修改列名称(既可以修改列定义,又可以修改列名称)

    ALTER TABLE 表名 CHANGE [COLUMN] 老名称 新名称 列定义 [FIRST | AFTER 表名]

    三、数据表更名

    方法1:

    ALTER TABLE 旧表名 RENAME [TO | AS] 新表名

    方法2:

    RENAME TABLE 旧表名 TO 新表名 [,旧表名 TO 新表名]...

    (方法2可以为多张数据表进行更名,尽量少使用数据列的更名以及数据表的更名,原因当我们原来创建过索引,或者使用过视图,或存储过程的话,表名或者列名曾经被引用情况下,如果修改了,可能会导致某个视图或者某个存储过程无法正常进行工作)

    https://img1.sycdn.imooc.com/5cebe5190001446b11600647.jpg


    查看全部
  • MySQL修改数据表——删除约束

    一、删除主键约束

    ALTER TABLE 表名 DROP PRIMARY KEY

    二、删除唯一约束

    ALTER TABLE 表名 DROP {INDEX | KEY} 唯一约束名称(key_name) 

    (索引的名字,在这里有列的名字是因为一张表可以有多个唯一约束)

    通过该语句查看唯一约束名字:SHOW INDEXES FROM 数据表名

    三、删除外键约束

    ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名称(CONSTRAINT后的名称)(删除外键约束后会存在索引)

    删除外键索引:ALTER TABLE 表名 DROP INDEX 字段名

    通过该语句查看外键约束名称:SHOW CREATE TABLE 表名

    查看全部
  • MySQL修改数据表(添加约束)

    添加主键约束:ALTER TABLE 表名 ADD [CONSTRAINT [symbol(给主键取的名称)]] PRIMARY KEY [index_type] (index_col_name,...)

    添加唯一约束:ALTER TABLE 表名 ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)

    添加外键约束:ALTER TABLE 表名 ADD [CONSTRAINT[symbol]] FOREIGN KEY [index_name] (index_col_name) REFERENCES 参照表名(参照列)

    添加/删除默认约束

    ALTER TABLE 表名 ALTER [COLUMN] 列名 {SET DEFAULT 默认值 | DROP DEFAULT}

    查看全部

举报

0/150
提交
取消
课程须知
要想学习本课程,你只需要知道数据库是个什么东东就足够了,是不是很easy?!
老师告诉你能学到什么?
1、MySQL安装与配置 2、数据类型 3、流程控制与运算符 4、DDL、DCL、DQL、DML 5、常用函数 6、表类型(存储引擎) 7、图形化工具

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!