#数据表的查询框架
select [all | distinct] select_list
from tb_name
[where 查询条件]
[group by <group_by_expression>]
[having <查询条件>]
order by <排序表达式> [asc|desc]
limit [<offset>,<row count>]
#关键字的用法
select 指定有查询返回的列
from 用于指定引用的列所在的表和视图
where 指定用于限制返回行的搜索条件
group by 用于根据字段对行分组
having 指定分组或聚合的搜索条件
order by 指定的结果集的排序
limit 该子句显示查询出来的数据条数
说明:
所有关键词的使用必须精确地以上面的顺序给出。如,一个having子句必须跟在group by 子句的后面和order by子句之前。
 

---------------------------------------------------------------------------------------------------------------------------------------

#group by 的使用:一般情况下,若查询的需求中有'每'或'各'这个意思就可以用'group by',另外,值得注意的是查询什么
就按什么分组,目的是时查询到的数据没有矛盾。
eg:统计各个部门的人数
select deptcode,count(*)
from tb_user
group by deptcode;
#having条件表达式:用于设置分组或聚合函数的过滤筛选条件的,having子句通常与group by 子句一起使用,用于指定分组后
的筛选条件。
eg:统计各用户发布的新闻条数,要求发布数量大于2。
select inputer,count(*)
from tb_news
group by inputer; --不加筛选 select inputer,count(*)
from tb_news
group by inputer
having count(*)>2; --加上筛选,比较执行结果,确认代码的正确性
#limit子句:返回前几条或者中间某几行数据
eg1:
--查找新闻表最靠前的三条新闻的标题和时间
select title as '标题',time as "发布日期"
from tb_news
order by time asc --这里asc表示升序,在这里可以自动省略,因为是默认的
limit 3; eg2:
--查找新闻表中从第三条记录开始的3条记录的标题和时间
select title as '标题','time' as '发布日期'
from tb_news
order by time
limit 2,3;
#distinct :关键字去除结果中的重复行
select distinct s_id from fruits;
#集合函数:要对表中数据进行统计,都需要使用集合函数。集合函数一般是返回某列的值。
说明:函数的最大特点是经常和 group by 语句配合使用,注意的是集合函数不能和
和非分组的列混合使用。
 
#Union关键字:合并查询结果;
Union:对两个结果集进行并集操作,不包括重复行
Union All:对两个结果集进行并集操作,包括重复行
语法格式:
select column,...
from table A
union [all]
select column,...
from table B
where ... ;
 
#关于索引:当内容较多的时候,可以用索引。
#创建索引的方法
方法一:
在创建表的同时创建索引,语法格式如下
create table 表名(
字段名1 数据类型 [约束条件],
...
[其它约束条件],
[unique|fulltext] index[索引名](字段名[(长度)][asc|desc])
engine=存储引擎 default charset=字符集类型
方法二:
在已经存在的表上创建索引
alter table 表名 add[unique | fulltext] index 索引名(字段名[(长度)][asc|desc]);
#删除索引
drop index xxx on table name;
#视图:一张虚拟的表
目的:为了保护数据库的安全。
#创建视图的格式
create view 视图名[视图字段列表]
as
select 语句;
--在student中为student表创建视图view1。
use choose
create view view1(student_no,student_name,class_no)
as
select student_no,student_name,class_no
from student;
#函数与触发器
触发器是一种特殊的存储过程,触发器没有输入输出参数,一般用于级联更新等操作。

SQL小结1的更多相关文章

  1. MyBatis动态SQL小结

    6:用于实现动态sql的元素及其用法 if+set--完成更新操作 if+where --完成多条件查询 if+完成多条件查询(替代where)或完成更新操作(替代set) choose(when,o ...

  2. oracle sql小结(主要讲横列转换的例子)decode 以及case

    --建表 create table kecheng( id NUMBER, name VARCHAR2(20), course VARCHAR2(20), score NUMBER); --插入数据i ...

  3. SQL小结

    1. 一般而言,除非你确实需要表中的每一列,否则最好别使用*通配符.虽然使用通配符让你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能. 2. DISTINCT关键字作用于 ...

  4. Linq to SQL 小结

    前天开始看这方面的资料,虽然看了网上对比 sql和linq的速度,万条数据可能要慢1/4左右的数度,但是介于的方便,还是学了 首先看看linq的基本语法: FROM XX IN DATASOURCE ...

  5. C#SQL小结

    对于c#获取Sql数据目前我采用的是 System.Data.SqlClient.SqlDataReader类. 主要用到如下API: SqlDataReader.Read():每次获取一行的数据,直 ...

  6. MySQL查询表结构的SQL小结

    mysql查看表结构命令,如下: desc 表名; show columns from 表名; describe 表名; show create table 表名; 示例: use testDB; # ...

  7. oracle sql小结(主要讲横列转换的例子)group by以及wmsys.wm_concat()的使用

    ---计算九月每个电厂的数量select f_dcname,count(f_dcname) as 九月份的数量 from W_EC_PLACESTATION_COLLECT twhere f_coll ...

  8. sql boolean类型

    关于 MySQL 的 boolean 和 tinyint(1) boolean类型MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint ...

  9. Oracle sql语句中不支持boolean类型(decode&case)

    [转自] http://blog.csdn.net/t0nsha/article/details/7828538 Oracle sql语句中不支持boolean类型(decode&case) ...

随机推荐

  1. 如何查看github排行热度

    github热门趋势 https://github.com/trending github star排行榜 github输入:star:>数字,来查看star数的仓库: 输入:location: ...

  2. RTX临界段,中断锁与任务锁

    临界段         代码的临界段也称为临界区,一旦这部分代码开始执行,则不允许任何中断打断.为确保临界段代码的执行不被中断,在进入临界段之前须关中断,而临界段代码执行完毕后,要立即开中断.    ...

  3. go关键字之type用法

    1.定义结构体 type Student struct {     name string code int }       2.类型别名 type i int64 var age i = 30   ...

  4. 虚拟机---vmmare15安装centos7.4

    第一步:下载centos7的镜像iso文件:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Everything- ...

  5. linux的shadow文件

    在<Python绝技>这本书的第一个小程序首先展示了针对与unix系统中shadow文件密码的暴力破解的能力,因为之前只是对shadow文件停留在保存了用户密码的阶段,但并没有详细研究,所 ...

  6. 初始化后,composer安装

    在项目目录下输入composer install(保证要有composer.json的前提下)

  7. 6 关于plsql中文显示乱码问题

    打开plsql查看数据表时,会看到中文显示乱码问题 解决方案 输入下图所示语句并运行 在输入下图所示语句并运行,查看第一行和第九行是否对应 3)查看下环境变量的设置,查看是否有变量NLS_LANG,没 ...

  8. vue的单向数据流

    父级向子组件传递的值, 子组件不能直接修改这个穿过来的值,否则会曝出警告,这就是单项数据流. 如果是引用值,传递的是引用值得地址,而不是值本身,也就是说,子组件里修改这个传过来的值,通常的做法是放到它 ...

  9. [转] - Weiflow——微博机器学习框架

    Weiflow--微博机器学习框架 本文从开发效率(易用性).可扩展性.执行效率三个方面,介绍了微博机器学习框架Weiflow在微博的应用和最佳实践. 在上期<基于Spark的大规模机器学习在微 ...

  10. 剑指offer——python【第15题】反转链表

    题目描述 翻转一个链表 样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 思路 一种比较简单的方法是用“摘除法”.就是先新 ...