MySQL常用语句

零、序言

在这里插入图片描述

一、查询语句

1.1 select 与select *

select 列名称1,列名称2,... from 表名称
选取指定列
select * from 表名称
* 表示选取表中所有的列

1.2 distinct

select distinct 列名称 from 表名称
返回列中唯一不同的值,也就是去除重复值

二、过滤数据

2.1 where

select 列名称 from 表名称 where 列 运算符 值
有条件地从表中选取数据,where后面的可以是任意列,其中运算符包括:
在这里插入图片描述
注意:

  • between要搭配and一起使用:select 列名称 from 表名称 where 列 between value1 and value2 .
  • like要搭配%一起使用,% 表示任意个字符:select 列名称 from 表名称 where 列 like '%123%' .
  • 单引号用来环绕文本值,如果是数值就不要引号
    在这里插入图片描述

2.2 and、or运算符

select 列名称 from 表名称 where 列名称 运算符 值 and/or 列名称 运算符 值
AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。一般用在where子语句中将两个或多个条件结合起来,也可以把and和or结合起来,此时用圆括号表示一组条件。

2.3 limit

select 列名称1,列名称2,... from 表名称 limit 起始行号, 返回的最大行数
limit子句在SELECT语句中用于约束结果集中的行数。LIMIT子句接受一个或两个参数。两个参数的值必须为零或正整数。第一个参数指定第一行要返回的偏移量,也就是从第几行开始select,注意第一行的偏移量是0,而不是1,第二个参数指定要返回的最大行数。当只有一个参数时,表示从第一行开始返回指定的最大行数。
比如,从第三行开始返回四行数据
select producttypeName, parentid from producttype limit 2,4

  • 应用:找到商品中价格第二贵的商品名称:
    SELECT productName,productPrice FROM productinfo ORDER BY productPrice DESC LIMIT 1,1
    即,先按商品价格降序排序,然后偏移一个位置的第一行即为第二。

  • 通式:选择结果中第n个最大值:
    SELECT 列名称1,列名称2 FROM 表名称 ORDER BY 列名称 [DESC/ASC] LIMIT n-1,1
    注意:能直接用limit N-1是因为limit和offset字段后面只接受正整数(意味着0、负数、小数都不行)或者单一变量(意味着不能用表达式),也就是说想取一条,limit 2-1、limit 1.1这类的写法都是报错的。所以要事先设置set N:=N-1

2.4 in

select 列名称1, 列名称2 from 表名称 where 列名称 in (value1,value2,...)
IN运算符允许你确定一个指定字段的值是否在给定列表或子查询中。

  • 应用:IN经常与子查询一起使用,子查询将查询结果值作为值列表,如查看商品类别为牛奶的商品信息
    SELECT productTitle,productName,productPrice FROM productinfo WHERE productName IN( SELECT producttypeName FROM producttype WHERE producttypeDescription='牛奶' )

三、数据排序

3.1 order by

select 列名称 from 表名称 order by 列名称1 [DESC/ASC],列名称2 [DESC/ASC]
ORDER BY 语句用于根据指定的列对结果集进行排序,默认是升序,先按列名称1排序,重复的列按列名称2排序。DESC表示降序,ASC表示升序。

四、表连接

在这里插入图片描述

4.1 别名

  • 列名别名:
    select 列名称 as 列别名 from 表名称
    但实验过程中好像别名不能用于where查询,待求证,但是可以使用列别名称进行排序。
  • 表名别名:
    select 表别名.列名称1,表别名.列名称2,... from 表名称 as 表别名 [where 表别名.列名称 运算符 值]
    表名称可以用在where中,注意的是所有的列名称都要用表别名.列名称的方式。
  • 应用:与concat_ws一起用,可以将多个列合并为一个并取一个别名
    select concat_as(',',列名称1,列名称2) as 别名 from 表名称
    其中concat_as','表示分隔符,也可以用其他分隔符

4.2 inner join

select 列名称1,列名称2,... from 表名1 inner join 表名2 on 匹配条件语句 inner join 表名3 on 匹配条件语句 [where 条件语句]
和inner join相同。inner join 关键字在表中存在至少一个匹配时返回行。如果 “Persons” 中的行在 “Orders” 中没有匹配,就不会列出这些行。
INNER JOIN子句将一个表中的行与其他表中的行进行匹配,并可以查询这两个表中的字段。
简而言之,就是取 两个表基于 'on 后面匹配条件的 ’ 交集,交集为空返回空

4.3 left join

select 列名称1 列名称2,... from 表名称1 left join 表名称2 on 表名称1.列名称1=表名称2.列名称2
LEFT JOIN 关键字会从左表 (表名称1) 那里返回所有的行,即使在右表 (表名称2) 中没有匹配的行,如果在表名称2中有匹配的行,就在匹配的行中返回相关信息,其他没有匹配的行关于表名称2的列值为空。
表1:SELECT * FROM mysqltest.persons
在这里插入图片描述
表2:SELECT * FROM mysqltest.orders
在这里插入图片描述
左连接:SELECT persons.LastName,persons.FirstName,orders.OrderNo FROM persons LEFT JOIN orders ON persons.Id_P=orders.Id_P
表1 的所有行都被返回
在这里插入图片描述

4.4 right join

select 列名称1 列名称2,... from 表名称1 right join 表名称2 on 表名称1.列名称1=表名称2.列名称2
RIGHT JOIN 关键字会右表 (表名称2) 那里返回所有的行,即使在左表 (表名称1) 中没有匹配的行。
表2的所有行都被返回
所以对于上面两个表,右连接的结果是
SELECT persons.LastName,persons.FirstName,orders.OrderNo FROM persons right JOIN orders ON persons.Id_P=orders.Id_P
在这里插入图片描述

4.5 full join

SQL语句:select 列名称1 列名称2,... from 表名称1 full join 表名称2 on 表名称1.列名称1=表名称2.列名称2
只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。目前MySQL还没有实现全连接,可以用左连接union右链接实现
SELECT persons.LastName,persons.FirstName,orders.OrderNo FROM persons LEFT JOIN orders ON persons.Id_P=orders.Id_P union select 列名称1 列名称2,... from 表名称1 right join 表名称2 on 表名

  • 6
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 以下是 MySQL 常用的 SQL 语句: 1. 创建数据库 ``` CREATE DATABASE database_name; ``` 2. 删除数据库 ``` DROP DATABASE database_name; ``` 3. 创建表 ``` CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... ); ``` 4. 删除表 ``` DROP TABLE table_name; ``` 5. 插入数据 ``` INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ``` 6. 更新数据 ``` UPDATE table_name SET column_name1 = value1, column_name2 = value2, ... WHERE condition; ``` 7. 删除数据 ``` DELETE FROM table_name WHERE condition; ``` 8. 查询数据 ``` SELECT column1, column2, ... FROM table_name WHERE condition; ``` 9. 排序 ``` SELECT column1, column2, ... FROM table_name ORDER BY column_name ASC|DESC; ``` 10. 分组 ``` SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name; ``` 11. 连接 ``` SELECT column_name(s) FROM table_name1 JOIN table_name2 ON table_name1.column_name = table_name2.column_name; ``` 以上是 MySQL 常用的 SQL 语句,希望能对你有所帮助。 ### 回答2: MySQL 是一种流行的关系型数据库管理系统,被广泛应用于Web开发和其他数据存储需求。以下是一些常用MySQL 语句: 1. 创建数据库: ``` CREATE DATABASE database_name; ``` 2. 选择使用的数据库: ``` USE database_name; ``` 3. 创建表: ``` CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint, ... ); ``` 4. 插入数据: ``` INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); ``` 5. 更新数据: ``` UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; ``` 6. 删除数据: ``` DELETE FROM table_name WHERE condition; ``` 7. 查询数据: ``` SELECT column1, column2, ... FROM table_name WHERE condition; ``` 8. 排序数据: ``` SELECT column1, column2, ... FROM table_name ORDER BY column_name ASC|DESC; ``` 9. 过滤数据: ``` SELECT column1, column2, ... FROM table_name WHERE column_name operator value; ``` 10. 聚合数据: ``` SELECT aggregate_function(column_name) FROM table_name GROUP BY column_name; ``` 以上是一些基本的 MySQL 语句,用于创建数据库、表和执行常见的数据操作。MySQL还有更多高级的功能和语句,可以根据具体需求深入学习和掌握。 ### 回答3: MySQL是一种流行的关系型数据库管理系统,它使用结构化查询语言(SQL)进行数据库操作。以下是MySQL常用的一些SQL语句: 1. 创建数据库:CREATE DATABASE databasename; 该语句用于创建一个新的数据库。 2. 删除数据库:DROP DATABASE databasename; 该语句用于删除一个已存在的数据库。 3. 创建表:CREATE TABLE tablename( column1 datatype constraint, column2 datatype constraint, ... ); 该语句用于创建一个新的表格,并定义表格中的列名、数据类型以及约束条件。 4. 删除表:DROP TABLE tablename; 该语句用于删除一个已存在的表格。 5. 插入数据:INSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...); 该语句用于向表格中插入新的行数据。 6. 更新数据:UPDATE tablename SET column1 = value1, column2 = value2, ... WHERE condition; 该语句用于更新表格中已有的行数据。 7. 删除数据:DELETE FROM tablename WHERE condition; 该语句用于根据条件删除表格中的行数据。 8. 查询数据:SELECT column1, column2, ... FROM tablename WHERE condition; 该语句用于从表格中查询指定的列数据,并根据条件过滤结果。 9. 排序数据:SELECT column1, column2, ... FROM tablename ORDER BY column1 ASC/DESC; 该语句用于按照指定列的升序(ASC)或降序(DESC)对查询结果进行排序。 10. 连接表查询:SELECT column1, column2, ... FROM table1 JOIN table2 ON table1.column = table2.column; 该语句用于联结两个或多个表格,并根据指定的条件进行联结查询。 以上是MySQL中一些常用的SQL语句,通过使用这些语句,可以对数据库进行创建、删除、插入、更新、删除以及查询等操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThetaQing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值