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 ...
随机推荐
- nginx+Memcached 缓存设计
单页面缓存方案 单静态页缓存 解决问题场景 常见的缓存设计利用System.Web.Cache 保存在内存内,效率高,可以减轻数据库访问的压力.但是Web除了获取数据之外,还有呈现页面渲染,生成HTM ...
- repeater控件如何隐藏列?
.aspX文件里将要隐藏的"<td>修改</td>"放在Lable标签里,隐藏实现,如:<asp:lable id=lable1 run=server ...
- JSTL标签库(一)核心标签库
核心标签库(core) 1.表达式操作 2.流程控制 3.迭代操作 4.URL操作 1.表达式操作 标签 语法 功能 说明 <c:out> <c:out value="&l ...
- 手机电脑Mac地址修改方法
1.什么是Mac地址? MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置.在O ...
- SQL分页获取数据
SQL Server分页 select * from (') t Oracle分页 SELECT * FROM (' ORDER BY MaterialNM) t
- jquery 中jsonp的实现原理
在同源策略下,在某个服务器下的页面是无法获取到该服务器以外的数据的,即一般的 ajax是不能进行跨域请求的.但 img.iframe .script等标签是个例外,这些标签可以通过 src属性请求到其 ...
- [原创]JavaEE在CentOS服务器上的部署
1.安装rz.sz命令 yum install lrzsz 2.配置环境变量 vi .bash_profile 默认的path:PATH=$PATH:$HOME/.local/bin:$HOME/bi ...
- 【Python网络爬虫二】使用urllib2抓去网页内容
在Python中通过导入urllib2组件,来完成网页的抓取工作.在python3.x中被改为urllib.request. 爬取具体的过程类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求 ...
- Qtp常见问题
(1)Qtp不能识别对象 插件加载错误 IE内未加载BHOManager加载项
- try catch里面try catch嵌套
try catch里能否内嵌try catch?答案是肯定的.但是等内层try catch出异常之后是个什么执行顺序呢?看下面代码 static void Main(string[] args) { ...