searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

mysql常用操作汇总

2023-03-30 01:51:52
8
0

引言

     最近看了《sql必知必会》,趁这个机会汇总一下涉及的知识点,方便大家查阅。

 

     SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的语言。它是一种标准化的语言,可以用于执行多种任务,例如创建和修改数据库结构、向数据库中插入数据、从数据库中查询和筛选数据等。

 

     SQL 分为几个不同的部分,包括:

 

  • 数据定义语言(DDL,Data Definition Language):用于创建和修改数据库结构,例如创建表、修改表结构等;
  • 数据操作语言(DML,Data Manipulation Language):用于向数据库中插入数据、更新数据、删除数据等;
  • 数据控制语言(DCL,Data Control Language):用于控制数据库的访问权限,例如创建用户、赋予用户权限等;
  • 数据查询语言(DQL,Data Query Language):用于从数据库中查询数据。

     SQL 使用简单的语法来描述这些操作,并且可以很容易地与其他编程语言集成使用。不同的关系型数据库管理系统(RDBMS)都支持 SQL 语言,例如 MySQL、Oracle、SQL Server 等。

 

     总的来说,SQL 是一种非常重要的数据库管理语言,它可以帮助我们方便地管理和操作关系型数据库,实现各种功能。

 

检索数据

SELECT语句的基本语法

SELECT column1, column2, ...

FROM table_name;

其中,column1, column2为要检索的列,table_name为要检索的表名。

 

使用通配符*检索所有列

SELECT *

FROM table_name;

 

检索不重复的数据

SELECT DISTINCT column1, column2, ...  FROM table_name;

其中,DISTINCT关键字用于检索不重复的数据。

 

使用条件检索数据

SELECT column1, column2, ...  FROM table_name  WHERE condition;

其中,condition是一个逻辑表达式,用于检索符合特定条件的数据。

 

使用运算符检索数据

SELECT column1, column2, ...  FROM table_name  WHERE column1 operator value;

其中,operator是一个运算符,如=、<、>等。

排序数据

ORDER BY子句的基本语法

SELECT column1, column2, ...  FROM table_name  ORDER BY column1, column2, ... ASC|DESC;

其中,ORDER BY子句可以按一个或多个列进行排序,并可以选择升序(ASC)或降序(DESC)排序。

 

按单个列排序

SELECT column1, column2, ...  FROM table_name  ORDER BY column1 ASC|DESC;

 

按多个列排序

SELECT column1, column2, ...  FROM table_name  ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;

 

过滤数据

WHERE子句的基本语法

SELECT column1, column2, ...  FROM table_name  WHERE condition;

其中,condition是一个逻辑表达式,用于检索符合特定条件的数据。

 

使用比较运算符过滤数据

SELECT column1, column2, ...  FROM table_name  WHERE column1 operator value;

其中,operator是一个比较运算符,如=、<、>等。

 

使用逻辑运算符过滤数据

SELECT column1, column2, ...  FROM table_name  WHERE condition1 operator condition2;

其中,operator是一个逻辑运算符,如AND、OR、NOT等。

 

模糊匹配

LIKE关键字的基本语法

SELECT column1, column2, ...  FROM table_name WHERE column LIKE pattern;

其中,pattern是一个带有通配符的字符串,用于匹配符合特定模式的数据。

 

使用%通配符进行模糊匹配

SELECT column1, column2, ...  FROM table_name  WHERE column LIKE '%pattern%';

其中,%表示任意长度的任意字符。

 

使用_通配符进行模糊匹配

SELECT column1, column2, ...  FROM table_name  WHERE column LIKE 'pattern_';

其中,_表示任意一个字符。

 

聚合数据

聚合函数的使用

COUNT():用于计算行数或非空值的数量;

SUM():用于计算列中数值的总和;

AVG():用于计算列中数值的平均值;

MIN():用于计算列中的最小值;

MAX():用于计算列中的最大值。

 

GROUP BY子句的使用

SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1;

其中,GROUP BY子句用于按照指定的列对数据进行分组。

 

HAVING子句的使用

SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1 HAVING condition;

其中,HAVING子句用于过滤分组后的数据。

 

子查询和联结

子查询的使用

子查询是指在一个查询中嵌套另一个查询,将内部查询的结果作为外部查询的条件或结果集。可以将子查询看作是一个临时表,根据需要执行。

例如:

SELECT * FROM orders WHERE customer_id IN (SELECT customer_id FROM customers WHERE city = 'London');

内部查询的结果是"customers"表中城市为'London'的客户ID,外部查询返回所有订单中客户ID等于内部查询结果的数据。

 

联结的使用

联结是指在多个表中查找相关数据并将其合并成一个结果集。有多种联结方式,包括内联结、外联结和自联结等。

SELECT orders.order_id, customers.customer_name FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;

INNER JOIN关键字指定了联结方式,ON子句指定了连接条件,返回订单ID和客户名称。

 

删除和更新

DELETE语句

DELETE语句用于删除表中的数据,它的基本语法如下:

DELETE FROM table_name WHERE condition;

其中,condition是过滤条件,它用于指定哪些行需要被删除。

以下是一个删除示例,删除名为"customers"的表中所有姓为"Smith"的人的记录:

 

DELETE FROM customers WHERE last_name = 'Smith';

 

UPDATE语句

UPDATE语句用于更新表中的数据,它的基本语法如下:

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

其中,SET子句用于指定需要更新的列和新的值,condition用于过滤需要更新的行。

以下是一个更新示例,将名为"John"的客户的地址更新为"123 Main St.":

 

UPDATE customers SET address = '123 Main St.' WHERE first_name = 'John';

 

视图

CREATE VIEW

CREATE VIEW语句用于创建一个视图,它的基本语法如下:

CREATE VIEW view_name AS SELECT statement;

其中,SELECT statement指定了视图的数据来源。

 

以下是一个创建视图的示例,创建一个名为"customer_orders"的视图,包含顾客和订单表中的相关信息:

 

CREATE VIEW customer_orders AS

SELECT customers.customer_id, customers.first_name, customers.last_name, orders.order_id, orders.order_date

FROM customers

INNER JOIN orders

ON customers.customer_id = orders.customer_id;

 

SELECT FROM VIEW

SELECT语句可以从视图中获取数据,就像从表中获取数据一样。基本语法如下:

SELECT column1, column2, ... FROM view_name WHERE condition;

其中,condition用于指定筛选条件。

 

0条评论
作者已关闭评论
杨****萌
5文章数
1粉丝数
杨****萌
5 文章 | 1 粉丝
原创

mysql常用操作汇总

2023-03-30 01:51:52
8
0

引言

     最近看了《sql必知必会》,趁这个机会汇总一下涉及的知识点,方便大家查阅。

 

     SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的语言。它是一种标准化的语言,可以用于执行多种任务,例如创建和修改数据库结构、向数据库中插入数据、从数据库中查询和筛选数据等。

 

     SQL 分为几个不同的部分,包括:

 

  • 数据定义语言(DDL,Data Definition Language):用于创建和修改数据库结构,例如创建表、修改表结构等;
  • 数据操作语言(DML,Data Manipulation Language):用于向数据库中插入数据、更新数据、删除数据等;
  • 数据控制语言(DCL,Data Control Language):用于控制数据库的访问权限,例如创建用户、赋予用户权限等;
  • 数据查询语言(DQL,Data Query Language):用于从数据库中查询数据。

     SQL 使用简单的语法来描述这些操作,并且可以很容易地与其他编程语言集成使用。不同的关系型数据库管理系统(RDBMS)都支持 SQL 语言,例如 MySQL、Oracle、SQL Server 等。

 

     总的来说,SQL 是一种非常重要的数据库管理语言,它可以帮助我们方便地管理和操作关系型数据库,实现各种功能。

 

检索数据

SELECT语句的基本语法

SELECT column1, column2, ...

FROM table_name;

其中,column1, column2为要检索的列,table_name为要检索的表名。

 

使用通配符*检索所有列

SELECT *

FROM table_name;

 

检索不重复的数据

SELECT DISTINCT column1, column2, ...  FROM table_name;

其中,DISTINCT关键字用于检索不重复的数据。

 

使用条件检索数据

SELECT column1, column2, ...  FROM table_name  WHERE condition;

其中,condition是一个逻辑表达式,用于检索符合特定条件的数据。

 

使用运算符检索数据

SELECT column1, column2, ...  FROM table_name  WHERE column1 operator value;

其中,operator是一个运算符,如=、<、>等。

排序数据

ORDER BY子句的基本语法

SELECT column1, column2, ...  FROM table_name  ORDER BY column1, column2, ... ASC|DESC;

其中,ORDER BY子句可以按一个或多个列进行排序,并可以选择升序(ASC)或降序(DESC)排序。

 

按单个列排序

SELECT column1, column2, ...  FROM table_name  ORDER BY column1 ASC|DESC;

 

按多个列排序

SELECT column1, column2, ...  FROM table_name  ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;

 

过滤数据

WHERE子句的基本语法

SELECT column1, column2, ...  FROM table_name  WHERE condition;

其中,condition是一个逻辑表达式,用于检索符合特定条件的数据。

 

使用比较运算符过滤数据

SELECT column1, column2, ...  FROM table_name  WHERE column1 operator value;

其中,operator是一个比较运算符,如=、<、>等。

 

使用逻辑运算符过滤数据

SELECT column1, column2, ...  FROM table_name  WHERE condition1 operator condition2;

其中,operator是一个逻辑运算符,如AND、OR、NOT等。

 

模糊匹配

LIKE关键字的基本语法

SELECT column1, column2, ...  FROM table_name WHERE column LIKE pattern;

其中,pattern是一个带有通配符的字符串,用于匹配符合特定模式的数据。

 

使用%通配符进行模糊匹配

SELECT column1, column2, ...  FROM table_name  WHERE column LIKE '%pattern%';

其中,%表示任意长度的任意字符。

 

使用_通配符进行模糊匹配

SELECT column1, column2, ...  FROM table_name  WHERE column LIKE 'pattern_';

其中,_表示任意一个字符。

 

聚合数据

聚合函数的使用

COUNT():用于计算行数或非空值的数量;

SUM():用于计算列中数值的总和;

AVG():用于计算列中数值的平均值;

MIN():用于计算列中的最小值;

MAX():用于计算列中的最大值。

 

GROUP BY子句的使用

SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1;

其中,GROUP BY子句用于按照指定的列对数据进行分组。

 

HAVING子句的使用

SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1 HAVING condition;

其中,HAVING子句用于过滤分组后的数据。

 

子查询和联结

子查询的使用

子查询是指在一个查询中嵌套另一个查询,将内部查询的结果作为外部查询的条件或结果集。可以将子查询看作是一个临时表,根据需要执行。

例如:

SELECT * FROM orders WHERE customer_id IN (SELECT customer_id FROM customers WHERE city = 'London');

内部查询的结果是"customers"表中城市为'London'的客户ID,外部查询返回所有订单中客户ID等于内部查询结果的数据。

 

联结的使用

联结是指在多个表中查找相关数据并将其合并成一个结果集。有多种联结方式,包括内联结、外联结和自联结等。

SELECT orders.order_id, customers.customer_name FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;

INNER JOIN关键字指定了联结方式,ON子句指定了连接条件,返回订单ID和客户名称。

 

删除和更新

DELETE语句

DELETE语句用于删除表中的数据,它的基本语法如下:

DELETE FROM table_name WHERE condition;

其中,condition是过滤条件,它用于指定哪些行需要被删除。

以下是一个删除示例,删除名为"customers"的表中所有姓为"Smith"的人的记录:

 

DELETE FROM customers WHERE last_name = 'Smith';

 

UPDATE语句

UPDATE语句用于更新表中的数据,它的基本语法如下:

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

其中,SET子句用于指定需要更新的列和新的值,condition用于过滤需要更新的行。

以下是一个更新示例,将名为"John"的客户的地址更新为"123 Main St.":

 

UPDATE customers SET address = '123 Main St.' WHERE first_name = 'John';

 

视图

CREATE VIEW

CREATE VIEW语句用于创建一个视图,它的基本语法如下:

CREATE VIEW view_name AS SELECT statement;

其中,SELECT statement指定了视图的数据来源。

 

以下是一个创建视图的示例,创建一个名为"customer_orders"的视图,包含顾客和订单表中的相关信息:

 

CREATE VIEW customer_orders AS

SELECT customers.customer_id, customers.first_name, customers.last_name, orders.order_id, orders.order_date

FROM customers

INNER JOIN orders

ON customers.customer_id = orders.customer_id;

 

SELECT FROM VIEW

SELECT语句可以从视图中获取数据,就像从表中获取数据一样。基本语法如下:

SELECT column1, column2, ... FROM view_name WHERE condition;

其中,condition用于指定筛选条件。

 

文章来自个人专栏
数据库操作
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0