sql 基础--mysql 5 (6)

12.子查询

  子查询进行过滤

mysql> select msg from pw_luck where name = ‘wang5‘
    -> ;
+------+
| msg  |
+------+
| 1001 |
| 1000 |
| 1000 |
|  100 |
|  100 |
+------+
5 rows in set (0.03 sec)

mysql> select uid from pw_luck where msg in (select msg from pw_luck where name = ‘wang5‘);
+-----+
| uid |
+-----+
|   0 |
|   1 |
|   2 |
|   3 |
|   7 |
|   8 |
|   9 |
|  10 |
|  12 |
|  13 |
|  14 |
|  15 |
+-----+
12 rows in set (0.02 sec)

  作为计算字段使用子查询 ,联表查询

  

mysql> select uid,price,(select count(*) from pw_luck where pw_luck.uid=pw_price.uid) as pw_luck_cou
nt from pw_price order by uid;
+-----+-------+---------------+
| uid | price | pw_luck_count |
+-----+-------+---------------+
|   1 |   100 |             1 |
|   2 |  1000 |             1 |
|   3 |  2000 |             1 |
+-----+-------+---------------+
3 rows in set (0.02 sec)

  13联结表

  外键:某个表中的一列,他包含另一个表中的主键值,定义了两表之间的关系。

mysql> select pw_luck.uid,name,msg,price from pw_luck,pw_price where pw_luck.uid=pw_price.uid order
by pw_luck.uid;
+-----+----------+------+-------+
| uid | name     | msg  | price |
+-----+----------+------+-------+
|   1 | zhangsan |  100 |   100 |
|   2 | lisi     | 1001 |  1000 |
|   3 | wang5    | 1001 |  2000 |
+-----+----------+------+-------+
3 rows in set (0.01 sec)

  卡迪尔积: 无 where的行数是table1和table2行数的乘积

mysql> select pw_luck.uid,name,msg,price from pw_luck,pw_price order by pw_luck.uid;
+-----+-----------+------+-------+
| uid | name      | msg  | price |
+-----+-----------+------+-------+
|   0 | Wilson    |  100 |   100 |
|   0 | Wilson    |  100 |  1000 |
|   0 | Wilson    |  100 |  2000 |
|   1 | zhangsan  |  100 |  2000 |
|   1 | zhangsan  |  100 |   100 |
|   1 | zhangsan  |  100 |  1000 |
|   2 | lisi      | 1001 |  2000 |
|   2 | lisi      | 1001 |   100 |
|   2 | lisi      | 1001 |  1000 |
|   3 | wang5     | 1001 |  1000 |
|   3 | wang5     | 1001 |  2000 |
|   3 | wang5     | 1001 |   100 |
|   7 | zhangsan7 | 1000 |   100 |
|   7 | zhangsan7 | 1000 |  1000 |
|   7 | zhangsan7 | 1000 |  2000 |
|   8 | zhangsan8 | 1000 |  2000 |
|   8 | zhangsan8 | 1000 |   100 |
|   8 | zhangsan8 | 1000 |  1000 |
|   9 | zhangsan9 | 1000 |  2000 |
|   9 | zhangsan9 | 1000 |   100 |
|   9 | zhangsan9 | 1000 |  1000 |
|  10 | wang5     | 1000 |  1000 |
|  10 | wang5     | 1000 |  2000 |
|  10 | wang5     | 1000 |   100 |
|  11 | wang5%    | 2000 |  1000 |
|  11 | wang5%    | 2000 |  2000 |
|  11 | wang5%    | 2000 |   100 |
|  12 | WANG5     | 1000 |   100 |
|  12 | WANG5     | 1000 |  1000 |
|  12 | WANG5     | 1000 |  2000 |
|  13 | wang5     |  100 |  2000 |
|  13 | wang5     |  100 |   100 |
|  13 | wang5     |  100 |  1000 |
|  14 | wang5     |  100 |  2000 |
|  14 | wang5     |  100 |   100 |
|  14 | wang5     |  100 |  1000 |
|  15 | zhangsan7 | 1000 |  1000 |
|  15 | zhangsan7 | 1000 |  2000 |
|  15 | zhangsan7 | 1000 |   100 |
|  16 | zhangsan7 | 1002 |  1000 |
|  16 | zhangsan7 | 1002 |  2000 |
|  16 | zhangsan7 | 1002 |   100 |
|  17 | zhangsan7 | 1002 |  2000 |
|  17 | zhangsan7 | 1002 |   100 |
|  17 | zhangsan7 | 1002 |  1000 |
+-----+-----------+------+-------+
45 rows in set (0.03 sec)

  联结多个表  where语句用and 连接

时间: 02-13

sql 基础--mysql 5 (6)的相关文章

SQL基础整理

SQL 是用于访问和处理数据库的标准的计算机语言. 什么是 SQL? SQL 指结构化查询语言 SQL 使我们有能力访问数据库 SQL 是一种 ANSI 的标准计算机语言 编者注:ANSI,美国国家标准化组织  SQL 能做什么? SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的记录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图 S

零基础mysql数据库表迁移

@ 把老数据库中的某个表倒出成sql文件 $mysql -uroot -p my_db > my_db.sql (输入密码) @ 在新环境中导入 $sudo apt-get install mysql-server -y (期间要初始化root用户的密码) $mysql -uroot -p (输入密码) mysql> show databases;(注意分号) mysql> create database my_db; mysql> show databases; mysql>

[SQL] SQL 基础知识梳理(一)- 数据库与 SQL

SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 序 目录 What's 数据库 数据库结构 SQL 概要 创建表 删除和更新表 1-1 What's 数据库 1.数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.如:大型-银行存储的信息,小型-电话簿. 2.数据库管理系统(Batabase Management Syste

sql基础之DDL(Data Definition Languages)

好久没写SQL语句了,复习一下. DDL数据定义语言,DDL定义了不同的数据段.数据库.表.列.索引等数据库对象的定义.常用的DDL语句包括create.drop.alter等等. 登录数据:mysql -uroot -p sql 命令一般以英文分号或者\g结束,注意这个\不是/. 1.查看数据库 show databases;注意这个后面的s. 2.创建数据库create database wangking;注意这里没有s. 3.选择数据库use siyecao;列出数据库中的表show ta

Bootstrap + AngularJS+ Ashx + SQL Server/MySQL

去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQL Server 时间紧,没人带,只能硬着头皮,最后如期完成,但是也遗留了几个问题. 问题: 1.页面查询条件太复杂,太多的checkbox,jQuery操作DOM虽然方便,但是组合成json提交给后端还是比较麻烦,有没有天然支持json的前端框架或者脚本语言? html控件做的任何修改,都自动保存

(转载)SQL基础--> 约束(CONSTRAINT)

感谢Leshami的分享,原文地址:http://blog.csdn.net/leshami/article/details/5711367 --============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完整性 实体完整性:表中记录不重复(任何两条记录不全等)并且每条记录都有一个非空主键 域完整性:表中字段值必须与字段数据类型.格式.有效范围相吻合 参照完整性:不能引

SQL 基础之字符串和操作符使用(三)

SQL 基础之字符串使用 : 字符串可以是 SELECT 列表中的一个字符.数字.日期 但日期和字符只能在单引号中出现.每当返回一行时,字符串被输出一次 1.接上文使用过程中如果想把两个列串在一起,并加入一些自定义的显示,如下下图: select first_name || '  is a ' || job_id as "Emp Details" from employees; 2.显示first_name 的人的工资 是多少钱怎么显示: select first_name || '

批处理--执行sql(mysql数据库)

@echo off rem test.sql文件 for %%i in (test.sql) do ( echo excute %%i mysql -u用户名 -p密码 -D数据库名 < %%i ) echo success pause 批处理--执行sql(mysql数据库),布布扣,bubuko.com

Oracle实践--PL/SQL基础之同义词和序列

PL/SQL基础入门之同义词和序列             PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. 同义词: /*     同义词:现有对象的一个别名: