sql 语句
INSERT
基本语法:INSERT INTO table_name VALUES(value1,value2,value3,...);
指定列:INSERT INTO table_name(column1, column2, column3,…) VALUES(value1,value2,value3,...);
UPDATE
UPDATE table_name set column1='new_value',column2='new_value',...;
mysql 的跨表UPDATE
假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price;另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Product表中价格字段的80%。
(1)update product p, productPrice pp set pp.price = p.price * 0.8 where p.productId = pp.productId and p.dateCreated < '2004-01-01';
(2)update product p inner join productPrice pp on p.productId = pp.productId set pp.price = p.price * 0.8 where p.dateCreated < '2004-01-01';
我们也可以使用left outer join来做多表update,比方说如果ProductPrice表中没有产品价格记录的话,将Product表的isDeleted字段置为1
update product p left join productPrice pp on p.productId = pp.productId set p.deleted = 1 where pp.productId is null
上面的几个例子都是两张表之间做关联,但是只更新一张表中的记录,其实是可以同时更新两张表的
update product p inner join productPrice pp on p.productId = pp.productId set pp.price = pp.price * 0.8, p.dateUpdate = curdate() where p.dateCreated < '2004-01-01'
DELETE
DELETE from table_name;
SELECT
SELECT column1,column2,column3,... from table_name; or
SELECT * from table_name;
WHERE condition GROUP BY column1,column2,...HAVING condition
分组要有据(select columns 有该字段),先有结果集(可以是where帅选过的),再依据唯一性分组,然后统计,最后过滤结果集。
a sample Employees table

求各个部门的总工资:
SELECT DEPARTMENT_ID,SUM(SALARY) as Total_Salary FROM EmployeesGROUP BY DEPARTMENT_ID;
group by DEPARTMENT_ID后具有相同DEPARTMENT_ID的数据项聚集在一起,然后以函数的形式合并成一条记录,DEPARTMENT_ID具备了唯一性(group by后的字段组合具有唯一性)。

左连接: select column1,column2 from table1 left join table2 on <两表某条数据项连接在一起的条件> where <过滤条件>;
符合<过滤条件>的左侧表的数据项出现次数大于等于1.
sql 语句的更多相关文章
- mysql学习之 sql语句的技巧及优化
一.sql中使用正则表达式 select name,email from user where email Regexp "@163[.,]com$"; sql语句中使用Regex ...
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
- LINQ to SQL语句(7)之Exists/In/Any/All/Contains
适用场景:用于判断集合中元素,进一步缩小范围. Any 说明:用于判断集合中是否有元素满足某一条件:不延迟.(若条件为空,则集合只要不为空就返回True,否则为False).有2种形式,分别为简单形式 ...
- Oracle ------ SQLDeveloper中SQL语句格式化快捷键
Oracle SQL Developer中SQL语句格式化快捷键: 每次sql复制到SQL Developer面板的时候,格式老不对,而且看起来很不舒服,所有的sql都挤在一行完成. 这时我们可以全选 ...
- SQL语句优化
(1) 选择最有效率的表名顺序 ( 只在基于规则的优化器中有效 ) : ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名, FROM 子句中写在最后的表 ( 基础表dri ...
- LinqToDB 源码分析——生成与执行SQL语句
生成SQL语句的功能可以算是LinqToDB框架的最后一步.从上一章中我们可以知道处理完表达式树之后,相关生成SQL信息会被保存在一个叫SelectQuery类的实例.有了这个实例我们就可以生成对应的 ...
- 年终巨献 史上最全 ——LINQ to SQL语句
LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句.Where操 ...
- LINQ to SQL语句(19)之ADO.NET与LINQ to SQL
它基于由 ADO.NET 提供程序模型提供的服务.因此,我们可以将 LINQ to SQL 代码与现有的 ADO.Net 应用程序混合在一起,将当前 ADO.NET 解决方案迁移到 LINQ to S ...
- LINQ to SQL语句(17)之对象加载
对象加载 延迟加载 在查询某对象时,实际上你只查询该对象.不会同时自动获取这个对象.这就是延迟加载. 例如,您可能需要查看客户数据和订单数据.你最初不一定需要检索与每个客户有关的所有订单数据.其优点是 ...
- LINQ to SQL语句(6)之Group By/Having
适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in db.Products group ...
随机推荐
- display:none显示和隐藏
<html> <head> <title>显示和隐藏问题</title> <meta charset="utf-8"/> ...
- JavaScript - 原型
一切皆为对象 殊不知,JavaScript的世界中的对象,追根溯源来自于一个 null 「一切皆为对象」,这句着实是一手好营销,易记,易上口,印象深刻. 万物初生时,一个null对象,凭空而生,接着O ...
- Java 中正确获取中文字符串长度
/** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * * @param value * 指定的字符串 * * @return 字符串的长度 */ public static int l ...
- Linux查找命令
最近,我在学习Linux,下面是一些笔记. 使用电脑的时候,经常需要查找文件. 在Linux中,有很多方法可以做到这一点.国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条.大多数程序 ...
- Sublime3和Chrome配置自动刷新网页【实测可用】
SublimeText2下的LiveReload在SublimeText3下无法正常使用,本文整理SublimeText3安装LiveReload的方法.win7下实测可用! 安装成功后,就不需要再手 ...
- ACM/ICPC 之 Dinic+枚举最小割点集(可做模板)(POJ1815)
最小割的好题,可用作模板. //Dinic+枚举字典序最小的最小割点集 //Time:1032Ms Memory:1492K #include<iostream> #include< ...
- maven打包
1.利用maven-jar-plugin <build> <plugins> <!-- The configuration of maven-jar-plugin --& ...
- 让一个图片在div中居中(四种方法)
第一种方法: <div class="title"> <div class="flag"></div> <div cl ...
- sh3.useradd 添加用户脚本
1.写一个脚本: 添加10个用户user1到user10,密码同用户名,但要求只有用户不存在的情况下才能添加 #/bin/bash # ..};do if id user$i &> /d ...
- October 29th Week 44th Saturday 2016
I am a slow walker, but I never walk backwards. 我走得慢,但我从不后退. I walked very slow, sometimes I even sl ...