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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
学习人数
综合评分9.67
950人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 分组条件:

    [HAVING when where_condition]

    用在group by后面追加条件,判断式中的字段是必须出现在前面select中的 或者是可以包含没有出现在前面查询中的字段的一个聚合函数count(),max()等等。

    SELECT sex FROM users GROUP BY 1 HAVING age>35; //有错
    SELECT sex, age FROM users GROUP BY 1 HAVING age>35;
    SELECT sex FROM users GROUP BY 1 HAVING count(id)>=2;

    (这条指令,指按照sex分组,分成了两组sex=0和sex=NULL,条件id数大于2的留下显示,显然sex=0个数有8>2故留下,而sex=NULL个数为1,不满足条件,故不显示。如果条件改成count(id)>=1,则会显示sex为0和NULL两个分组。)
    聚合函数永远只有一个返回结果。
    count记录个数。

    查看全部
  • 对查询结果进行分组:

     [GROUP BY {col_name|position} [ASC|DESC],...] 

    默认为ASC升序,DESC为降序。

    一般去指定字段名称而非位置。

    查看全部
  • 条件表达式

    对记录进行过滤,如果没有指定WHERE子句,则显示所有记录

    在WHERE表达式中,可以使用MySQL支持的函数或运算符

    查看全部
  • 查找记录:

    SELECT select_expr [,select_expr...]

    [

    FROM table_references

    [WHERE where_condition]

    [GROUP BY {col_name|position}] [ASC|DESC],...]

    [HAVING where_condition]

    [ORDER BY{col_name|expr|position}[ASC|DESC],...]

    [LIMIT{[offset,]row_count|row_count OFFSET offset}]

    ]

    1、查询表达式中列的顺序可以与原表中的顺序不一致,查询字段的顺序和别名会影响结果集出现的顺序和别名。

    SELECT username,id FROM users;

    2、查询时,可以用数据表名.列名更加强了确定性(防止后期多表连接时有列名重复)

    SELECT users.username FROM users;

    3、查询时,若原字段(列)的名字较复杂,可以使用别名来称呼原字段。原名 AS 新名,原名1 AS 新名1。

    SELECT id AS userid FROM users;

    查看全部
  • 删除记录(单表):

    DELETE FROM tbl_name [WHERE where_condition];

    删除单条记录后,新增的记录仍然按最大序号继续排列,不会去补齐被删除的记录号。

    若不添加WHERE条件,则全部删除。

    查看全部
  • 更改字段值(单表更新):

    UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr|DEFAULT}[,col_name2={expr|DEFAULT}]...[WHERE where_condition]

    如果不加where,则所有记录全部更新。

    UPDATE users set age=age+5;  //所有记录年龄加5

    UPDATE users set age=age-id ,sex=0;  //同时更新age和sex字段

     UPDATE users set age=age+10 where id%2=0;  //偶数记录的年龄更新

    查看全部
  • SET查询:

    可以使用子查询,但一次只能插入一条记录。

    INSERT users SET username='BEN',password='456';【其余字段有默认值或者允许为空】

    查看全部
  • 插入记录:

    INSERT [INTO] table_name [(col_name,...) {VALUES | VALUE} ({expr | DEFAULT},...),(...),...; //自动递增的字段,可赋值NULL/DEFAULT。整型字段,可赋值为数学表达式。有默认约束的字段,可赋值为DEFAULT。md5()函数编码后的字长为32位。同时插入多条记录,多条记录括号间用逗号隔开。

    INSERT users VALUES(DEFAULT,'Tom','123',3*7-5,1),(NULL,'Rose',md5('123'),DEFAULT,0);

    查看全部
  • <span>多表更新之一步到位 建表、查询、写入三合一: 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: 外键,不一定是物理的外键,逻辑的外键也行,当然,物理外键更能保证数据的完整性和一致性。 数字类型的字段占用的空间更小,查询的效率也更高。</span>
    查看全部
  • <span >多表更新: 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; 设置 值</span>
    查看全部
    0 采集 收起 来源:多表更新

    2020-09-11

  • <span >INSERT [INTO] tbl_name SET col_name={exprDEFAULT},...//可以使用子查询 INSERT [INTO] tbl_name [(col_name,...)] SELECT ...//将查询结果写入数据表 Eg: INSERT INTO table_name [(column_name)] SELECT column_name2 FROM table_name2 GROUP BY column_name3; CREATE TABLE IF NOT EXISTS tdb_goods_cates( cate_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, cate_name VARCHAR(40) NOT NULL ); SELECT goods_cate FROM tdb_goods GROUP BY goods_cate; //列出所有品牌cate DESC tdb_goods_cates; //显示出tdb_goods_cates表中的项目名称,与SHOW COLUMNS FROM tdb_goods_cates;作用相同 INSERT tdb_goods_cates(cate_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;//在表tdb_goods_cates中插入tdb_goods中的cate</span>
    查看全部
  • 多表删除:


    查看全部
    0 采集 收起 来源:多表删除

    2020-04-02

  • 无限级分类表设计:

    type_id 

    type_name

    parent_id

    自身连接实现查询操作

    查看全部
  • 外连接说明:


    查看全部
  • 外连接说明:


    查看全部

举报

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

微信扫码,参与3人拼团

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

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