为了账号安全,请及时绑定邮箱和手机立即绑定

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
学习人数
综合评分9.67
950人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • group by 1 意思为指定以 select 后第一个字段 分组(一般都不建议用这种位置来分钟 都按字段名分组)
    00:06
    看视频
  • 插入记录:
    INSERT [INTO] table_name [(col_name,...) {VALUES | VALUE} ({expr | DEFAULT},...),(...),...

    如果想对自动递增的字段赋值,可以输入NULL或者DEFAULT.

    对整型字段赋值,可以使用数学表达式。

    对于设置了默认约束的字段赋值,可以直接输入DEFAULT.

    INSERT 插入记录 

    语法1:INSERT [INTO] 表名 [(列名1,列名2,...)] VALUES(列值1,列值2,...),(...),...; 

    对于自动编号的字段,插入“NULL”或“DEFAULT”系统将自动依次递增编号; 

    对于有默认约束的字段,可以插入“DEFAULT”表示使用默认值; 

    列值可传入数值、表达式或函数,如密码可以用md5()函数进行加密(如md5('123')); md5是PHP中的哈希函数

    可同时插入多条记录,多条记录括号间用逗号“,”隔开 


  • 本节知识点

    约束

    • 按功能划为:NOT NULL, PRIMARY KEY, UNIQUE KEY, DEFAULT, FOREIGN KEY

    • 按数据列的数目划为:表级约束,列级约束

    修改数据表

    • 针对字段的操作:添加/删除字段、修改列定义,修改列名称等

    • 针对约束的操作:添加/删除各种约束

    • 针对数据表的操作:数据表更名(两种方式)


  • 修改列定义:

    ALTER TABLE tb_name MODIFY [COLUMNS] co_name column_definition [FIRST | AFTER co_name]

    修改列名称(也可以修改定义):

    ALTER TABLE tb_name CHANGE [COLUMN] old_co_name new_co_name column_definition [FIRST | AFTER co_name]

    修改表名称:

    方法1:

    ALTER TABLE tb_name RENAME [TO | AS] new_tb_name

    方法2:

    RENAME TABLE tb_name TO new_tb_name [,tb_name2 TO new_tb_name2]...

  • 删除主键约束

    ALTER TABLE table_name DROP PRIMARY KEY;

    删除唯一约束

    ALTER TABLE table_name DROP INDEX|KE index_name;

    删除外键约束

    ALTER TABLE table_name DROP FOREING KEY fk_name;

    通过SHOW CREATE TABLE tb_name查看外键名

  • 添加主键约束:

    ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index-col_name,...)

    添加、删除默认约束:

    ALTER TABLE tb_name ALTER [COLUMN] co_name {SET DEFAULT literal | DROP DEFAULT}

  • 添加单列:

    ALTER TABLE tb_name ADD [COLUMN] co_name column_definition [FIRST | AFTER co_name]

    删除列:

    ALTER TABLE tb_name DROP [COLUMN] co_name

  • 表级约束与列级约束

    1. 对一个数据列建立的约束,称为列级约束

    2. 对多个数据列建立的约束,称为表级约束

    3. 列级约束既可以在列定义时声明,也可以在列定义后声明

    4. 表级约束只能在列定义后声明

  • 外键约束的参照操作

    1. CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行

    2. SET NULL:从父表删除或更新行,并设置子表中的外键列为 NULL。如果使用该选项,必须保证子表列没有指定 NOT NULL

    3. RESTRICT:拒绝对父表的删除或更新操作。

    4. NO ACTION:标准 SQL 的关键字,在 MySQL 中与 RESTRICT 相同


  • 创建外键约束:

    FOREIGN  KEY (pid) REFERENCES provinces (id)

  • FREIGN KEY(外键约束):

    功能:

    1. 保持数据一致性、完整性

    2. 实现一对一或一对多关系(称为“关系型数据库”的根本原因)

    要求:

    1. 父表和子表必须使用相同的存储引擎,而且禁止使用临时表

    2. 数据表的存储引擎只能为InnoDB

    3. 外键列的参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同

    4. 外键列和参照列必须创建索引。如果参照列不存在索引的话,MySQL将自动创建索引(创建主键时自动添加索引)

    子表:具有外键列的表

    父表:子表所参照的表

    1. 约束保证数据的完整性一致性

    2. 约束分为表级约束列级约束

    3. 约束类型包括:

      NOT NULL(非空约束)

      PRIMARY KEY(主键约束)

      UNIQUE KEY(唯一约束)

      DEFAULT(默认约束)

      FOREIGN KEY(外键约束)

  • 一、数据表

    1. 概述

    数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础。

    实质就是一张二维表,其中行称为记录,列称为字段。

    数据类型

    描述

    integer(size)

    int(size)

    smallint(size)

    tinyint(size)

    仅容纳整数。在括号内规定数字的最大位数。

    decimal(size,d)

    numeric(size,d)

    容纳带有小数的数字。

    "d" 规定小数点右侧的最大位数。

    char(size)

    容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。

    在括号中规定字符串的长度。

    varchar(size)

    容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。

    在括号中规定字符串的最大长度。

    date(yyyymmdd)

    容纳日期。

    二、 创建数据表

    1. 创建数据表

    CREATE TABLE [IF NOT EXISTS] table_name(
    column_name data_type,
    ....
    );

    Demo: 创建一张名为 tb1 的表,包含 usename ,age 和 salary 三个字段

    CREATE TABLE tb1(
    username VARCHAR(20),
    age TINYINT UNSIGNED,
    salary FLOAT(8,2) UNSIGNED
    );

    2. 查看数据表列表

    SHOW TABLES [FROM db_name] [LIKE 'patten' | WHERE expr] ;

    Demo:

    SHOW TABLES;

    3. 查看数据表结构

    SHOW COLUMNS FROM tbl_name;

    DESC tbl_name;

    4. 插入记录

    INSERT [INTO] tbl_name[(col_name,...)] VALUES(val,..);

    Demo: 为之前创建的 tb1 插入一条记录

    INSERT tb1(username,age,salary) VALUES("John",27,4999.60);

    5. 查找记录

    SELECT expr,... FROM tbl_name;

    Demo: 查找之前为 tb1 插入的记录

    SELECT * FROM tb1;

    三、 字段属性

    1. 空值与非空

    • NULL,字段值可以为空

    • NOT NULL,字段值禁止为空

    Demo: 为 t2 表的 name 字段设置非空

    CREATE TABLE t2(
    name NOT NULL
    );

    2. 自动编号

    • AUTO_INCREMENT

    • 自动编号,且必须与主键组合使用

    • 默认情况下,起始值为 1,每次增量为 1

    • 该子段一定为数值型,如果为浮点数小数位数为 0

    3.  主键

    • PRIMARY KEY

    • 主键不一定必须和自动编号使用

    • 主键自动为 NOT NULL

    • 主键保证记录的唯一性

    • 每张表只能存在一个主键

    4. 唯一约束

    • UNIQUE KEY

    • 唯一约束可以保证记录的唯一性

    • 唯一约束的字段可以为空值(NULL)

    • 每张数据表可以存在多个唯一约束

    5. 默认约束

    • DEFAULT

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


  • order by 排序

    select * from user order by age;  默认升序排序

    select * from user order by age,id desc;

    asc  升序

    desc  降序


  • 分组条件   having

    select sex,age  from user  group by sex having age>10;

    select sex from user group by 1 having count(id) >=2;

  • where 表达式中可以使用MySQL支持的函数和运算符。

  • select 列名,列名 from 表名; * 表示所有列

    别名:(建议不用空格,用as关键词 )

    select id as userid,username as uname  from users;

  • delete from 表名 where 条件;

    删除后再添加的时候索引不会补在删除的位置,会继续向下索引

  • 更新记录

    update 表名 set  列名=    where  条件


首页上一页1234567下一页尾页

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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