为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
与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;
    查看全部
  • CASCADE:删除或更新父表中的数据相应的删除或更新子表中的相匹配的行; SHOW CREATE TABLE tb_name;//显示数据表创建时的命令; 创建子表:users1; >CREATE TABLE users( >id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, >username VARCHAR(10) NOT NULL, >pid(外键) SMALLINT(与参照键类型相同) UNSIGNED(与参照键有无符号类型也要相同),//外键的作用体现在这:如果我们要添加一个省份的字段,需要添加个char型的,现在有了关系型数据库,我们只需要存储省份的id即可; >FOREIGN KEY (pid) PREFERENCES provinces (id) ON DELETE CASCADE, >); INSERT provinces(pname) VALUES('A'); INSERT provinces(pname) VALUES('B'); INSERT provinces(pname) VALUES('C'); INSERT users1(username,pid) VALUES('Tom',1); INSERT users1(username,pid) VALUES('Jerry',2); INSERT users1(username,pid) VALUES('Lucy',3); 当删除provinces中的id=3的数据C时,相应的users1中的Lucy也会被删掉,更新的话同样如此; SET NULL://从父表删除或更新行,会设置子表中的外键列为NULL,如果使用该选项,必须保证子表列没有指定NOT NULL RESTRICT://拒绝对父表的删除或更新操作; NO ACTION://标准的SQL语句,在MYSQL当中与RESTRICT相同 实际开发中,我们很少使用物理的外键约束,而是使用逻辑约束;无理的外键约束只有innoDB这种存储引擎才会支持,MYISAM这种引擎就不支持物理的外键约束。反过来说,当我们使用到的引擎为MYISAM时,只能使用逻辑外键(即两个表的设计的逻辑关系)。
    查看全部
  • 外键约束
    查看全部
  • 内连接
    查看全部
  • 外连接
    查看全部
  • 1. 左外连接 显示左表的全部记录和右表符合连接条件的记录。 2. 右外连接 显示右表的全部记录和左表符合连接条件的记录。
    查看全部
    0 采集 收起 来源:外连接OUTER JOIN

    2017-01-21

  • 约束主要是针对字段,即列或者叫columns进行,主要有以下几种类型 1.非空约束NOT NULL ,限制该列内容不能为空值,必须输入 2.主键约束PRIMARY KEY,一个TABLE中只能存在一个主键约束,保证记录的唯一性,可以配合AUTO_INCREMENT使用,自动增1 3.唯一约束UNIQUE KEY,一个TABLE中可以针对列设置多个唯一约束,目的是使得该列的内容不重复,该列值可以为NULL 4.默认约束 DEFAULT,对一列(字段)设置默认值,如果不给其设置自定义值,则其显示默认值 5.外键约束FOREIGN KEy 对一个字段进行约束成为列级约束,对两个及以上字段进行约束称为表级约束 外键约束的要求: 1.父表和子表必须使用相同的存储引擎,不能使用临时表 2.数据存储引擎必须为INNODB类型 3.外键列和参照列必须具有相似的数据类型。其中数字的长度或者是否有符号位必须相同,字符的长度则可以不同。 4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL则自动创建索引 外键列创建在子表中,参照列创建在父表中 验证: 在 MY.ini 文件中编辑默认的存储引擎:default-storage-engine=INNODB; 显示创建表的语句:SHOW CREATE TABLE table_name; 查看表是否有索引:SHOW INDEXS FROM table_name; 以网格查看表是否有索引:SHOW INDEXS FROM table_name\G; Eg: CREATE TABLE table_name1( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL ) CREATE TABLE table_name2( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED, FOREIGN KEY (pid) REFERENCES table_name1(id) /* 外键 pid 参照 table_name1中的 id 字段 */
    查看全部
  • 1. 内连接 INNER JOIN。在MySQL中,JOIN,CROSS JOIN和INNER JOIN是等价的。 2. 左外连接 LEFT [OUTER] JOIN 3. 右外连接 RIGHT [OUTER] JOIN 4. 连接条件: 使用ON关键字来设定连接条件,也可以使用WHERE来代替。 5. 内连接,仅显示符合连接条件的记录。 通常使用ON关键字来设定连接条件,使用WHERE关键字进行结果集记录的过滤。
    查看全部
    0 采集 收起 来源:内连接INNER JOIN

    2017-01-21

  • MySQL语句的规范
    查看全部
    0 采集 收起 来源:操作数据库

    2017-01-21

  • 整型数据类型
    查看全部
  • select now();显示当前日期 select user();显示当前用户
    查看全部
  • select version(); 打印数据库版本号
    查看全部
  • 部分代码 1. 更新 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 来自哪张表。 2. 修改字段名和数据类型 ALTER TABLE tdb_goods CHANGE goods_cate cate_id SMALLINT UNSIGNED NOT NULL, CHANGE brands_name brand_id SMALLINT UNSIGNED NOT NULL; 修改了数据类型才真正缩小了表格占用的空间(原先的数据类型均是VARCHAR(40))。
    查看全部
  • CREATE...SELECT
    查看全部
  • 多表更新 例如: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;
    查看全部
    1 采集 收起 来源:多表更新

    2017-01-20

举报

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

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