sql语句精讲

目录

一、MySql的细节知识

SQL语句的结束

SQL语句的大小写

SQL语句中的空格

SQL查询结果并排序

[WHERE和ORDER BY的位置](#WHERE和ORDER BY的位置)

常用数据类型

MYSQL比较运算符

MYSQL算术运算符​编辑

MYSQL逻辑运算符

运算符的优先级

二、MySql数据库的基本操作

1.创建数据库

2.选择数据库,使用数据库名

3.删除数据库

4.MySQL注释

三、MYSQL数据表的基本操作

[1.创建数据表 CREATE TABLE <表名>](#1.创建数据表 CREATE TABLE <表名>)

2.插入数据:INSERT语句

[2.1 基本插入](#2.1 基本插入)

[2.2 插入多行数据](#2.2 插入多行数据)

[2.3 插入部分列](#2.3 插入部分列)

[2.4 插入JSON数据](#2.4 插入JSON数据)

3.更新数据:UPDATE语句

[3.1 更新单个字段](#3.1 更新单个字段)

3.2更新多个字段

[3.3 使用条件表达式](#3.3 使用条件表达式)

[3.4使用ORDER BY和LIMIT](#3.4使用ORDER BY和LIMIT)

3.5利用JOIN进行复杂更新

3.6使用子查询更新

4.删除数据:DELETE语句

[4.1 DELETE语句的基本语法](#4.1 DELETE语句的基本语法)

4.2删除特定行

[4.3 使用比较运算符](#4.3 使用比较运算符)

[4.4 使用逻辑运算符](#4.4 使用逻辑运算符)

4.5删除满足IN条件的行

[4.6 使用LIKE操作符进行模糊删除](#4.6 使用LIKE操作符进行模糊删除)

注意事项

写在最后的话


一、MySql的细节知识

SQL语句的结束

多条SQL语句必须以英文分号(;)分隔。MySQL如同多数DBMS一样,不需要在单条SQL语句后加分号。但特定的DBMS可能必须在单条SQL语句后加上分号。当然,如果愿意可以总是加上分号。事实上,即使不一定需要,但加上分号肯定没有坏处。如果你使用的是mysql命令行,必须加上

分号来结束SQL语句。

sql 复制代码
#加分号
SELECT * FROM TABLE_name;
#不加分号
SELECT * FROM TABLE_name

SQL语句的大小写

请注意,SQL语句不区分大小写,因此SELECT与select是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样做使代码更易于阅读和调试。

sql 复制代码
#小写
select * from person
#大写
SELECT * FROM person
#大小写混合
SELECT * from person

不过,一定要认识到虽然SQL是不区分大小写的,但有些标识符(如数据库名、表名、列名)可能不同。

SQL语句中的空格

在处理SQL语句时,其中所有空格都被忽略。SQL语句可以在一行上给出,也可以分成许多行。

sql 复制代码
SELECT * from TABLE_name
#空格不影响结果
SELECT * from      TABLE_name
#换行不影响结果
SELECT *
FROM   TABLE_name

SQL查询结果并排序

升序:ASC

降序:DESC

sql 复制代码
#ASC升序
select * from person order by age ASC;  
#DESC降序
select * from person order by age DESC;  

其中,默认为升序方向;如需降序,必须显式加上DESC。

可以对多个列进行排序,并且多个列之间的排序方向可以不同。

WHERE和ORDER BY的位置

1.group by:从英文上理解 就是分组的意思。需要和 聚合函数(例如:max(),count(),avg()等)配合使用,使用时至少有一个分组标识字段(例如某一列的列名)。

2.oder by :从英文上理解就是排序。一般后面跟上某一列的列名,然后查询到的数据会以该列的大小顺序进行排序显示,默认的是ASC(从小到大排列),desc(大到小排列)

  1. where: 对查询到的内容进行筛选,where后面跟上限定条件,where使用在分组和排序之后。

  2. having:作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

ORDER BY子句的位置】 在给出ORDER BY子句时,应该保证它位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY之后。使用子句的次序不对将产生错误消息。

WHERE子句的位置】 在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误。

常用数据类型

MYSQL比较运算符

MYSQL算术运算符

MYSQL逻辑运算符

运算符的优先级

二、MySql数据库的基本操作

1.创建数据库

创建数据库语句:create database [数据库名]

sql 复制代码
#创建数据库
create database test_name 

2.选择数据库,使用数据库名

sql 复制代码
#使用数据库
use test_name;

3.删除数据库

语句:DROP DATABASE [IF EXISTS 数据库名]

"IF EXISTS"表示当数据库名test_name存在时,才执行删除语句,避免报错。

sql 复制代码
#删除数据库
DROP DATABASE IF EXISTS test_name;

4.MySQL注释

  • 单行注释使用#或 --,不同之处在于,#后面直接跟注释,--后面加个空格才能写注释

  • 多行注释使用/* */注释符 。/用于注释内容的开头,/用于注释内容的结尾。

三、MYSQL数据表的基本操作

1.创建数据表 CREATE TABLE <表名>

sql 复制代码
#创建数据库基本语法
CREATE TABLE table_name (
  column1 datatype constraint,
  column2 datatype constraint,
  column3 datatype constraint,
  ...
  PRIMARY KEY (one or more columns)
);
#例子:创建student表
create table student (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age int(3) NOT NULL ,
  major varchar(50)
  PRIMARY KEY (id)
);

其中,CREATE TABLE关键字表示创建数据表,table_name表示数据表的名称,column1、column2、column3等表示数据表中的列名,datatype表示列的数据类型,constraint表示列的约束条件,例如NOT NULL、UNIQUE、DEFAULT等。

在通用的SQL语句中,PRIMARY KEY约束用于定义数据表的主键,主键可以由一个或多个列组成,用括号括起来并用逗号分隔。

2.插入数据:INSERT语句

插入数据是数据库操作的基础,了解INSERT语句的多种用法对于高效地管理MySQL数据库至关重要。

2.1 基本插入

最基本的INSERT语句用于向表中添加单行数据。其语法如下:

sql 复制代码
#基本语法
INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);
#例子
INSERT INTO student (name, age, major) VALUES ('张三',19, '计算机科学与技术');

2.2 插入多行数据

一次性插入多行数据,这对于批量数据处理非常有用。语法如下:

sql 复制代码
#基本语法
INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4), ...;
#例子
INSERT INTO student(name, age) VALUES ('张三', 34), ('李四', 25);

2.3 插入部分列

如果表中的其他列有默认值或允许为空,可以只插入部分列的数据。例如:

sql 复制代码
#基本语法
INSERT INTO table_name (column1) VALUES (value1);
#例子
INSERT INTO student(major) VALUES ('人工智能');

2.4 插入JSON数据

对于存储JSON数据的列,可以这样插入:

sql 复制代码
INSERT INTO table_name (json_column) VALUES ('{"key": "value"}');

通过这些丰富多样的INSERT用法,你可以灵活地处理各种数据插入场景,从而更有效地管理MySQL数据库。

3.更新数据:UPDATE语句

在MySQL中,UPDATE语句是用来修改表中现有数据的强大工具。它的基本语法

sql 复制代码
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

3.1 更新单个字段

最基本的用法是更新表中单个字段的值。例如,假设我们要将学生表中张三的年龄更新为20:

sql 复制代码
UPDATE student
SET quantity = 20
WHERE name = '张三';

3.2更新多个字段

UPDATE可以同时修改多个字段。例如,张三的名称改为"李四",年龄改为21:

sql 复制代码
UPDATE student
SET name = '李四', age = 21
WHERE name = '张三';

3.3 使用条件表达式

可以使用更复杂的条件表达式来更新特定的数据。例如,增加所有年龄少于10的人的age:

sql 复制代码
UPDATE student
SET age= age+ 10
WHERE age< 10;

3.4使用ORDER BY和LIMIT

在某些情况下,你可能需要按特定顺序更新记录,并限制更新的行数。例如,仅更新年龄最小的两位同学的专业:

sql 复制代码
UPDATE student
SET major= '计算机技术'
ORDER BY age DESC
LIMIT 2;

3.5利用JOIN进行复杂更新

当需要根据其他表中的数据来更新一个表时,可以使用JOIN语句。例如,如果我们有一个供应商表suppliers和水果表fruits,且想根据供应商的某些条件来更新水果的价格,可以这样做:

sql 复制代码
UPDATE fruits
JOIN suppliers ON fruits.supplier_id = suppliers.id
SET fruits.price = fruits.price * 1.05
WHERE suppliers.country = 'China';

3.6使用子查询更新

在某些情况下,你可能需要根据从同一表或不同表中检索到的数据来更新记录。例如,假设你想将最畅销水果的价格提高10%:

sql 复制代码
UPDATE fruits
SET price = price * 1.1
WHERE name = (
    SELECT name
    FROM sales
    GROUP BY name
    ORDER BY SUM(quantity) DESC
    LIMIT 1
);

4.删除数据:DELETE语句

在MySQL中,DELETE语句是用来删除表中一行或多行数据的强大工具。理解其多样的用法对于有效管理数据库至关重要。以下是一些常用的DELETE语句用法:

4.1 DELETE语句的基本语法

基本的DELETE语句格式如下:

sql 复制代码
DELETE FROM table_name WHERE condition;
  • table_name 是你想要从中删除记录的表名。
  • WHERE condition 是用来指定哪些行应该被删除的条件。如果省略了WHERE子句,所有行都会被删除,这将清空表但不会删除表本身。

4.2删除特定行

根据特定条件删除行。例如,删除学生表中所有"张三"的记录:

sql 复制代码
DELETE FROM student WHERE name = '张三';

4.3 使用比较运算符

可以使用比较运算符(如<, >, <=, >=)来删除行。例如,删除所有年龄少于20的学生:

sql 复制代码
DELETE FROM fruits WHERE age< 20;

4.4 使用逻辑运算符

使用AND、OR等逻辑运算符来组合条件。例如,删除名称为"Apple"且数量小于10的记录:

sql 复制代码
DELETE FROM fruits WHERE name = 'Apple' AND quantity < 10;

4.5删除满足IN条件的行

当需要删除匹配特定列表中值的行时,可以使用IN。例如,删除所有名称是"Apple","Banana",或"Orange"的水果:

sql 复制代码
DELETE FROM fruits WHERE name IN ('Apple', 'Banana', 'Orange');

4.6 使用LIKE操作符进行模糊删除

使用LIKE操作符删除满足模糊匹配条件的行。例如,删除所有名字以"A"开头的水果:

sql 复制代码
DELETE FROM fruits WHERE name LIKE 'A%';

注意事项

数据表是一种非常重要的数据结构,它可以用来存储和管理大量的数据。在使用数据表时,有几个基本的操作需要注意。

创建数据表 :创建数据表时需要定义表名、列名和数据类型等信息。在定义列名时应该尽可能清晰地描述列的含义和数据类型,以方便后续的操作和查询。同时还需要考虑数据表的主键、外键和索引等约束条件,以保证数据的一致性和完整性。

查看数据表 :查看数据表时可以使用SELECT语句,通过指定表名和列名等条件,可以查看表中的数据。同时也可以使用DESCRIBE语句查看数据表的结构信息,包括表名、列名、数据类型和约束条件等。

修改数据表 :在数据表的使用过程中,可能需要修改表的结构信息,包括添加、删除和修改列等。在进行修改操作时需要考虑数据表的约束条件,以避免影响数据的完整性和一致性。

删除数据表 :删除数据表时需要非常小心,因为数据表中存储的数据可能非常重要。在删除数据表时需要确认是否备份了相关数据,并且要避免误删操作。同时还要考虑数据表的约束条件,以避免影响其他数据表的使用。

需要注意的是,不同的数据库系统可能会有不同的语法和操作方式,因此在具体操作时需要根据所使用的数据库系统进行相应的调整。此外,在进行任何操作之前,一定要备份数据,以防止数据丢失。

写在最后的话

通过本篇博客,我们深入探讨了MySQL中的数据修改基础操作:MySQL的细节知识、INSERT、UPDATE、DELETE语句。从创建一个简单的水果表,学生表开始,我们逐步展示了如何插入新数据、更新现有数据,以及删除不需要的数据。这些操作是数据库管理中非常重要的技能。掌握它们不仅有助于管理和维护数据库中的数据,还能提高你处理数据的灵活性和效率。

请记住,实践是学习数据库管理的关键。我建议你在自己的数据库环境中创建这样的表,并尝试执行这些操作。随着实践的增多,你将对MySQL的使用更加得心应手。如果在学习过程中遇到任何问题,不妨继续探索或寻求帮助。祝你在MySQL的学习之旅上取得更多进步!

相关推荐
小白教程5 分钟前
MySQL数据库的安全性防护
数据库·mysql
Lion Long7 分钟前
CodeBuddy 中国版 Cursor 实战:Redis+MySQL双引擎驱动〈王者荣耀〉战区排行榜
数据库·redis·mysql·缓存·腾讯云·codebuddy首席试玩官·codebuddy
apcipot_rain3 小时前
【应用密码学】实验五 公钥密码2——ECC
前端·数据库·python
辛一一6 小时前
neo4j图数据库基本概念和向量使用
数据库·neo4j
LJianK17 小时前
关系型数据库和非关系型数据库
sql
巨龙之路7 小时前
什么是时序数据库?
数据库·时序数据库
蔡蓝7 小时前
binlog日志以及MySQL的数据同步
数据库·mysql
是店小二呀8 小时前
【金仓数据库征文】金融行业中的国产化数据库替代应用实践
数据库·金融·数据库平替用金仓·金仓数据库2025征文
炒空心菜菜8 小时前
SparkSQL 连接 MySQL 并添加新数据:实战指南
大数据·开发语言·数据库·后端·mysql·spark
专注于大数据技术栈8 小时前
Mac上安装Mysql的详细步骤及配置
mysql