为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
与MySQL的零距离接触_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • 查找所有分类及其父类 SELECT s.type_id,s.type_name,p.type_name FROM tdb_goods_types AS s LEFT JOIN tdb_goods_types AS p ON s.parent_id = p.type_id; -- 查找所有分类及其子类 SELECT p.type_id,p.type_name,s.type_name FROM tdb_goods_types AS p LEFT JOIN tdb_goods_types AS s ON s.parent_id = p.type_id; -- 查找所有分类及其子类的数目 SELECT p.type_id,p.type_name,count(s.type_name) AS children_count FROM tdb_goods_types AS p LEFT JOIN tdb_goods_types AS s ON s.parent_id = p.type_id GROUP BY p.type_name ORDER BY p.type_id;
    查看全部
  • 多表连接:可通过多个JOIN,把多个表连接在一起 如将A和B与C连接起来: SELECT A.a,B.b,C.c FROM tabA 【JOIN tabB ON conditonal_expr】 【JOIN tabC ON conditonal_expr】 SELECT goods_id,goods_name,cate_name,brand_name,goods_price FROM tdb_goods AS g -> INNER JOIN tdb_goods_cate AS c ON g.cate_id=c.cate_id -> INNER JOIN tdb_goods_brands AS b ON g.brand_id=b.brand_id\G; 连接三个表联合显示查询结果,注意不同的INNER JOIN中间没有逗号!!没有逗号!!没有逗号!!
    查看全部
    2 采集 收起 来源:多表连接

    2018-03-22

  • 2.外连接: 1、LEFT JOIN:构建临时表时会先创建所有表1的值,再把符合条件的表2的行并入 2、RIGHT JOIN:构建临时表时会先创建所有表2的值,再把符合条件的表1的行并入 3、如果出现了表1和表2有无法对应的部分,那么就有可能会在临时表中出现NULL 4、在外连接中,添加条件2时,放入ON内和使用WHERE就有区别了,以LEFT举例,前者会先把左1的所有值放入临时表,然后以条件1和条件2两个条件对表2进行筛选并入,即NULL还是有可能存在的,且临时表的行数也不会改变;而后者则是在临时表构建完成后,把所有不符合条件的行删去,可能会把含NULL的删去,也有可能改变行数
    查看全部
    0 采集 收起 来源:外连接OUTER JOIN

    2017-09-07

  • desc 应该是description,与show columns一样都是对所建表的描述。 不是跟asc对应的降序desc。 “desc tdb_goods_cate;”与“show columns from tdb_goods_cates;”查询出来的结果是相同的。
    查看全部
  • 补充学习: 附:由于课程结束,补充一些课程未提到的内容 if与循环: 1.if: 1、if表达式:if(表达式1,表达式2,表达式3),如果表达式1的结果为true,返回表达式2,如果为false,返回表达式3 2、IFNULL表达式:IFNULL(表达式1,表达式2),如果表达式1是null,就返回表达式2,否则返回表达式1 3、if控制流程:如果符合if条件,就执行then后面的语句,否则判断是否符合elseif的条件,直到所有条件都不符合,就执行else后的语句,并用endif结束(一定要有) if 条件 THEN ... elseif 条件 THEN ... ... else ... ENDIF; 2.循环: 1、while:while循环需要指定循环条件 WHILE…… DO…… END WHILE; 2.loop:loop循环需要自己在循环内部用if判断结束条件,并用leave结束,否则会死循环 循环体名称:LOOP ……(循环内容) IF 条件 leave 循环体名称 END LOOP;
    查看全部
  • cascade
    查看全部
  • 外键约束
    查看全部
  • 连接条件: 使用ON关键字来设定连接条件,也可以使用WHERE来代替。 通常使用ON关键字来设定连接条件, 使用WHERE关键字进行结果集记录的过滤。 1.内连接: 在MySQL中JOIN,INNER JOIN,CROSS JOIN是等价的 交集 仅显示A、B两表符合连接条件的记录。不符合连接条件的记录不显示。 例如:SELECT goods_id,goods_name,cate_name FROM tdb_goods INNER JOIN tdb_goods_cate ON tdb_goods.cate_id = tdb_goods_cate.cate_id; 2.外连接: LEFT JOIN左外连接;RIGHT JOIN右外连接 左外连接:LEFT OUTER JOIN:显示左表的全部记录及右表符合连接条件的记录。 右外连接:RIGHT OUTER JOIN:显示右表的全部记录及左表符合连接条件的记录。 如果使用LEFT JOIN,左表中存在一条记录A,在右表中没有找到相应的记录,则在返回结果用会出现一条只有记录A中的相应字段内容,其他字段都为NULL在记录(RIGHT JOIN类似). 内连接比外链接用的多一些 3.连接条件: 使用ON设定连接条件,也可以用WHERE代替 一般情况下使用 ON:设定连接条件 WHERE:进行结果集记录的过滤
    查看全部
    0 采集 收起 来源:内连接INNER JOIN

    2017-09-06

  • 连接 语法结构 JOIN:默认为内连接 INNER JOIN:内连接和交叉连接等价,都是笛卡尔积运算 CROSS JOIN:交叉连接 LEFT [OUTER] JION 左连接:是根据最左表的记录,在被连接右表中找出符合条件的记录与之匹配,找不到与左表匹配的,用null填充。 RIGHT [OUTER] JOIN 右连接:是根据最右表的记录,在被连接左表中找出符合条件的记录与之匹配,找不到与右表匹配的,用null填充。 表的参照时可以给表起别名: tb1 as alias_name | table_subquery as alias 可以用于,当两张表有同名字段时,用于区分; 表可以取别名,也可以不取别名; 但当table_subquery作为子查询使用在FROM子句中,这个子查询必须使用别名
    查看全部
  • 通过tdb_goods_brands数据表来更新tdb_goods数据表(错误) UPDATE tdb_goods INNER JOIN tdb_goods_brands ON brand_name = brand_name SET brand_name = brand_id; -- Column 'brand_name' in field list is ambigous 因为brand_name不知道你是哪一个,所以要起别名 ,用AS语句,用G.BRAND_NAME 去引用 UPDATE tdb_goods AS g INNER JOIN tdb_goods_brands AS b ON g.brand_name = b.brand_name SET g.brand_name = b.brand_id;
    查看全部
  • 简化,用create select: 例子CREATE TABLE tbd_goods_brands(brand_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, brand_name VARCHAR(40) NOT NULL) SELECT brand_name FROM tdb_goods group by brand_name;
    查看全部
  • 多表更新: UPDATE table_references SET col_name1={expr1 | DEFAULT} [,col_name2={expr2 | DEFAULT}]... [WHERE where_condition] INNER JOIN,内连接 在MySQL中,JOIN, CROSS JOIN 和 INNER JOIN 是等价的。 LEFT [OUTER] JOIN ,左外连接 RIGHT [OUTER] JOIN,右外连接 update tdb_goods inner join tdb_goods_cates on goods_cate=cate_name set goods_cate=cate_id; tdb_goods:想要更改的表名 inner join: 内连接 tdb_goods_cates: 关联的附表 goods_cate=cate_name 两个表对应列的关系 goods_cate=cate_id; 设置 值
    查看全部
    1 采集 收起 来源:多表更新

    2017-09-06

  • INSERT [INTO] tbl_name [(col_name,...)] SELECT ...//将查询结果写入数据表 INSERT tdb_goods_cates (cate_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;
    查看全部
  • =any运算符与in等效 !=all或<>all运算符与not in 等效 mysql> SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price != ALL (SELECT goods_price FROM tdb_goods WHERE goods_cate = '超级本'); tip:这个排除三个超级本值外全部显示
    查看全部
  • 第一章知识点: mysql服务开启与结束:net {start | stop} mysq; mysql登陆:mysql -h locathost -u root -p;
    查看全部

举报

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

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