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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • GROUP BY语句对查询结果分组 查询结果分组,(多个分组用“,”隔开); [group by{col_name/posittion}[ASC/DESC]....] SELECT*FROM users GROUP BY sex; SELECT*FROM users GROUP BY 1;(这里的一表示查询的第一个字段,这里查询所有,第一个字段就是id,就就是会按照字段进行分组)
    查看全部
  • SHOW{DATABASE/SCHEMAS} 显示当前创建的数据 LIKE' SHOW WORNINGS;查看当前警告信息 SHOW CREATE DATABASE t1;查看数据库t1 的编码方式 CREATE DATABASE t2 CHARACTER SET gbk;创建 t2 新的编码方式为gbk;
    查看全部
    0 采集 收起 来源:操作数据库

    2016-09-25

  • select
    查看全部
  • CREATE{DATABASE/SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name
    查看全部
    0 采集 收起 来源:操作数据库

    2016-09-25

  • 1.表级约束与列级约束 (1)对一个数据列建立的约束,称为列级约束 (2)对多个数据列建立的约束,称为表级约束 (3)列级约束既可以在列定义时声明,也可以在列定以后声明 (4)表级约束只能在列定义后声明 2.主键、外键、非空、唯一、default都是约束条件。主键、外键、唯一既可以作为表级约束,也可作为列级约束 ( not null, default )只有列级约束
    查看全部
  • >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时,只能使用逻辑外键(即两个表的设计的逻辑关系)。
    查看全部
  • FOREIGN KEYp:保持数据一致性,完整性;实现一对一或一对多关系。 要求:父表和子表必须使用相同的存储引擎,而且禁止使用临时表;数据表的存储引擎只能为InnoDB;外键列和参照列必须具有类似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同;外键列和参照列必须创建索引。如果外键列不存在索引的话,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 字段 */ )
    查看全部
  • 子表:具有外键列的表 称为字表 父表:子表所参照的表 称为父表 FOREIGN KEY:保持数据一致性,完整性;实现一对一或一对多关系。 声明外键及其所参照的参照列FOREIGN KEY (子表字段名) REFERENCES 父表 (父表字段名) 要求: 数据表的存储引擎只能为InnoDB:配置文件中default-storage-engine=INNODB; 父表和子表禁止使用临时表(子表:具有外键列的表;父表:子表参照的表) 外键列和参照列必须具有相似的数据类型。数字长度或有无符号必须相同,字符长度可不同 外键列和参照列必须创建索引。如果参照列不存在索引的话,MySQL将自动创建索引 在 MY.ini 文件中编辑默认的存储引擎:default-storage-engine=INNODB; 显示创建表的语句:SHOW CREATE TABLE table_name; 查看表是否有索引:SHOW INDEXS FROM table_name; 以网格查看表是否有索引:SHOW INDEXS FROM table_name\G; eg: 1.父表<br> create table provience (<br> id smallint unsigned auto_increment primary key,<br> proname varchar(20) not null<br> );<br> 2.子表<br> create table user(<br> id smallint unsigned auto_incremene primary key,<br> username varchar(10) not null,<br> pid smallint unsigned, <br> foreign key (pid) references provience(id)<br> );
    查看全部
  • update
    查看全部
  • insert
    查看全部
  • insert
    查看全部
  • 建表、查询、写入三合一: 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 AS g INNER JOIN tdb_goods_brands AS b ON g.brand_name = b.brand_name SET g.brand_name = b.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; PS: 外键,不一定是物理的外键,逻辑的外键也行,当然,物理外键更能保证数据的完整性和一致性。 数字类型的字段占用的空间更小,查询的效率也更高。
    查看全部
  • SELECT VERSION();查看当前版本二 SELECT NOW();显示当前时间 SLEECT USER();显示当前用户
    查看全部
    0 采集 收起 来源:操作数据库

    2016-09-25

  • 多表更新: UPDATE table_references SET col_name1={expr1 DEFAULT} [,col_name2={expr2 DEFAULT}]... [WHERE where_condition] INNER JOIN,内连接 在MySQL中,JOIN, CROSS JOIN 和 INNER JOIN 是等价的。 LEFT [OUTER] JOIN ,左外连接 RIGHT [OUTER] JOIN,右外连接 update tdb_goods inner join tdb_goods_cates on goods_cate=cate_name set goods_cate=cate_id; tdb_goods:想要更改的表名 inner join: 内连接 tdb_goods_cates: 关联的附表 goods_cate=cate_name 两个表对应列的关系 goods_cate=cate_id; 设置值
    查看全部
    1 采集 收起 来源:多表更新

    2016-09-25

  • 外键列需要有索引,没有会自动创建
    查看全部

举报

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

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