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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • 右外连接
    查看全部
    0 采集 收起 来源:外连接OUTER JOIN

    2017-02-22

  • 左外连接
    查看全部
    0 采集 收起 来源:外连接OUTER JOIN

    2017-02-22

  • 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-02-22

  • 1.连接 MySQL在SELECT语句、多表更新、多表删除语句中支持JOIN操作。 语法结构 table reference A {[INNER|CROSS] JOIN | {LEFT|RIGHT} [OUTER] JOIN} table_reference B ON condition_expr 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子句中,这样的子查询必须为其赋予别名。 两张不同的表可能有相同名称的字段存在,所以需要加别名。 如果不加别名,必须确保这个字段名在所有表中都是唯一的。
    查看全部
  • 多表更新之一步到位 1.CREATE SELECT 创建数据表同时将查询结果写入到数据表 CREATE TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] select_statement; 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 GOURP BY brand_name; 2.两个表建立连接 多表更新 根据新建的表tdb_goods_brands修改商品表tdb_goods,把商品表中的brand_name改成tdb_goods_brands中的brand_id 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//两个表都有brand_name,要用 AS关键词给表起别名 3.但是商品表tdb_goods中仍为 goods_cate VARCHAR, brand_name VARCHAR。我们要把goods_cate 改为 cate_id,把brand_name 改为 brand_id,并把数据类型改为SAMLLINT。既修改列名称又修改数据类型用CHANGE关键字 ALTER TABLE tdb_goods CHANGE goods_cate cate_id SMALLINT UNSIGNED NOT NULL, CHANGE brand_name brand_id SMALLINT UNSIGNED NOT NULL; 4.不一定要用物理的外键即FOREIGN KEY 建立联系,也可以使用这种方法 称为事实外键。实际上物理外键使用得少
    查看全部
  • 多表更新 UPDATE table_references SET col_name1={expr1 | DEFAULT} [,col_name2={expr2 | DEFAULT}]... [WHERE where_condition] 连接: table_reference {[INNER|CROSS] JOIN|{LEFT|RIGHT}[OUTER]JOIN} table_reference ON conditional_expr 连接类型: INNER JOIN,内连接 在MySQL中,JOIN, CROSS JOIN 和 INNER JOIN 是等价的。 LEFT [OUTER] JOIN ,左外连接 RIGHT [OUTER] JOIN,右外连接 连接条件: conditional_expr 例如:UPDATE 表1 INNER JOIN 表2 ON 列1 = 列2(两者属性完全相同)SET 列1 = 列3(设置值)。 举例: UPDATE tdb_goods INNER JOIN tdb_goods_cates ON goods_cate = cate_name SET goods_cate = cate_id; 商品表的goods_cate 与新表的cate_name 等价,把商品表的goods_cate改成新表的cate_id
    查看全部
    0 采集 收起 来源:多表更新

    2017-02-22

  • INSERT [INTO] tbl_name SET col_name={exprDEFAULT},...//可以使用子查询 INSERT [INTO] tbl_name [(col_name,...)] SELECT ...//将查询结果写入数据表 Eg: INSERT INTO table_name [(column_name)] SELECT column_name2 FROM table_name2 GROUP BY column_name3; CREATE TABLE IF NOT EXISTS tdb_goods_cates( cate_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, cate_name VARCHAR(40) NOT NULL ); SELECT goods_cate FROM tdb_goods GROUP BY goods_cate; //列出所有品牌的分组 DESC tdb_goods_cates; //降序显示出tdb_goods_cates表中的项目名称 INSERT tdb_goods_cates(cate_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;//在表tdb_goods_cates中插入tdb_goods中的goods_cate的分组 不用写VALUES 商品表中goods_cate等有重复 且为汉字 占的空间大。所以根据新建的参照表tdb_goods_cate更新商品表,应用外键 使商品表中重复的goods_cate从汉字改为id值 根据一个表修改另一个表 需要多表更新
    查看全部
  • 使用[NOT] IN的子查询: operand comparison_operator [NOT] IN (sunquery); =ANY 运算符与IN等效。!=ALL或<>ALL运算符与NOT IN等效。 使用[NOT] EXISTS的子查询(用得少): 如果子查询返回任何行,EXISTS将返回TRUE;否则为FALSE。
    查看全部
  • 外键约束的用法
    查看全部
  • 单独分析筛选时: SELECT AVG(goods_price) FROM tdb_goods; //AVG函数代表求其平均值// SELECT ROUND(AVG(goods_price),2) FROM tdb_goods; //round(@,#)代表对@数字进行四舍五入,且保留小数点后#位输出// SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=5391.30; //输出价格大于5391.30的id、name、price// 综合起来运用子查询时: SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=(SELECT ROUND(AVG(goods_price),2) FROM tdb_goods); //查找价格大于平均值的商品// SELECT goods_price FROM tdb_goods WHERE goods_cate='超级本'\G; //检索分类为”超极本”的商品价格且一网格显示// 对于ANY、SOME、ALL的用法各有不同:(ANY和SOME用法相同) SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=ANY (SELECT goods_price FROM tdb_goods WHERE goods_cate='超级本'); SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=ALL (SELECT goods_price FROM tdb_goods WHERE goods_cate='超级本'); SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=SOME (SELECT goods_price FROM tdb_goods WHERE goods_cate='超级本');
    查看全部
  • 使用比较运算符的子查询: = > < >= <= <> != <=> operand comparision_operator subquery 当子查询返回多个结果时,可用ANY、SOME、ALL关键字来修饰子查询。 聚合函数: 特点 只有一个返回值 AVG(col_name) 返回col_name下数据的平均值 eg. SELECT AVG(goods_price) FROM tdb_goods; WHERE语句中不能使用聚合函数,想使用,需要通过SELECT子查询。 ROUND(num,long) 对num保留long位小数 eg. SELECT ROUND(AVG(goods_price),2) FROM tdb_goods;
    查看全部
  • 字符函数2
    查看全部
    0 采集 收起 来源:MySQL 字符函数

    2017-02-22

  • 常见的字符函数
    查看全部
    0 采集 收起 来源:MySQL 字符函数

    2017-02-22

  • 两个环节应该在作为一个整体来体现,这就是事务的完整性体现
    查看全部
  • 外键约束的要求
    查看全部

举报

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

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