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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • 多表删除 1、查找重复记录: SELECT goods_id,goods_name FROM tdb_goods GROUP BY goods_name HAVING count(goods_name) >= 2; 2、删除重复记录: DELETE t1 FROM tdb_goods AS t1 LEFT JOIN (SELECT goods_id,goods_name FROM tdb_goods GROUP BY goods_name HAVING count((goods_name) >= 2 ) AS t2 ON t1.goods_name = t2.goods_name WHERE t1.goods_id > t2.goods_id;
    查看全部
    0 采集 收起 来源:多表删除

    2018-03-22

  • 显示表:show clumns from 表名; 无限分类:即在同一张表中既有父类,又有子类。 通过在分类表中再增加多一个字段标识其属于哪一个父类的 ID 来实现。 可以通过对同一张数据表的自身连接来进行查询,需要对表标识别名。 查找父级对应的名称: select s.type_id ,s.type_name,p.type_name As parent_id from tdb_goods_types s left join tdb_goods_types p on s.parent_id=p.type_id; 查找子级对应的名称: select p.type_id ,p.type_name,s.type_name from tdb_goods_types p left join tdb_goods_types s on p.type_id=s.parent_id; 查找有多少子级: select p.type_id ,p.type_name,COUNT(s.type_name) child_count from tdb_goods_types p left join tdb_goods_types s on p.type_id=s.parent_id GROUP BY p.type_name ORDER BY p.type_id;
    查看全部
  • 外连接: 以左外连接为例: A LEFT JOIN B join_condition 数据表B的结果集依赖于数据表A 数据表A的结果集根据左连接条件依赖所有数据表(B表除外) 左外连接条件决定如何检索数据表B(在没有指定WHERE条件的情况下) 如果数据表A的某条记录符合WHERE条件,但是在数据表B不存在符合连接条件的记录,将生成一个所有列为空的额外的B行 内连接: 使用内连接查找的记录在连接数据表中不存在,并且在WHERE子句中尝试一下操作:column_name IS NULL 。如果 column_name 被指定为 NOT NULL,MySQL将在找到符合连接着条件的记录后停止搜索更多的行(查找冲突)
    查看全部
  • Ps:多表的连接跟两张表的连接一样,表的连接实质就是外键的逆向约束。
    查看全部
    0 采集 收起 来源:多表连接

    2016-09-12

  • 子查询与连接——一OUTER JOIN 1、LEFT JOIN:显示左表全部和左右符合连接条件的记录 2、RIGHT JOIN:显示左右符合连接条件的记录和右表全部记录 3、若某字段只存在某一表,则另一表的里字段返回null
    查看全部
    0 采集 收起 来源:外连接OUTER JOIN

    2016-09-12

  • 1、内连接:在MySQL中JOIN,INNER JOIN,CROSS JOIN是等价的 2、外连接:LEFT JOIN左外连接;RIGHT JOIN右外连接 3、连接条件:使用ON设定连接条件,也可以用WHERE代替 · ON:通常使用它设定连接条件 · WHERE:进行结果集记录的过滤 4:内连接是返回左表及右表符合连接条件的记录
    查看全部
    0 采集 收起 来源:内连接INNER JOIN

    2016-09-12

  • 1.连接 MySQL在SELECT语句、多表更新、多表删除语句中支持JOIN操作。 语法结构 table reference A {[INNERCROSS] JOIN {LEFTRIGHT} [OUTER] JOIN} table_reference B ON condition_expr 2.数据表参照 table_reference tbl_name [[AS] alias] table_subquery [AS] alias 数据表可以使用tbl_name AS alias_name 或 tbl_name alias_name赋予别名。 table_subquery可以作为子查询使用在FROM子句中,这样的子查询必须为其赋予别名。
    查看全部
  • 建表、查询、写入三合一: CREATE TABLE tdb_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 tdb_goods INNER JOIN tdb_goods_brands ON tdb_goods.brand_name = tdb_goods_brands.brand_name SET tdb_goods.brand_name = tdb_goods_brands.brand_id; 通过ALTER TABLE语句修改数据表结构 ALTER TABLE tdb_goods CHANGE goods_cate cate_id SMALLINT UNSIGNED NOT NULL, CHANGE brand_name brand_id SMALLINT UNSIGNED NOT NULL; Ps1:外键,不一定是物理的外键,逻辑的外键也行,当然,物理外键更能保证数据的完整性和一致性。 Ps2:注意:数字类型的字段占用的空间更小,查询的效率也更高。
    查看全部
  • 语法:UPDATE table_references SET col_name1={expr1 DEFAULT} [,col_name2={expr2 DEFAULT}]... [WHERE where_condition] Eg:update tdb_goods inner join tdb_goods_cates on goods_cate=cate_name set goods_cate=cate_id;//将 tdb_goods 表和 tdb_goods_cates 表通过 goods_cate=cate_name 连接,然后更新 goods_cate=cate_id
    查看全部
    0 采集 收起 来源:多表更新

    2016-09-12

  • 语法:INSERT [INTO] tbl_name [(col_name,...)] SELECT ...//将查询结果写入数据表 INSERT tdb_goods_cates(cate_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;//在表tdb_goods_cates中插入tdb_goods中的cate种类。
    查看全部
  • 使用[NOT]IN的子查询: 语法结构:operand comparison_operator[NOT]IN(subquery) =ANY 等价于 IN !=ALL或<>ANY等价于NOT IN 使用[NOT]EXIST引发的子查询 (不常用)
    查看全部
  • 1、使用比较运算符来子查询: SELECT id,name,price FROM goods WHERE price >= (SELECT ROUND(AVG(price),2) FROM goods); 2、在子查询时的关键字ANY / SOME / ALL: select goods_name,goods_price from tdb_goods where goods_price >= ANY (select goods_price from tdb_goods where goods_cate='超级本');
    查看全部
  • (1)子查询指嵌套在查询内部,且必须始终出现在圆括号内。 (2)子查询可以包含多个关键字或条件,如:DISTINCT / GROUP BY / ORDER BY / LIMIT / 函数等。 (3)子查询的外层查询可以是:SELECT, INSERT, UPDATE , SET 或DO (4)子查询可以返回标量、一行、一列或子查询。
    查看全部
  • SET NAMES gbk;意思是改变客户端的编码格式,而不影响真的数据库中的真实数据
    查看全部
    0 采集 收起 来源:数据准备

    2016-09-12

  • 记录操作:增,改,删,查 INSERT://增加记录,有三种方法。 INSERT [INTO] tbl_name [(col_name,...)] {VALUES VALUE} ({exprDEFAULT},...),(...),... INSERT [INTO] tbl_name SET col_name={exprDEFAULT},... INSERT [INTO] tbl_name [(col_name,...)] SELECT... UPDATE://更新数据 单表更新 UPDATE [LOW_PRIORITY][IGNORE] table_reference SET col_name1={expr1DEFAULT},[col_name2={expr2DEFAULT}]...[WHERE where_condition] 多表更新 DELETE : //删除数据 单表删除 DELETE FROM tbl_name [WHERE where_condition} 多表删除 SELECT: //查询 SELECT select_expr [,select expr2...] 只查找某一个函数或表达式 [ FROM table_references 查询表名 [WHERE where_conditon] 查询条件 [GROUP BY {col_nameposition} [ASCDESC],...] 按某个字段进行分组,相同的只显示第一个 [HAVING where_conditon] 分组时,给出显示条件 [ORDER BY {col_nameexprposition} [ASCDESC],...] 排序 [LIMIT {[offset,]row_countrow_count OFFSET offset}] 限制返回数量
    查看全部
    0 采集 收起 来源:小结

    2016-09-12

举报

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

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