出现在select语句中的select语句,称为子查询或内查询。
外部的select查询语句,称为主查询或外查询。
测试数据比较多,放在我的个人博客上了。
浏览器中打开链接:http://www.itsoku.com/article/196
mysql中执行里面的 javacode2018_employees库 部分的脚本。
成功创建 javacode2018_employees 库及5张表,如下:
运行最后一条结果如下:
in,any,some,all分别是子查询的关键词之一。
in :in常用于where表达式中,其作用是查询某个范围内的数据
any和some一样 : 可以与=、>、>=、<、<=、>结合起来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的任何一个数据。
all :可以与=、>、>=、<、<=、>结合使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的其中的所有数据。
下文中会经常用到这些关键字。
运行结果:
not in的情况下,子查询中列的值为NULL的时候,外查询的结果为空。
建议:建表是,列不允许为空。
1、创建三张测试表,
create table pw_memberinfo(uid int, name varchar(20))
create table pw_members(companyid int, uid int)
create table pw_memberdata(uid int, deposit int, ddeposit int, money int)
2、三张表,分别插入测试数据,
insert into pw_members values(1, 1)
insert into pw_members values(1, 2)
insert into pw_members values(1, 3)
insert into pw_memberinfo values(1, 'name_1')
insert into pw_memberinfo values(2, 'name_2')
insert into pw_memberinfo values(3, 'name_3')
insert into pw_memberdata values(1,30,50,150)
insert into pw_memberdata values(2,77,50,12)
insert into pw_memberdata values(3,44,50,82)
3、查看pw_memberdata表中的记录,select * from pw_memberdata t,
4、编写sql语句,
select * from (SELECT i.uid, sum(deposit+ddeposit+money) as allmoney
FROM pw_memberinfo i
LEFT JOIN pw_members m ON m.uid=i.uid
LEFT JOIN pw_memberdata d ON i.uid=d.uid
group by i.uid
) t where allmoney>200
用来查询数据库中表的数据。关键字: select 、where 等。
注:查询只是对数据的一种显示,不会对数据库进行修改
1.查询所有数据 : select * from 表 “*” 表示所有列; select id ,name, age, sex, birthday from 表 (注:全部字段写法相对于“*”的写法查询效率要高,但写法比较麻烦)
2.查询部分列 : select 字段1, 字段2……. from 表
3.别名查询( 别名作用是方便观看和处理数据)查询时可以给表、列指定别名,关键字: AS
SELECT 字段1 AS 别名1,字段2 AS 别名2……. from 表 或者 SELECT 字段1 别名1,字段2 别名2……. from 表 ; AS 可以不写
4.清除重复值 ( 查询指定列并且数据不出现重复 ): SELECT DISTINCT 字段1,字段2...... FORM 表
5.查询结果进行运算 ( 注意:参与计算列必须是数值类型 )
5.1与固定值计算: SELECT 列名1+固定值 FROM 表
5.2列与列计算 : SELECT 列1+ 列2 FROM 表
6.条件查询 : SELECT * From 表 WHERE 字段 = 值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)