MySQL—常用语句汇总

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL—常用语句汇总

Do what you say,say what you do.


常用语句


创建-删除数据库


  1. 创建数据库
    CREAT DATABASE <表名>;

    CREAT DATABASE IF NOT EXISTS <表名>;
  2. 删除数据库
    DROP DATABASE <表名>;

    DROP DATABASE IF EXISTS <表名>;


创建-更改-删除表


  1. 创建表

方法一:直接创建表

CREATE TABLE +表名

CREATE TABLE IF NOT EXISTS +表名

CREATE TABLE <表名>
  列名 类型 其他属性,
  列名 类型 其他属性,
  列名 类型 其他属性
);

属性:

  • 默认:DEFAULT
  • 非空:NOT NULL
  • 唯一值:UNIQUE
  • 主键:PRIMARY KEY
  • 自动增加:AUTO_INCREMENT
CREATE TABLE
[IF NOT EXISTS] table_name -- 不存在才创建,存在就跳过
(column_name1 data_type1 -- 列名和类型必选
   [ PRIMARY KEY -- 可选的约束,主键
   | FOREIGN KEY -- 外键,引用其他表的键值
   | AUTO_INCREMENT -- 自增ID
   | COMMENT comment -- 列注释(评论)
   | DEFAULT default_value -- 默认值
   | UNIQUE -- 唯一性约束,不允许两条记录该列值相同
   | NOT NULL -- 该列非空
   ], ...
) [CHARACTER SET charset] -- 字符集编码
[COLLATE collate_value] -- 列排序和比较时的规则(是否区分大小写等)


5d27dff98cd74ec8a66a03696c8e8d8f.png

方法二:从另一张表复制表结构创建表

CREATE TABLE table_name LIKE table_name_old


方法三:从另一张表的查询结果创建表

CREATE TABLE table_name AS SELECT * FROM table_name_old WHERE options


2、更改表

ALTER TABLE +表名

添加列:ADD

修改:MODIFY

删除列:DROP
该列名:CHANGE

alter table user_info add school varchar(15) after level;
#增加列在某列之后
alter table 增加的表格 add 增加列的名称 数据类型 位置(after level 在level 之后)
alter table user_info change job profession varchar(10);
#更换列的名称及数据类型
alter table user_info change 原列名 修改列名 修改数据类型
alter table user_info modify achievement int(11) default 0;
#更改数据类型
alter table 表名 modify 修改列名称 数据类型 默认值等


  1. 删除表
    DROP TABLE [IF EXISTS] 表名1 [, 表名2]


插入-更新-删除数据


  1. 插入单行
    INSERT INTO +表名 VALUES (值1,值2,值3……)

注意:所有列字段都要赋值

INSERT INTO +表名(列名1,列名2,列名3……) VALUES (值1,值2,值3……)

2、插入多行

INSERT INTO <表名>(列1,列2,列3……) 
VALUES (值1,值2,值3……),
       (值1,值2,值3……),
     (值1,值2,值3……)
        ……;


  1. 更新单行
    UPDATE <表名> SET 列1 = 值1,列2 = 值2,…… WHERE+条件
update invoices 
set payment_total = default, payment_date = null 
where invoice_id = 1


4、更新多行
只需将“更新单行”WHERE语句修改即可


5、删除行

方法一:根据条件删除

delete from table_name where 条件 order by 列名 limit 行数

方法二:全部删除(表清空,包含自增计数器重置)
truncate table_name

delete from invoices 
where client_id = (
  select * 
  from clients 
  where name = 'Myworks'
)


常用聚合函数


  1. SUM()–求和
  2. AVG()–平均值
  3. MAX()–最大值
  4. MIN()–最小值
  5. COUNT()–计数,不计算空值
  6. COUNT(*)–计数,计算所有行
  7. COUNT(DISTINCT key word)–去除重复值计数
  8. ORDER BY --升序
  9. ORDER BY…DESC --降序
  10. WHERE --分组之前筛选数据
  1. HAVING --分组之后筛选数据
select 
  client_id,
  sum(invoice_total) as total_sales,
  count(*) as number_of_invoice
from invoices 
group by client_id 
having total_sales > 500 and number_of_invoices > 5;


  1. ROLLUP–在最后一行加一行每个组或者整个结果集的汇总值
select 
  state,
  city, 
  sum(invoice_total) as total_sales 
from invoices i 
join clients c using (client_id)
group by state,city with rollup


13、EXISTS–代替IN,效率高
——IN运算符中的子查询,会生成大量结果集;EXISTS中子查询的结果没有直接返回外部的查询,故而使用EXISTS效率更高。

select * 
from clients c 
where exists(
  select client_id 
  from invoices 
  where client_id = c.client_id
)


#--------Select clients that have an invoice
select *
from clients
where client_id in (
  select distinct client_id 
  from invoices
)

thank for your patience~

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 SQL 关系型数据库
mysql的基本语句
mysql的基本语句
|
6月前
|
SQL 关系型数据库 MySQL
2. MySQL语句
2. MySQL语句
|
SQL 关系型数据库 MySQL
MySQL常用语句
MySQL常用语句
221 0
|
6月前
|
SQL 存储 关系型数据库
MySQL特点和基本语句
MySQL特点和基本语句
66 0
|
关系型数据库 MySQL
最常用MySQL语句
最常用MySQL语句
77 1
|
关系型数据库 MySQL
MySQL8 with语句
MySQL8 with语句
134 0
|
SQL 关系型数据库 MySQL
mysql的语句详解
mysql的语句详解
78 1
|
SQL 关系型数据库 MySQL
|
关系型数据库 MySQL
MYSQL语句。
MYSQL语句。
107 0
MYSQL语句。
|
SQL 存储 关系型数据库
MySQL实用语句及小技巧
前言 我们在之前已经过了一遍sql的基本操作, 那么那些基本操作如何使用、如何排列才能最大程度发挥服务器的性能呢?如何才能把他们连接起来成为能为我们所服务的强大数据库系统呢? 本期我们就将引入一些配合sql核心语句的使用技巧和一些灵活的理解