sql select语句的多表查询的使用方法

SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

SQL SELECT 语法
SELECT 列名称 FROM 表名称以及:

SELECT * FROM 表名称注释:SQL 语句对大小写不敏感。SELECT 等效于 select

实例

CREATE TABLE Manufacturers
(
   ManfID CHAR(8) NOT NULL PRIMARY KEY,
   ManfName VARCHAR(30) NOT NULL
)
ENGINE=INNODB;

INSERT INTO Manufacturers
VALUES ('abc123', 'ABCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq'),
       ('def456', 'DEFwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww'),
       ('ghi789', 'GHIeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'),
       ('jkl123', 'JKLrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr'),
       ('mno456', 'MNOttttttttttttttttttttttttttttttttttttttttttttttttttttttt');

CREATE TABLE Parts
(
   PartID SMALLINT NOT NULL PRIMARY KEY,
   PartName VARCHAR(30) NOT NULL,
   ManfID CHAR(8) NOT NULL
)
ENGINE=INNODB;

INSERT INTO Parts
VALUES (101, 'DVD burnerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr', 'abc123'),
       (102, 'CD driveeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', 'jkl123'),
       (103, '80-GB hard diskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk', 'mno456'),
       (104, 'Mini-towerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr', 'ghi789'),
       (105, 'Power supplyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy', 'def456'),
       (106, 'LCD monitorrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr', 'mno456'),
       (107, 'Zip driveeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', 'ghi789'),
       (108, 'Floppy driveeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', 'jkl123'),
       (109, 'Network adapterrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr', 'def456'),
       (110, 'Network hubbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb', 'jkl123'),
       (111, 'Routerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr', 'mno456'),
       (112, 'Sound cardddddddddddddddddddddddddddddddddddd', 'ghi789'),
       (113, 'Standard keyboarddddddddddddddddddddddddddddd', 'mno456'),
       (114, 'PS/2 mouseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', 'jkl123'),
       (115, '56-K modemmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm', 'ghi789'),
       (116, 'Display adapterrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr', 'mno456'),
       (117, 'IDE controllerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr', 'def456');

 

SELECT PartName, ManfName
FROM Parts AS p, Manufacturers as m
WHERE p.ManfID = m.ManfID
ORDER BY PartName;

EXPLAIN SELECT PartName, ManfName
FROM Parts AS p, Manufacturers as m
WHERE p.ManfID = m.ManfID
ORDER BY PartName;

带表达式

mysql教程> SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM report;
+------------------------+------------------------+
| @min_price:=MIN(price) | @max_price:=MAX(price) |
+------------------------+------------------------+
|                   2.34 |                  21.29 |
+------------------------+------------------------+
1 row in set (0.00 sec)

最简单select查询

mysql> SELECT firstname, lastName from employee where age > 32;
+-----------+----------+
| firstname | lastName |
+-----------+----------+
| Mike      | Harper   |
+-----------+----------+
1 row in set (0.00 sec)

时间: 2024-11-10 07:48:31

sql select语句的多表查询的使用方法的相关文章

使用一条sql语句实现多表查询

问题描述 使用一条sql语句实现多表查询 假设有这样3张表: 学生表S (id,Tid,name,sex,age) 教师表T (id,Sid,name,sex,age) 成绩表R (id(学生的id),result(成绩)) 怎样使用一条sql查询成绩大于90的男学生的男性老师的姓名 解决方案 select * from R inner join S on R.id=S.Sid inner join T on xxxxxx where result>90 你学生和老师好像没有对应关系,所以第二个

求一条sql语句,单表查询的

问题描述 求一条sql语句,单表查询的 表结构 (姓名,课程,成绩) 现在求获的该表总成绩最高学员的名字 解决方案 mysql 数据库select sum(成绩) as t from table group by 姓名 order by t limit 0,1 oracle数据库 select * from (select sum(成绩) as t from table group by 姓名 order by t) WHERE ROWNUM<=1 sqlserver数据库 select top

select-sql语句的联表查询的效率问题

问题描述 sql语句的联表查询的效率问题 select * from a,b where a.id = b.id select * from a inner join b on a.id = b.id 这两种哪一种效率更高呢 , 推荐使用哪一种? 第二种叫内连接 , 第一种方式叫什么来着?忘记了 .... 解决方案 第一个是等值连接,第二个是内连接,这俩效果一样,效率也一样 解决方案二: 这两个写法都是内连接 解决方案三: 查询低效率的sql语句 解决方案四: 都叫内连接,也叫等值连接

利用视图管理器编写高效 SQL SELECT 语句

献给初学者,老鸟别扔砖头 编写 SQL 语句一直都是比较纳闷的事,编写时没有一个良好的检错机制,只能运行时才能发现错误,特别是关联的表一多起来,思绪不免会被搞得晕头转向最后不知迷失在什么地方了.近日偶然发现并不是 M$ 没有提供一个良好的傻瓜化界面给我们这帮懒兄懒弟们使用,而是我们自己视而不见,那就是 SQL Server 中的视图管理器,它不仅可以让我们方便地在多个表中进行查询而不去理会他们之间的关系(当然多个表之间必须存在必要的关系),还可以用它进行别名.排序.条件等的设置,然后自动产生出良

sql select 语句用法

select 语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). sql select 语法 select 列名称 from 表名称以及: select * from 表名称注释:sql 语句对大小写不敏感.select 等效于 select. sql select 实例 如需获取名为 "lastname" 和 "firstname" 的列的内容(从名为 "persons" 的数据库教程表),请使用类似这样的 select 语句:

如何用sql=select 语句来调用指定某个区间的文章

问题描述 如何用sql=select 语句来调用指定某个区间的文章 原来的编码是这样的,调用前8条新闻: sql="select top 8 * from Southidc_News where ViewFlag and SortID=2 order by NoticeFlag asc,id desc" 我想调用指定的第2条到第5条(指定区间的文章),该怎么改写啊? 解决方案 说白了,你无非就是需要一个服务器sql分页的代码. 不确定你用的是什么sql ,mysql oracle还是m

php下巧用select语句实现mysql分页查询_Mysql

利用select语句的一个特性就可以很方便地实现mysql查询结果的分页,下文对该方法的实现过程作了详细的介绍,希望对您能有所启迪. mysql分页查询是我们经常见到的问题,那么应该如何实现呢?下面就教您一个实现mysql分页查询的好方法,供您参考学习. mysql中利用select语句的一个特性就可以很方便地实现查询结果的分页,select语句实现mysql分页查询的语法: 复制代码 代码如下: SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BI

Reverse Snowflake Joins 0.49发布 SQL Select语句解析工具

Reverse Snowflake Joins是一款SQL Select语句解析和图表生成工具.图表可以直接显示部分图表中的基本SQL,如 x=30,GROUP BY (year),SUM(profit),HAVING MIN(age). Reverse Snowflake Joins 0.49该版本修复了cast(x as integer) 产生的一个错误. 软件信息:http://sourceforge.net/projects/revj/ 下载地址:http://sourceforge.n

从一条select语句看Oracle数据库查询工作原理

假如,我们现在利用Select语句从数据库查询数据,Oracle数据库是如何运作的呢?从中我们可以领悟到什么呢?下面,就结合一条简单的select语句,看看Oracle数据库后台的运作机制.这对于我们之后的系统管理与故障排除非常有帮助. 第一步:客户端把语句发给服务器端执行. 当我们在客户端执行select语句时,客户端会把这条SQL语句发送给服务器端,让服务器端的进程来处理这语句.也就是说,Oracle客户端是不会做任何的操作,他的主要任务就是把客户端产生的一些SQL语句发送给服务器端.虽然在