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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • 外连接分为左外连接和右外连接:左外连接显示左表全部记录以及与右表符合连接条件的记录。 eg:SELECT goods_id,goods_name,cate_name FROM tdb_goods//前两个来自左表,最后一个来自右表 LEFT JOIN//打印机的goods_id, goods_name 出现(因为左表的全部)打印机cate_name=null(与和右表的符合条件的部分, 因为打印机的商品分类是12,但分类表中并不存在这条记录) tdb_goods_cate ON tdb_goods.cate_id = tdb_goods_cate.cate_id; 右外连接 eg:SELECT goods_id,goods_name,cate_name FROM tdb_goods//前两个来自左表,最后一个来自右表 RIGHT JOIN// ;路由器,交换机,网卡的 机cate_name有值(因为右表的全部 ); 打印机不见了:因为左表并不存在这条记录; 路由器,交换机,网卡的goods_id, goods_name =null(与和左表的符合条件的部分) 一般使用的内连接多:INNER JOIN ... ON...;
    查看全部
    0 采集 收起 来源:外连接OUTER JOIN

    2016-05-16

  • 连接类型:<br> 在MySql中,JOIN,CROSS JOIN和 INNER JOIN是等价的。<br> LEFT[OUTER] JOIN,左外连接<br> RIGHT[OUTER]JOIN,右外连接<br> 连接条件:<br> 使用ON关键字来设定连接条件。也可以使用WHERE来代替。<br> 通常用ON关键字来设定连接条件。使用WHERE关键字进行结果集记录的过滤。<br> <br> 内连接:仅显示两张表中符合条件的记录。 SELECT good_id,goods_name,cate_name FROM tdb_goods INNER JOIN tdb_goods_cates ON tdb_goods.cate_id=tdb_goods_cates.cate_id;
    查看全部
    0 采集 收起 来源:内连接INNER JOIN

    2018-03-22

  • 连接条件
    查看全部
    0 采集 收起 来源:内连接INNER JOIN

    2016-05-16

  • MySQL在SELECT语句、多表更新、多表删除语句中支持JOIN操作。 连接的语法结构: table reference A {[INNER|CROSS] JOIN | {LEFT|RIGHT} [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子句中,这样的子查询必须为其赋予别名。
    查看全部
  • 多表更新之一步到位: 1.创建数据表的同时将查询结果写入到数据表 (更新原表属性为新表的ID) 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; //注意两表中都叫brand_name, 2.起别名法: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; 既然现在good_cate,good_brand 存的是其他表的id,那么表的列名(good_cate,good_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; @加外键?不一定是物理的外键,逻辑的外键也行(以上就是),当然,物理外键更能保证数据的完整性和一致性
    查看全部
  • ltrim 删除前面的空格 rtrim删除后面的空格 trim删除前后面的空格
    查看全部
    0 采集 收起 来源:MySQL 字符函数

    2016-05-16

  • concat连接两个字符select concat(‘A’,‘B’); AB concat_ws连接多个字符用符号隔开 select concat_ws('|','a','b','c'); a|b|c|
    查看全部
    0 采集 收起 来源:MySQL 字符函数

    2016-05-16

  • 多表更新<br> 连接类型 join 和cross join 和 inner join是等价的 <br> inner join 内连接<br> left [outer] join 左外连接<br> right [outer] join 右外连接<br> 子查询与连接——多表更新 1、语法结构:UPDATE 【table_references】 SET col_name1={expr1|DEFAULT}[,col_name2=...][WHERE where_condition] 2、table_references为表的参照。即A表按照B表更新 3、table_references语法结构为tableA { [INNER|CROSS] JOIN | {LEFT|RIGHT}[OUTER]JOIN} tableB ON conditional_expr(依据条件:即A表应该匹配B表的什么数据。) 4、举例UPDATE tableA INNER JOIN tableB ON nameA = nameb SET ageA = ageB;表示更新表A中的年纪,依据是匹配表B中相同name的数据,并按name对应的age更新 多表更新举例: update tdb_goods inner join tdb_goods_cates on goods_cate=cate_name set goods_cate=cate_id; tdb_goods和tdb_goods_cate是要修改的表,inner join表示内连接,tdb_goods inner join tdb_goods_cates表示将两个表进行内连接,而连接需要一定的条件使虚拟的新表记录数不会比原表最大的低,这里的条件就是goods_cate=cate_name ,条件用on语句引出,tdb_goods inner join tdb_goods_cates on goods_cate=cate_name 这句话的意思就是将两个表中goods_cate=cate_name的数据进行一一对应的连接,然后对这个虚拟的新表进行修改,将goods_cate修改为该记录数对应的cate_id,又因为这个虚拟的新表其实是对原表的引用,本身是并不存在这样一个表的,所以修改后结果就体现在了原表上。
    查看全部
    0 采集 收起 来源:多表更新

    2018-03-22

  • insert tdb_goods_cates (cate_name) select good_cate from tdb_goods group by goods_cate;<br><br> 将后面那个查询语句的结果插入到tdb_goods_cates表中的cate_name字段下面<br><br> 效果如图<br> 多表更新:我们应该参照分类表,去更新我们的商品表 INSERT VALUES 和INSERT SET 的区别,后者可以用子查询
    查看全部
  • 第二种子查询---in ,not in in 相当于=any not in 相当于 !=all 或者<>all ——不等于、不包含 子查询----exists, not exists ——用得比较少 子查询返回任何行 exists 返回 true 反之 返回 false -- = ANY 或 = SOME 等价于 IN EG:SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price !=ALL (SELECT goods_price FROM tdb_goods WHERE goods_cate='超级本' )//得到19个记录(22-3) SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price IN (SELECT goods_price FROM tdb_goods WHERE goods_cate = '超级本') //得到3个记录 第三种子查询.使用 [NOT] EXISTS 的子查询(较少用)
    查看全部
  • 1. AVG是一个聚合函数,用来返回平均值 2. ROUND(AVG(goods_price),2)用于将平均值四舍五入,并且只保留小数点后两位 3. 子查询相当于另外一条完整的查询语句,嵌套在了where条件语句中,用小括号括起来 4. 当子查询返回几行结果时,可以用ANY SOME ALL来修饰,分别表示任意一个、部分、全部
    查看全部
  • 关于 count(id) 还不懂得同学,可以点我下面的连接,下面有人提出了问题,里面 有回复,前面的要是看不懂,我的回答在5L ,跟老师填入的数据一样,方便理解,可以的话,点个赞,么么哒! http://www.imooc.com/qadetail/10719
    查看全部
  • 列名 类型(与参考列的类型一致),foreign key(列名) references 参考表名(参考列名);<br> 例如:<br> pid smallint,foreign key(pid) references privinces(id);
    查看全部
  • 子查询
    查看全部
  • w ca
    查看全部

举报

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

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