MySQL基础语句

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 如今数据库可视化工具已经很强大了,往往只需要点开软件点击鼠标就可以完成很多操作。例如:Navicat Premium (收费,功能齐全。收费不过可以破解)、SQLyong、DBeaver等软件虽然现在大多数情况下不需要手写SQL语句了,但是最基本的还是要会,起码能看懂是什么意思。最近使用了SQL语句,所以记录一下。

0 写在前面

如今数据库可视化工具已经很强大了,往往只需要点开软件点击鼠标就可以完成很多操作。例如:Navicat Premium (收费,功能齐全。收费不过可以破解)、SQLyong、DBeaver等软件

虽然现在大多数情况下不需要手写SQL语句了,但是最基本的还是要会,起码能看懂是什么意思。

最近使用了SQL语句,所以记录一下。

1 数据库基本知识

本文使用有格式的编写器,例如:高亮的是SQL的语法,普通灰色字体的是个人自定义的语段。请注意识别。

在这里插入图片描述

创建数据库

CREATE DATABASE database_name

删除数据库

DROP DATABASE database_name

选择数据库

USE database_name

2数据库表基本知识

创建数据表

CREATE TABLE table_name (column_name column_type)

删除数据表

DROP TABLE table_name

更新数据表信息

(1)添加表字段

ALTER TABLE table_name ADD new_column DATATYPE

使用FIRST关键字可以将新增列的顺序调整至数据表的第一列

ALTER TABLE table_name ADD new_column DATATYPE FIRST

使用AFTER关键字可以将新增列调整至数据表的指定列之后

ALTER TABLE table_name ADD new_column DATATYPE AFTER old_column

(2)删除表字段

ALTER TABLE table_name DROP old_column

(3)修改表字段类型

ALTER TABLE table_name MODIFY column_name NEW_DATATYPE

(4)修改字段名称

ALTER TABLE table_name CHANGE old_column_name new_column_name DATATYPE

3 操作数据基本知识

插入数据

INSERT INTO table_name (column1, column2,column3...columnN)
VALUES
(value1, value2, value3...valueN);

查询数据

SELECT column1, column2, column3...columnN FROM table_name

  (1)使用*可以替代字段名,SELECT语句会返回表的所有字段

    例:

    SELECT * FROM table_name

  (2)可以使用WHERE语句来包含任何条件

    例:

SELECT * FROM table_name WHERE column=1

  (3)可以使用LIMIT属性设定返回的记录数

    例:返回查询结果的前三条记录

SELECT * FROM table_name LIMIT 3

    例:返回查询结果的第三条记录

SELECT * FROM table_name LIMIT 2,1  
(2指的是第几条数据(从0开始计数),1指的是从2开始返回几条数据)

  (4)可以使用OFFSET指定开始查询的偏移量,默认情况下偏移量为0

    例:

    SELECT * FROM table_name LIMIT 2 OFFSET 3 等于 SELECT * FROM table_name LIMIT 2,3

更新数据

UPDATE table_name SET column1=value1, column2=value2
WHERE condition

删除数据

DELECE FROM table_name
WHERE condition

LIKE子句

LIKE子句中使用%号来表示任意字符,其的效果类似正则表达式中的*,如果没有使用%,那么LIKE的效果等价于=

SELECT * FROM table_name
WHERE column1 LIKE %condtion%

UNION

SELECT column1, column2, column3...columnN FROM table_a
[WHERE condition]
UNION [ALL | DISTINCT]
SELECT column1, column2, column3...columnN FROM table_b
[WHERE condition]

  NION的作用的连接两个查询结果集

  DISTINCT的作用是对两个结果集进行去重处理,默认情况下已经是DISTINCT的结果了

  ALL的作用的不对两个结果集进行去重处理

ORDER BY

SELECT * FROM table_name
ORDER BY column1 [ASC | DESC]

​ ASC:将结果集按column1升序排列,默认情况下使用升序排序

​ DESC:将结果集按column1降序排列

GROUP BY

  把数据按照指定列(可以是一列或者多列)进行分组,通常和计算函数COUNT()还有SUM(),AVG()等求值函数一起使用

​ 把数据按照指定列(可以是一列或者多列)进行分组,通常和计算函数COUNT()还有SUM(),AVG()等求值函数一起使用

  例:根据column1将数据进行分组,并且统计每种数据的记录数

SELECT column1, COUNT(*) FROM table_name
GROUP BY column1
WITH ROLLUP可以将GROUP BY的统计结果集基础上再做相同的统计(SUM,AVG....)

4操作多个表查询

INNER JOIN

  INNER JOIN被称为内连接或者等值连接,获取两个表中字段匹配关系的记录

LEFT JOIN

  LEFT JOIN被称为左连接,获取左边所有记录,右表没有的记录补为NULL

RIGHT JOIN

  RIGHT JOIN被称为右连接,获取右边所有数据,左表没有的记录补为NULL

05 大小写问题

在使用sql语句的时候,

SQL 关键字和函数名 SQL 的关键字和函数名不区分大小写。

MySQL 在 Windows 系统下不区分大小写,但在 Linux 系统下默认区分大小写。因此,数据库名、表名和字段名,都不允许出现任何大写字母,避免节外生枝。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
SQL语句编写的练习(MySQL)
这篇文章提供了MySQL数据库中关于学生表、课程表、成绩表和教师表的建表语句、数据插入示例以及一系列SQL查询练习,包括查询、排序、聚合和连接查询等操作。
|
6月前
|
SQL 存储 缓存
SQL语句在MySQL中是如何执行的
SQL语句在MySQL中是如何执行的
80 0
|
Java 关系型数据库 MySQL
MySQL数据库基础
文章主要介绍MySQL数据库中一些常见的操作,为专栏文章,系列介绍
152 0
MySQL数据库基础
|
SQL 存储 关系型数据库
MySQL常用基础 - 小白必看(二)
概念:是一个数据定义语言 该语言部分包括: 1、对数据库的常用操作 2、对表结构的常用操作
114 0
MySQL常用基础 - 小白必看(二)
|
存储 SQL 关系型数据库
MySQL数据库系列(八)-------高级语句二
可以被当作是虚拟表或存储查询
92 0
MySQL数据库系列(八)-------高级语句二
|
SQL 关系型数据库 MySQL
|
存储 SQL 缓存
MySQL数据库系列(一)------基础
数据不会随程序结束而消失
156 0
MySQL数据库系列(一)------基础
【Java 基础】Java 数据类型和 MySql 数据类型对应表
【Java 基础】Java 数据类型和 MySql 数据类型对应表MySQL 数据类型对应 Java 数据类型 类型名称 显示长度 数据库类型 JAVA 类型 JDBC 类型索引 (int) 描述 VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TEXT 65535 VARCHAR java.lang.String -1 INTEGER 4 INTEGER UNSIGNED java.lang.Long 4 TINYINT
|
SQL 安全 关系型数据库
Mysql数据库连接池的简单实现(基于C++11), 基础学完, 包教包会.
Mysql数据库连接池的简单实现(基于C++11), 基础学完, 包教包会.
|
SQL 存储 关系型数据库
MySQL创建数据表基础篇
MySQL创建数据表基础篇