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
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)的组合。