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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
学习人数
综合评分9.67
950人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 使用比较运算符的子查询:


    查看全部
  • 子查询返回值:


    查看全部
  • 子查询注意事项:


    查看全部
  • MySQL子查询:


    查看全部
    • 约束按照功能来划分:

    not null(非空约束)nique key(唯一约束)

    default(默认约束)

    foreign key(外键约束)

    • 按照数据列的数目划分:

    表级约束

    列级约束

    • 修改数据表的操作:

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

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

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

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

    2020-04-01

  • 修改列定义(名称没问题,数据类型或者列的位置有问题)

    ALTER TABLE table_name MODIFY [COLUMN] column_name column_definition [FIRST | AFTER column_name];

    改位置:ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;

    改定义:ALTER TABLE users2 MODIFY id TINYINT UNSIGNED NOT NULL;(修改定义,在缩小范围时可能会造成数据丢失)

    修改列名称:

    ALTER TABLE table_name CHANGE [COLUMN] old_column_name new_column_name column_definition [FIRST | AFTER column_name];(CHANGE的功能大于MODIFY,可以在修改名称的同时,对类型、位置也做出修改)

    修改数据表名字:

    1、ALTER TABLE table_name RENAME [TO|AS] new_tbl_name;

    2、RENAME TABLE tbl_name TO new_tbl_name [,tbl_name2 TO new_tbl_name2]...;

    尽量减少对数据表、数据列的名称的修改,当表名或列名曾创建过索引,或被引用过,修改名称可能导致某些过程无法正常工作。

    查看全部
  • 删除主键约束:ALTER TABLE table_name DROP PRIMARY KEY;(不需要加主键名,因为每个表中主键是唯一的)

    查看索引:SHOW INDEXES FROM users2;

    删除唯一约束:ALTER TABLE table_name DROP {INDEX|KEY} index_name;(删除的是约束,不是该列,一张表有多个唯一约束)

    先查看系统给的外键约束的名字:SHOW CREATE TABLE users2;

    看到CONSTRAINT `users2_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `provinces` (`id`)

    users2_ibfk_1为外键名fk_symbol

    删除外键约束:ALTER TABLE table_name DROP FOREIGN KEY fk_symbol;

    查看表结构:SHOW CREATE TABLE users2;

    查看全部
  • 添加主键约束:ALTER TABLE 表名 ADD [CONSTRAINT [symbol(给主键取的名称)]] PRIMARY KEY [index_type] (index_col_name,...);

    ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id);

    添加唯一约束:ALTER TABLE 表名 ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...);

    ALTER TABLE users2 ADD UNIQUE (username);

    添加外键约束:ALTER TABLE 表名 ADD [CONSTRAINT[symbol]] FOREIGN KEY [index_name] (index_col_name) REFERENCES 参照表名 (参照列);

    ALTER TABLE user2 ADD FOREIGN KEY (pid) REFERENCES provinces (id);

    添加/删除默认约束

    ALTER TABLE 表名 ALTER [COLUMN] 列名 {SET DEFAULT 设置默认值 | DROP DEFAULT删除默认值};

     ALTER TABLE users2 ALTER age SET DEFAULT 15;

     ALTER TABLE users2 ALTER age DROP DEFAULT;

    查看全部
  • 单独分析筛选时: SELECT AVG(goods_price) FROM tdb_goods;              //AVG函数代表求其平均值// SELECT ROUND(AVG(goods_price),2) FROM tdb_goods;     //round(@,#)代表输出格式为@数小数点后#位输出// SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=5391.30; //输出价格大于5391.30的id、name、price// 综合起来运用子查询时: SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=(SELECT ROUND(AVG(goods_price),2) FROM tdb_goods);             //查找价格大于平均值的商品// SELECT goods_price FROM tdb_price WHERE goods_cate='超级本'\G;  //检索结果非唯一// 对于ANY、SOME、ALL的用法各有不同: SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=ANY (SELECT goods_price FROM tdb_goods WHERE goods_cate='超级本');  //大于等于最小值

    SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=ALL (SELECT goods_price FROM tdb_goods WHERE goods_cate='超级本'); SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=SOME (SELECT goods_price FROM tdb_goods WHERE goods_cate='超级本');

    查看全部
  • 添加多列不能指明位置关系

    查看全部
  • <span >子查询是指出现在【其他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】 子查询可以返回值:标量、一行、一列或者子查询</span>
    查看全部
  • 添加单列:ALTER TABLE table_name ADD [COLUMN] column_name column_definition [FIRST(添加这一列放在所有列前方)|AFTER 列名(添加这一列放在指定列的后面)];(如果省略FIRST或者AFTER则放在所有列的最后)

    添加多列:ALTER TABLE table_name ADD [COLUMN] (column_name column_definition,...) ;只能在所有列的最后

    删除单列:ALTER TABLE table_name DROP [COLUMN] column_name;

    删除多列:ALTER TABLE table_name DROP [COLUMN] column_name,DROP column_name;

    查看全部
  • 1.对一个数据列产生的约束,叫列级约束。

    2.对多个数据列产生的约束,叫表级约束。

    3.列级约束可以在列定义时期声明,也可以在列定义后声明。表级约束只能在列定义后声明。

    4.实际开发过程中,使用列级约束较多。表级约束很少。

    5.NOT NULL和DEFAULT只存在列级约束。

    查看全部
  • ON DELETE CASCADE

    创建了外键约束后,必须先在主表中插入记录,再对子表进行操作。

    若有一条记录没有写入成功,在自动编号情况下,编号会往后调跳一位。

    删除命令DELETE FROM table_name WHERE 序号名 =?;

    在实际开发中很少使用物理的外键约束(只有innDB引擎支持),一般使用逻辑的外键约束(MyISAM)。

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

    2、SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。

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

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

    查看全部
  • 一、数据表

    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

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


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

    2020-04-01

举报

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

微信扫码,参与3人拼团

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

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