MySQL_YouTube_mosh老师_3小时基础课程要点

1. 查询

SELECT   输出的列

 FROM   查询的表单名称

 WHERE   查询条件

1.1 SELECT

1.1.1 查询结果显示全部的列   

         SELECT *

1.1.2 查询指定的列

         SELECT 列名1,列名2,···   (列名之间用逗号分隔)

1.1.3 输出的列换名字

         SELECT 列名 AS 新名字

1.1.4 输出的结果去掉重复值

         SELECT DISTINCT 列名

1.1.5 满足条件的输出结果指定值

         SELECT 'AAA' AS ‘number’   (新列名,名字是number,这一列的值为AAA)

         举例:查询在2020年上半年的订单,并新增一列,列名是阶段,标记为2020年上半年;

         SELECT  '2020年上半年'  AS '阶段'

         WHERE  order_time  BETWEEN  '2020-01-01'  AND  '2020-06-30'

1.2 WHERE

1.2.1 筛选符号

        >   <   =   >=   <=    !=    <>

1.2.2 关系筛选

        AND   OR    NOT

       AND的优先级高于OR,遇到需要先判断OR的情况,要加()

1.2.3 日期筛选

        日期格式:‘YYYY-MM-DD’     用筛选符号筛选

1.2.4 BETWEEN .. AND ..

        同时条件需满足大于A小于B时,可以用 between A and B

1.2.5 LIKE 用于判断字符串是否含有某个字符串

        WHERE XX LIKE ‘b%’    表示XX中以b开头的字符,后面可以有0及其以上字符,%代表任意数量的字符,可为0

        WHERE XX LIKE ‘_b’     表示XX中以b结束的字符串,前面还有一个字符,_代表一个数量的字符,可为0

        NOT LIKE 用于判断字符串是否不含有某个字符串

1.2.6 REGEXP

        作用和LIKE一致,但更简洁

        WHERE XX REGEXP ‘field’   表示XX中含有field的字符,field前后可以有0及其以上字符

        REGEXP  ‘^field’  表示以field开头

        REGEXP  ‘field$’  表示以field结尾

        REGEXP  ‘field | mac | rose’   表示含有这三个中的一个即可

        REGEXP  ‘[gim]e’   表示含有 ge、im 或者me即可

        REGEXP  ‘[a-e]h’   表示含有 ah/bh/ch/dh/eh即可

1.2.7  IS NULL

        判断某个值是否为空值

        IS NOT NUL   判断某个值是否不是空值

1.3  ORDER BY

        ORDER BY xx    以xx字段升序排列,可以加不止一个字段,按照字段顺序排序

        ORDER BY xx  DESC  以xx字段降序排列

        若有两个字段,可以一个升序排列,一个降序排列:

        ORDER BY xx, yy DESC

1.4  LIMIT  决定返回的个数和行数

        LIMIT 3   表示结果返回前三个记录

        LIMIT 6,3 标识从第7个开始,返回三条记录

1.5  表和表的连接

1.5.1 INNER JOIN

        SELECT *

        FROM 表单1

        JOIN 表单2 ON 表单1.字段 = 表单2.字段

1.5.2 一个表的自连接

        SELECT *

        FROM 表单1 a

        JOIN 表单2 b ON a.字段1 = b.字段2

1.5.3 连接多个表

        SELECT *

        FROM 表单1

        JOIN 表单2 ON 表单1.字段 = 表单2.字段

        JOIN 表单3 ON 表单1.字段 = 表单3.字段

1.5.4 复合主键(需要两列才能唯一确定一个记录)

        SELECT *

        FROM 表单1

        JOIN 表单2 ON 表单1.字段 = 表单2.字段 AND 表单1.字段2 = 表单2.字段2

1.5.5 OUTER JOIN

         外部连接的用处,例如表单1的客户名id是007,但是表单2里没有007,inner join的结果是没有007这个客户了。但是外部连接的结果保留表单1的007客户,后面的连接值为NULL

        SELECT *

        FROM 表单1

        LEFT JOIN 表单2 ON 表单1.字段 = 表单2.字段   (表单1的记录全部在,不满足条件时为NULL)

        RIGHT JOIN 表单2 ON 表单1.字段 = 表单2.字段   (表单2的记录全部在,不满足条件时为NULL)

1.5.6 USING

        当表单1和表单2的列名一样时,可直接用using

        SELECT *

        FROM 表单1

        USING 字段

1.5.7 CROSS JOIN

        交叉连接,例如表单1有m条记录,表单2有n条记录,则连接后有m*n条数据

        SELECT *

        FROM 表单1

        CROSS JOIN 表单2 

1.6 UNION

        将两次的查询结果合并,以行的形式合并,列数必须一致

        查询1

        UNION

        查询2

2. 增加

2.1 插入一行

        INSERT INTO 表单名

        VALUES (每一列对应的值,有default值时,可以不输入具体值,输入default)

        当只有某几个列需要新增数值,其他列保持空值时,可以用:

        INSERT INTO 表单名(列名,用逗号分隔)

        VALUES (每一列对应的值)

2.2 插入多行

        INSERT INTO 表单名

        VALUES (行1),(行2),(行3)...

2.3 复制表格

        CREATE TABLE 新表单名 AS

        SELECT * FROM 需要复制的表单名

        或者将查询结果创建为新的表格

        CREATE TABLE 新表单名 AS

        SELECT xx FROM xx WHERE xx  (查询语句)

3. 改

3.1 更新一行

        UPDATE 表单名

        SET 列名1 = 赋值1(可以是公式),列名2 = 赋值2,...

        WHERE 需要更改的条件(eg:customer_id = 1)(where后面可以是查询语句 eg:customer_id = (select client_id from .. where ..),当查询出来的结果不止一个时, customer_id 后面的等于号,换成  IN)

4. 删除

4.1 按条件删除行

        DELETE FROM 表单1

        WHERE  (可以加查询语句,eg xx = (select xx from xx where xx))

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值