MySQL语句

1、常用基础语句

全表查询 

select * from 表名 

假设有一张名为 student 的数据表,它存储了学生的信息,包括学号、姓名、年龄等。

现在,使用 select 全表查询语句,查看整个学生表的内容。

数据表 student

学号 姓名 年龄
101 小明 20
102 小红 22

SQL 查询语句:

select * from student;

查询结果:

学号 姓名 年龄
101 小明 20
102 小红 22

 选择查询

select {列名...}

假设有一张名为 students 的学生数据表,它存储了班级里学生的信息,包括姓名(name)、年龄(age)、性别(gender)、分数(score)等。

数据表 students

name age gender score
John 18 Male 90
Alice 17 Female 88

现在,我们使用"选择查询"来获取所有学生的姓名(name)和性别(gender)信息,SQL 语句如下:

select name, gender from students;

查询结果:

name gender
John Male
Alice Female

通过上述 SQL 查询语句,我们得到了学生名单表中所有学生的姓名和性别信息。

 使用别名语法

select {原始字段名} as {别名}, {原始字段名} as {别名} from 表名

假设有一张名为 employees 的数据表,它存储了团队成员的信息,包括姓名(name)、年龄(age)、职位(position)等:

数据表 employees

name age position
John 30 Project Manager
Alice 28 Software Engineer

现在,我们使用 "别名" 来获取所有团队成员的姓名(name)和职位(position)信息,并为它们取别名为 员工姓名 和 职位名称

-- SQL查询语句
select name as 员工姓名, position as 职位名称 from employees;

上述代码中的 as 也可以省略,比如 name 员工姓名 也是 ok 的。

查询结果,注意表格头的列名从英文变为了中文:

员工姓名 职位名称
John Project Manager
Alice Software Engineer

常量和运算

假设有一张名为 orders 的数据表,它存储了订单信息,包括订单编号(order_id)、商品单价(unit_price)、购买数量(quantity)等:

数据表orders

order_id unit_price quantity
1001 10.00 5
1002 20.00 3

现在,我们需要计算每个订单的总金额(total_amount),即商品单价(unit_price)乘以购买数量(quantity)。

SQL 查询语句如下:

select order_id, unit_price, quantity, unit_price * quantity as total_amount from orders;

查询结果如下,其中 total_amount 是计算出来的新列:

order_id unit_price quantity total_amount
1001 10.00 5 50.00
1002 20.00 3 60.00

此外,SQL 可以直接把常量作为列名,比如执行下列 SQL 语句:

select 200, '篮球' as hobby;

查询结果如下:

200 hobby
200 篮球

从名为student的数据表中选择出所有学生的姓名(name)和分数(score),并且额外计算出分数的 2 倍(double_score)。

select name,score,score*2 as double_score from student

条件查询 

where

SELECT 列1, 列2, ...
FROM 表名
WHERE 条件;

其中,列1, 列2, ...是你要选择的列,可以是具体的列名,也可以是*表示选择所有列。

表名是你要从中查询数据的表名。

条件是指定的查询条件,可以使用比较运算符(如=、<、>等)逻辑运算符(如AND、OR等)IN 操作符LIKE 操作符等来设置条件。

select name, score from student where name = '鱼皮'

 从名为student 的数据表中选择出所有学生的姓名(name)和成绩(score),要求学生姓名为 '鱼皮'。

运算符 

运算符是 SQL 中用于在条件查询中进行条件判断的特殊符号,比如 =、 !=<> 等。 

select name,age from student where name !='热dog'

从名为 student 的数据表中选择出所有学生的姓名(name)和年龄(age),要求学生姓名不等于 '热dog' 。

空值 

空值表示该字段的值是未知的、不存在的或者没有被填写的。在SQL查询中,我们可以使用 "IS NULL" 和 "IS NOT NULL" 来判断字段是否为空值或非空值。 

select name, age, score from student where age is not null

从名为 student 的数据表中选择出所有学生的姓名(name)、年龄(age)和成绩(score),要求学生年龄不为空值。 

模糊查询

模糊查询是一种特殊的条件查询,它允许我们根据模式匹配来查找符合特定条件的数据,可以使用 LIKE 关键字实现模糊查询。

在 LIKE 模糊查询中,我们使用通配符来代表零个或多个字符,从而能够快速地找到匹配的数据。

有如下 2 种通配符:

  • 百分号(%):表示任意长度的任意字符序列。
  • 下划线(_):表示任意单个字符。
select name, score from student where name not like '%李%'

 从名为 student 的数据表中选择出所有学生的姓名(name)和成绩(score),要求姓名(name)不包含 "李" 这个字。

-- SQL查询语句,关键字 "张" 的员工信息:
select name, age, position from employees where name like '%张%';

-- 只查询以 "张" 开头的数据行
select name, age, position from employees where name like '张%';

-- 只查询以 "张" 结尾的数据行
select name, age, position from employees where name like '%张';

 逻辑运算

逻辑运算是一种在条件查询中使用的运算符,它允许我们结合多个条件来过滤出符合特定条件的数据。在逻辑运算中,常用的运算符有:

  • AND:表示逻辑与,要求同时满足多个条件,才返回 true。
  • OR:表示逻辑或,要求满足其中任意一个条件,就返回 true。
  • NOT:表示逻辑非,用于否定一个条件(本来是 true,用了 not 后转为 false)
select name, score from student where name like '%李%' or score > 500;

从名为 student 的数据表中选择出所有学生的姓名(name)、成绩(score),要求学生的姓名包含 "李",或者成绩(score)大于 500。

去重 

在 SQL 中,我们可以使用  distinct 关键字来实现去重操作。

select distinct class_id, exam_num from student;

从名为 student 的数据表中选择出所有不重复的班级 ID(class_id)和考试编号(exam_num)的组合。

你可能感兴趣的:(数据库,mysql,数据库)