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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • 1.表级约束与列级约束
     a.对一个数据列建立的约束,称为列级约束
     b.对多个数据列建立的约束,称为表级约束
     c.列级约束既可以在列定义时声明,也可以在列定以后声明
     d.表级约束只能在列定义后声明
    2.主键、外键、非空、唯一、default都是约束条件。
     a.主键、外键、唯一既可以作为表级约束,也可作为列级约束
     b.not null, default只有列级约束

    查看全部
  • ftysa

    查看全部
    0 采集 收起 来源:MySQL概述

    2018-05-24

  • 外键约束的参照操作

    CASCADE://删除或更新父表中的数据相应的删除或更新子表中的相匹配的行;
    SHOW CREATE TABLE tb_name;//显示数据表创建时的命令;
    创建子表:users1;

    CREATE TABLE users1(
    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 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;

    --例子

    CREATE TABLE tb7(
      id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(20) NOT NULL
    );
    CREATE TABLE tb8(
      id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
      username VARCHAR(20) NOT NULL,
      pid SMALLINT UNSIGNED,
      FOREIGN KEY (pid) REFERENCES tb7(id) /* 外键 pid 参照 table_name1中的 id 字段 */
    );
    查看全部
  • 删除数据库

    DROP DATABASE t1;

    查看全部
    0 采集 收起 来源:操作数据库

    2018-05-24

  • 显示t1的编码方式:SHOW CREATE DATABASE t1;

    查看全部
    0 采集 收起 来源:操作数据库

    2018-05-24

  • 约束的概述

    查看全部
  • 数据表操作:
    1.主键约束:PRIMARY KEY
    2.唯一约束:UNIQUE KEY
    3.默认约束:DEFAULT
    4.非空约束:NOT NULL
    5.外键约束:FOREIGN KEY

    CREATE TABLE tb_name(
    ...,
    ...
    );  //创建数据表(结构)
    SHOW COLUMNS FROM tb_name//查看数据表结构(字段)
    INSERT tb_name[(...)] VALUES(...)//向数据表内插入记录
    SELECT *FROM tb_name//查看数据表的记录
    查看全部
    0 采集 收起 来源:回顾和概述

    2018-05-24

  • 数据类型 整型 (tinyint smallint mediumint int bigint)
    浮点型 (FLOAT{[M,D]},DOUBLE{[M,D]})M:总位数,D:小数点后位数
    日期 (YEAR DATE TIME TIMESTEMP)
    字符型 (CHAR VARCHAR TEXT)
    DOS 界面连接数据库 mysql -u用户名 -p密码 -hHOST
    显示数据库 SHOW DATABASES;
    显示表结构 SHOW COLUMNS FROM table;
    显示所有表 SHOW TABLES [FROM  DATABASE];
    进入数据库 USE 数据库;
    创建数据库 CREATE DATABASE 库名;
    创建表 CREATE TABLE 表名(字段及信息);
    插入数据 INSERT INTO table [] VALUES();[]为空说明插入全部的值
    查询数据 SELECT 字段 FROM table WHERE 条件
    自增自动编号 auto_increment
    主键约束 primary key(有auto_increment的一定是主键,主键不一定有auto_increment)
    唯一约束 unique key
    默认约束 default 当没有赋值时则自动添加默认值

    查看全部
    0 采集 收起 来源:总结

    2018-05-24

  • --默认约束 default
        当插入记录时 如果没有明确为字段赋值 则自动赋予默认值。

    --例子

     CREATE TABLE tb6(
     id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
     username VARCHAR(20) NOT NULL UNIQUE KEY,
     sex ENUM('1','2','3') DEFAULT '3'
     ); //表示当sex没有赋值时,默认值为3
    查看全部
  • 1.PRIMARY KEY
        逐渐约束,一个表中只能有一个。

    2.UNIQUE KEY
    (1)唯一约束
    (2)唯一约束可以保证记录的唯一性
    (3)唯一约束的字段可以为空值(NULL)
    (4)每张数据表可以存在多个唯一约束

    --例子

     CREATE TABLE tb5(
     id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
     username VARCHAR(20) NOT NULL UNIQUE KEY,
     age TINYINT UNSIGNED
     );
    查看全部
  • --主键约束
     AUTO_INCREAMENT必须和主键一起使用,反之不成立
     主键约束的字段自动禁止为空

    CREATE TABLE tb3(
    id TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    username varchar(20) NOT NULL
    );   //AUTO_INCREMENT与PRIMARY KEY 一起使用的例子
    CREATE TABLE tb4( 
    id TINYINT UNSIGNED PRIMARY KEY, 
    username VARCHAR(20)  NOT NULL 
    );  //只有主键的情况,数据表一样的创建了
    查看全部
  • --MySQL自动编号 AUTO_INCREMENT
     1.自动编号必须与主键配合使用
     2.自动编号作用
      a、保证记录的唯一性
      b、类型必须为整型(可以是FLOAT(5,0)等,小数点后必须为0),必须和主键PRIMARY KEY组合使用
      c、默认情况下,起始值为1,每次的增量为1

    --例子

     CREATE TABLE tb3(
     id SMALLINT UNSIGNED AUTO_INCREMENT,
     username VARCHAR(30) NOT NULL
     ); //报错,自动增量字段必须设置成主键
    查看全部
    0 采集 收起 来源:MySQL自动编号

    2018-05-24

  • --空值与非空
     NULL,字段值可以为空
     NOT NULL, 字段值禁止为空

    CREATE TABLE tb2(
    username VARCHAR(20) NOT NULL,
    age TINYINT UNSIGNED NULL
    );
    INSERT tb2 VALUES('tom',NULL);可行 
    INSERT tb2 VALUES(NULL,32); 报错
    查看全部
  • --查找记录
     SELECT expr,... FROM tbl_name;
     *字段的过滤,全部记录

    查看全部

举报

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

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