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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • row_count()函数可以获取数据库被影响的数据个数
    查看全部
  • 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-08-17

  • 1.内连接:表1 INNER JOIN 表2 ON 条件 (须知:连接后才可访问其他表的数据 ) 在MySQL中JOIN,INNER JOIN,CROSS JOIN是等价的 须知,在使用内连接时,数据库会构建一张临时表把表1和表2拼在一起 如表1的字段为id和size,数据为1 10,2 20;表2的字段为size name,数据为10 a,20 b;那么当表1 INNER JOIN 表2 ON 表1.size=表2.size时,就会构建一张临时表,字段为id,size,size,name,数据为1 10 10 a,2 20 20 b;即根据条件把符合的行合成一行拼在一起 所以,须知:内连接只会把符合条件的拼凑在一起,也就是说临时表例只有交集部分, 即仅显示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; 附:ON和WHERE的区别 1、on条件是在生成临时表时使用的条件 2、where条件是在临时表生成好后,再对临时表进行过滤的条件 3、区别总结:即连接时的关键字一定使用on 条件1,此时如果使用WHERE,将是语法错误,而如果还想再加一个条件2作为筛选,那么就应该写成ON 条件1 WHERE 条件2,而不是ON(条件1 AND 条件2)当然,这在INNER里似乎没什么区别,但在LEFT/RIGHT [OUTER]中就有所区别,后者可能会返回NULL值
    查看全部
    0 采集 收起 来源:内连接INNER JOIN

    2017-08-17

  • 建表、查询、写入三合一:CREATE和SELECT语句结合,需注意,select返回的字段,如果在CREATE的表中不存在,那么就会自动创建该字段并写入信息,而如果已有该字段,就覆盖并写入该字段信息(相当于改变该字段的位置),如表中有a,b,c字段,如果select b,d,那么表中字段顺序会变成acbd,并且bd被写入select的值 例: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;
    查看全部
  • 查看数据表结构:SHOW CREATE TABLE tbl_name 显示用于创建给定表的CREATE TABLE语句(即显示创建表示输入了怎样的命令,并且也可以显示该表应用的存储引擎和字符集)
    查看全部
  • 多表更新:在更新一张表时,与另一张表建立连接,使用表2的值更新表1(逻辑外键,并没有声明物理外键来达到连接效果,但需注意,该更新只会修改值,但不会修改表1的结构,如把一个int值赋给了char值,那么只会把int值的char形式赋值传入,而不会修改表1,所以如果是不同属性的更新,还需要手动alter命令修改) UPDATE 表名1 {[INNER | CROSS ] JOIN|{LEFT|RIGHT} [OUTER] JOIN} 对应表名2 ON 对应条件 SET 字段名1={expr1 | DEFAULT} [,字段名2={expr2 | DEFAULT}]... [WHERE where_condition] 连接方式有三种: INNER JOIN,内连接 在MySQL中,JOIN, CROSS JOIN 和 INNER JOIN 是等价的。 LEFT [OUTER] JOIN ,左外连接 RIGHT [OUTER] JOIN,右外连接 更新时,①先确定连接关系,如表1 INNER JOIN 表2,然后②再确定连接条件,即什么条件满足时,就把表1的某行和表2的某行连接在一起,如ON 表1.name=表2.name,最后再选择确定关系之后,③确定要把表1的字段改成表2的哪个字段,SET 字段=...,其中①和②是表的连接 例: update tdb_goods inner join tdb_goods_cates on goods_cate=cate_name set goods_cate=cate_id;
    查看全部
    0 采集 收起 来源:多表更新

    2017-08-16

  • 限定条件之默认约束:DEFAULT 默认值 当插入记录时,如果未为这个字段赋值,则赋予默认值 (如果有某个字段被赋予了not null的限定条件,那么假设它通过DEFAULT赋予了初始值,那么,只要不显式的赋予null,哪怕是在插入时不写入对应值也不会出错)
    查看全部
  • 限定条件之唯一约束:UNIQUE KEY 唯一约束的字段可以为空,但如果被赋值了,则必须保证数据是唯一的,而其与主键的不同之处就在于唯一约束的字段可以有多个,而不是像主键一样只能有一个
    查看全部
  • [NOT] IN引起的子查询:字段 [NOT] IN(value1,vaule2...),可查询字段是否在括号内的值中存在,并返回一个布尔值,也因此可用于子查询,因为select也会返回一个结果集 IN 相当于=ANY NOT IN 相当于 !=ALL 或者<>ALL ——不等于、不包含 例:SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price IN (SELECT goods_price FROM tdb_goods WHERE goods_cate = '超级本') [NOT] EXISTS引起的子查询——用得比较少 如果子查询返回至少一行数据,则exists 返回 true,反之 返回 false where [NOT] EXISTS(select ....)类似于where 字段 [NOT] IN(select ....),但侧重点不一样,EXISTS侧重于select是否返回了语句,如果返回了数据,则该行就是true;而字段IN则侧重于比较每行的字段值是否在select返回的信息中,如果是,则该行为true 例:SELECT * FROM tdb_goods WHERE EXISTS(SELECT goods_id FROM test WHERE goods_id = t_id)
    查看全部
  • PRIMARY KEY AUTO_INCREMENT 自增列 MySQL初涉主键约束 1、唯一性(可以赋值但是不能给两个记录赋一样的值)每张表只存在一个主键 2、非空,插入方式与NOT NULL一样 3、自动编号(AUTO_INCREMENT)必须与主键(PRIMARY KEY)搭配使用,主键可以不与自动编号一起使用 创建一个带主键的表: CREATE TABLE user( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) NOT NULL -> ); 接着一次插入数据,便会有编号出现,但是如果删除了,编号会出现间断。
    查看全部
  • 2.子查询返回多个结果时,使用ANY\SOMG\ALL可返还对结果集的最大值或最小值,使用ALL(SELECT...)时,根据前面的符号为>或<,返回最大或最小值;使用ANY或SOME(这两个等价)时,根据前面的符号位>或<,返回最小或最大值 SELECT goods_id, goods_name, goods_price FROM tdb_goods WHERE goods_price >= ALL (SELECT goods_price FROM tdb_goods WHERE goods_cate = '超级本');
    查看全部
  • 1.比较运算符产生子查询:< , =,<=,>=,<>(不等于)...这些比较符之后可以接子查询(SELECT ...),记住,一定有括号 例:SELECT goods_id, goods_name, goods_price FROM tdb_goods WHERE goods_price >= (SELECT AVG(goods_price) FROM tdb_goods);
    查看全部
  • 子查询:出现在【其他SQL语句内】的SELECT子句 eg: SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); 其中,SELECT * FROM t1 ...称为Outer Query[外查询](或者Outer Statement) SELECT column1 FROM t2 称为Sub Query[子查询] 子查询指嵌套在【查询内部】,且必须始终出现在【圆括号内】。 子查询可以包含多个关键字或者条件,如DISTINCT,GROUP BY,ORDER BY,LIMIT,函数等 子查询的外层查询可以是:【SELECT,INSERT,UPDATE,SET或DO】 子查询可以返回值:标量、一行、一列或者子查询
    查看全部
  • SET NAMES gbk;意思是改变客户端的编码格式,而不影响真的数据库中的真实数据。
    查看全部
    0 采集 收起 来源:数据准备

    2017-08-16

  • 第四节总结: 记录操作:增,改,删,查 INSERT://增加记录,有三种方法。 INSERT [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr|DEFAULT},...),(...),... INSERT [INTO] tbl_name SET col_name={expr|DEFAULT},... INSERT [INTO] tbl_name [(col_name,...)] SELECT... UPDATE://更新数据 单表更新 UPDATE [LOW_PRIORITY][IGNORE] table_reference SET col_name1={expr1|DEFAULT},[col_name2={expr2|DEFAULT}]...[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_name|position} [ASC|DESC],...] 按某个字段进行分组,相同的只显示第一个 [HAVING where_conditon] 分组时,给出显示条件 [ORDER BY {col_name|expr|position} [ASC|DESC],...] 排序 [LIMIT {[offset,]row_count|row_count OFFSET offset}] 限制返回数量 ]
    查看全部
    1 采集 收起 来源:小结

    2017-08-16

举报

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

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