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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • @MySQL---查询语句解析之WHERE 条件表达式

    1、语法
    [WHERE where_conditon]

    2、条件表达式
    根据条件(>、<、=、>=、<=、!=、<>、IS NOT NULL),
    根据逻辑(AND,OR),
    根据结合方式(LEFT JOIN、RIGHT JOIN)等,
    根据模式匹配(IN、NOT IN、LIKE、NOT LIKE、REGEXP),
    使用各种MySQL函数和表达式,从表集合中筛选记录。

    查看全部
  • @MySQL---查询语句解析之SELECT
    1、语法
    SELECT select_expr [,select expr2...] 只查找某一个函数或表达式
    [
    FROM table_references 查询表名
    [WHERE where_conditon] 查询条件
    [GROUP BY {col_name|position} [ASC|DESC],...] 按某个字段进行分组,相同的只显示第一个
    [HAVING where_conditon] 分组时,给出显示条件
    [ORDER BY {col_name|expr|position} [ASC|DESC],...] 排序
    [LIMIT {[offset,]row_count|row_count OFFSET offset}] 限制返回数量
    }
    2、查询表达式的顺序会影响结果顺序
    每个表达式表示想要的一列,必须有至少一个;多个列直接以英文逗号分隔;星号*表示所有列
    3、使用tbl_name.col_name来表示列记录,这多表查询时可以区别开同名的列。
    4、使用[AS] alias_name为其赋予别名,别名可以用于GROUP BY、ORDER BY或HAVING子句。
    SELECT id AS userId,username AS uname FROM users; //查询结果会用别名userId,uname表示
    5、查询顺序影响结果集出现顺序,字段别名影响结果集字段别名

    查看全部
  • @MySQL---删除记录===DELETE

    一、单表删除

    1、语法

    DELETE FROM tbl_name [WHERE where_conditon];
    分为单表删除和多表删除; 
    若不添加WHERE则删除【全部记录】
    删除后再插入,插入的id号从最大的往上加,而不是填补删除的。

    2、eg:

    DELETE FROM users WHERE id=6;//删除id为6的记录
    INSERT users VALUES(NULL,'111','222',33,NULL); //删除后再插入,插入的id号从最大的往上加,而不是填补删除的。

    二、多表删除

    1、语法

    DELETE tbl_name[.*] [,tbl_name[.*]]...
    FROM table_references
    [WHERE where_condition];

    2、eg:

    DELETE t1 
    FROM tdb_goods AS t1 
    LEFT JOIN (
        SELECT goods_id,goods_name 
        FROM tdb_goods 
        GROUP BY goods_name HAVING count(goods_name) >= 2 ) AS t2 
    ON t1.goods_name = t2.goods_name 
    WHERE t1.goods_id > t2.goods_id;//删除商品名称一样的商品
    查看全部
  • @MySQL---更新记录===UPDATE

    一、单表更新

    1、语法
    UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={exp1|DEFAULT}[,col_name2=...][WHERE where_condition]

    SET后面可以是单个表达式或多个用 逗号 连接的表达式。

    2、eg:

    UPDATE users SET age=age+5;//使表里所有记录的age加5
    UPDATE users SET age=age-5,sex=0;//使表里所有记录的age减5,sex赋为0
    UPDATE users SET age=age+10 WHERE id%2=0;//取id为偶数的age加10

    二、多表更新

    1、语法:
    UPDATE table_references SET col_name1={expr1 | DEFAULT} [,col_name2={expr2 | DEFAULT}]... [WHERE where_condition]
    其中table_references表示
    table_reference {[INNER|CROSS] JOIN|{LEFT|RIGHT} [OUTER] JOIN} table_reference ON conditional_expr
    其中INNER JOIN,内连接
    在MySQL中,JOIN, CROSS JOIN 和 INNER JOIN 是等价的。
    LEFT [OUTER] JOIN ,左外连接
    RIGHT [OUTER] JOIN,右外连接

    2、eg:

    UPDATE tdb_goods 
    INNER JOIN tdb_goods_cates 
    ON goods_cate=cate_name 
    SET goods_cate=cate_id;//把tdb_goods表中的goods_cate改为tdb_goods_cates表中的cate_id
    //tdb_goods:更改的子表
    //INNER JOIN:内连接
    //tdb_goods_cates:关联的父表
    //goods_cate=cate_name:两个表对应列的关系
    //goods_cate=cate_id; 设置值
    查看全部
  • @MySQL---INSERT的三种方式
    一、INSERT...VALUES
    1、语法

    INSERT [column_name] VALUES(...)[,(...),(....)];
    比较常用,一次性插入多条记录,可输入表达式甚至是函数。
    2、eg:

    INSERT test VALUES(NULL,'Tom');//插入单条记录
    INSERT test VALUES(NULL,'John'),(DEFAULT,'Jim');//插入多条记录

    二、INSERT...SET
    1、语法

    INSERT tb_name SET column_name={expr|default}
    可子查询,但只能插入一条记录。
    2、eg:


    三、INSERT...SELECT
    1、语法

    INSERT table_name [(colname...)] SELECT...
    数据从一个表插入到另一个表。
    2、eg:

    INSERT test SELECT username FROM users WHERE age >=30; // 字段不匹配提示
    INSERT test (username) SELECT username FROM users WHERE age >=30;
    INSERT tdb_goods_cates(cate_name) 
    SELECT goods_cate 
    FROM tdb_goods 
    GROUP BY goods_cate;//在表tdb_goods_cates中插入tdb_goods中的cate
    查看全部
  • @MySQL---插入记录===INSERT

    1、语法
    INSERT [INTO] table_name [(column_name,...)] {VALUES|VALUE} ({expr|DEFAULT},...),(...),...;

    column_name 表示列名
    expr 表示表达式
    DEFAULT 可直接书写,表示默认值
    当字段有自动增加的属性后,在插入表的所有字段的数据时,可以填写 NULL 或 DEFAULT 这两个关键字,表示按照原先默认自动增长的属性
    插入多行数据时,可以用逗号隔开

    2、eg:

    CREATE TABLE users(
    id TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20) NOT NULL UNIQUE KEY,
    password VARCHAR(32) NOT NULL,
    age TINYINT UNSIGNED NOT NULL DEFAULT 10,
    sex BOOLEAN NOT NULL
    );    //创建users表
    
    INSERT users 
    VALUES(DEFAULT,'Tom','123',1+9*2,1),
    (NULL,'John',md5('123'),DEFAULT,0); //插入两条记录
    查看全部
  • 出现在其他sql语句内的select子句叫子查询

    查看全部
  • having where分组条件

    查看全部
  • insert tbl_name [(col_name)] select ....

    通过select查询到的结果插入表中

    查看全部
  • insert tbl_name set col_name ={expr|default} 插入方式2 ,可以使用子查询

    查看全部
  • 约束与修改数据表总结

    一、约束
        a.按功能划分:NOT NULL, PRIMARY KEY, UNIQUE KEY, DEFAULT, FOREIGN KEY
        b.按数据列的数目划分:表级约束, 列级约束
    二、修改数据表
        a.针对字段的操作:添加/删除字段、修改列定义、修改列名称等。
        b.针对约束的操作:添加/删除各种约束
        c.针对数据表的操作:数据表更名(两种方式)

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

    2018-05-24

  • @MySQL——修改列定义和更名数据表

    1.修改列定义
    ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST |AFTER col_name];

    eg:

    ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST; //将id字段的位置提到第一列
    SHOW COLUMNS FROM users2;
    ALTER TABLE users2 MODIFY id TINYINT UNSIGNED NOT NULL; //修改数据类型,需注意数据丢失的问题

    2.修改列名称
    ALTER TABLE tbl_name CHANGE [COLUMN] col_name new_col_name column_definition [FIRST|AFTER col_name];

    eg:

    ALTER TABLE users2 CHANGE pid p_id TINYINT UNSIGNED; //修改列名称

    3.数据表更名
    方法1
    ALTER TABLE tbl_name RENAME [TO/AS] new_tbl_name

    eg:

    ALTER TABLE users2 RENAME (to/as) users3;
    SHOW TABLES;

    方法2
    RENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2] ...

    eg:

    RENAME TABLE users5 TO users2;

    尽量少使用数据表的列名及表名的更名。

    查看全部
  • @MySQL——删除约束

    1.删除主键约束:

    ALTER TABLE table_name DROP PRIMARY KEY;

    2.删除唯一约束:

    ALTER TABLE table_name DROP {INDEX|KEY} index_name;

    其中的 index_name 可通过 SHOW INDEX FROM table_name\G; 查询

    3.删除外键约束:

    ALTER TABLE table_name DROP FOREIGN KEY fk_symbol;

    其中 fk_symbol 可通过 SHOW CREATE TABLE table_name; 找到系统为外键约束添加的名字。

    查看全部
  • @MySQL——添加约束

    1.添加主键约束
    CONSTRAINT_PK主键名字为PK
    ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
    eg:

    ALTER TABLE users ADD CONSTRAINT PK_users_id PRIMARY KEY (id);

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

    ALTER TABLE users ADD UNIQUE (username);

    3.添加外键约束
    ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name](index_col_name,...) reference_definition
    eg:

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

    4.添加/删除默认约束 DEFAULT
    ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
    eg:

    ALTER TABLE users ADD age TINYINT UNSIGNED NULL;
    ALTER TABLE users ALTER age SET DEFAULT 15;
    ALTER TABLE users ALTER age DROP DEFAULT;
    查看全部
  • @MySQL——添加/删除列
    1、添加单列:如果指定FIRST,则在整个表的最前方,默认不写为整个表的最后方;如果指定AFTER col_name,则在col_name的后面。
    ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST  AFTER col_name]

    eg:

    ALTER TABLE users1 ADD age TINYINT NOT NULL;
    ALTER TABLE users1 ADD password VARCHAR(32) NOT NULL AFTER username;
    ALTER TABLE users1 ADD truename VARCHAR(20) NOT NULL FIRST;

    2、添加多列:无法指定FIRST/AFTER、只能默认为最后方。
    ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition,...)

    eg:

    ALTER TABLE users1 ADD (height TINYINT NOT NULL,weight TINYINT NOT NULL);

    3、删除单列
    ALTER TABLE tbl_name DROP [COLUMN] col_name

    eg:

    ALTER TABLE users1 DROP truename;

    4、删除多列(Ps:删除一列的同时,新增一列。其间用逗号隔开)
    ALTER TABLE tbl_name DROP [COLUMN] col_name, DROP [COLUMN] col_name

    eg:

    ALTER TABLE users1 DROP password,DROP age;
    查看全部

举报

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

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