(1)数据库查询

格式:

SELECT <列名1,2,3...> FROM <表名> [WHERE子句] [GROUP BY 子句] [HAVING 子句] [ORDER BY子句] [LIMIT子句];

例子:

SELECT 1+4-3;
SELECT * FROM table;
SELECT a,b FROM table;
SELECT a,b AS '别名' FROM table;*//(别名不允许出现在WHERE中)
SELECT a,b,b+100 FROM table;

case条件语句:

SELECT a,
CASE
WHEN sex='0' THEN '男'
ELSE '女'
END AS '性别'
FROM table;

聚合函数 COUNT,MAX,MIN,SUM,AVG,STD,VARIANCE...

SELECT MAX(a) FROM table;

连接表(JOIN)

交叉连接(CROSS JOIN):SELECT * FROM a CROSS JOIN b;

内连接(INNER JOIN):SELECT * FROM a INNER JOIN b ON a.id>b.id;有限制的交叉连接

相等连接:上面a.id=b.id;

不等连接:类似上面

自然连接:(NATURAL JOIN)

WHERE子句

比较运算:SELECT * FROM table WHERE a>2;

字符串统配:SELECET id,name FROM table WHERE name LIKE '李%' //百分号不匹配NULL,匹配0,1,多个字符,下划线匹配一个字符;

文本匹配(正则表达式REGEXP):SELECT name,age,major FROM table WHERE major REGEXP '物';
//匹配专业里面含有物字的所有行 (| = OR)([ ] = 集合) (\=转义字符) (*,+,?,{n},{n,},{n,m} = 重复元字符)(^,&=匹配定位符)

判定范围:

  1. BETWEEN AND

    SELECE name,age FROM table WHERE age BETWEEN 20 AND 23;
  2. IN

    SELECT ....

    WHERE age IN (20,23);

    判定空值(IS [NOT] NULL):SELECT a,b FROM table WHERE b IS NULL;

GROUP BY 分组

GROUP BY { <列名> | <表达式> |<位置>} [ASC | DESC]]
SELECT sex,count(*) AS '人数' FROM table GROUP BY sex;
SELECT maior AVG(age) AS '平均年龄' FROM table GROUP BY major;

HAVING 过滤分组

SELECT major,COUNT(*) AS '总人数' FROM table GROUP BY major HAVING COUNT(*)>2;
//ORDER BY 同GROUP BY
SELECT name,age FORM table ORDER BY age DESC;//NULL排序为最小值

LIMIT

*//限制显示行数

SELECT id,name FROM table LIMIT 4,3;//第五行开始取三行数据
SELECT id,name FROM table ORDER BY id LIMIT 3 OFFSET 4;//同上

UNION联合查询

*//(多条SELECT联合查询,返回一条查询结果,ORDER,LIMIT必须置于最后一个SELECT)

SELECT... UNION [ALL |DISTINCT] SELECT...

SELECT name,major,sex FROM table WHERE majot='物理专业' UNION SELECT name,.... FROM table WHERE sex='1';

(2)索引

创建索引:

例子:

CREATE  INDEX <索引名> ON table( <列名>[ <长度> ] [ASC| DESC] )
CREATE INDEX index_name ON table(a(3) ASC);//单列索引
CREATE INDEX index_name ON table(a,b) USING BTREE;//组合索引
CREATE TABLE table (id,INT,NOT NULL,........,
PRIMARY KEY(id), *//主键
INDEX indx_course(name), *//普通索引
or
UNIQUE INDEX index_name(a)* //唯一索引
or
FOREIGN KEY index_name(a));*//外键
ALTER TABLE table
ADD INDEX index_name(a);
or
ADD PRIMARY KEY(a);
or
ADD UNIQUE INDEX index_name(a);
or
ADD FOREIGN KEY index_name(a);

查看索引:

SHOW INDEX FROM table FROM database;

删除索引:

1)DROP INDEX index_name ON table;
2)ALTER TABLE table
DROP PRIMARY KEY(a);
or
DROP INDEX index_name(a);
or
DROP FORIEN KEY index_name(a);

(3)视图

*//(虚拟表,不包含数据,仅显示数据)

创建和删除视图

CREATE VIEW <视图名> AS <SELECT语句>

CREATE OR REPLACE VIEW view_name
AS
SELECT a,b,c
FROM table
WHERE a ='0'
WITH CHECK OPTION ;*//(插入数据需符合WHERE条件)

DROP VIEW view_name;

修改查看视图:

ALTER VIEW view_name AS <SELECT语句> //同CREATE VIEW

OR

SHOW CREAE VIEW view_name

更新视图数据

*//(插入,修改,删除更新视图时实际更新了基础表数据,视图更新受限)

INSERT INTO view_name VALUES(.....);*//视图依赖多个基础表时,不能插入,更新只更新一个表,不能删除
UPDATE view_name SET a = '0' WHERE b = 22;
DELETE FROM view_name WHERE a='王五';

查询视图数据(同查询表)

SELECT a,b FROM view_name WHERE A='0';

创建嵌套视图

CREATE VIEW view_a AS SELECT * FROM view_b WHERE c='物理专业';

SQL命令(二)的更多相关文章

  1. Oracle学习笔记四 SQL命令(二):SQL操作语言类别

    SQL分为下列语言类别 1.数据定义语言(DDL) Create.Alter.Drop 2.数据操纵语言(DML) Insert.Select.Delete.Update 3.事务控制语言(TCL) ...

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. 使用SQL命令批量替换WordPress站点中图片的URL链接地址

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=689 前言: 本文记录了使用SQL命令批量替换URL的方法以及除了替换URL之外,网站更换图片URL地址所必须的其他 ...

  4. mysqldump 和 sql命令导入sql文件

    注意:不是进入mysql命令行操作的::: mysqldump -uroot -p --database x3gbk >x3gbk.sql 回车会出发,输入密码; 直接在-p后输入密码,有时候这 ...

  5. C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?

    C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...

  6. 自定义表单SQL命令行批量删除垃圾留言

    1.每天被恶意留言困扰,花费大量的时间去清理却效果不理想,对于没有能力做二次开发并且靠纯手工删除留言的菜鸟来讲是一个大麻烦. 2.大家都知道织梦的留言内容是存在数据库里的,而数据库的内容是可以批量删除 ...

  7. C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断

    C#保留2位小数几种场景总结   场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.2 ...

  8. Python for Infomatics 第14章 数据库和SQL应用二(译)

    14.4 创建数据库和表 相比Python的列表和字典,数据库需要更多的已定义结构. 在我们创建数据库表之前,我们必须预先告诉数据库表和列的命名,以及计划保存到列中和数据类型.当数据库软件预先知道每列 ...

  9. 如何用SQL命令行工具删除dedecms指定id文章

    用dedecms采集时标题字段设置错了,出现了注释符号<!---->,导致后台的文章列表出现错误,也无法直接从列表中删除,可以远程登录数据库去操作,这个相对比较麻烦,想着直接从后台的SQL ...

  10. 学习 Linux,101: 使用基本 SQL 命令

    概述 在本教程中,将学习结构化查询语言 (SQL),包括: 使用基本 SQL 命令 执行基本数据操作 本教程将简要介绍您需要知道的与 LPI 102 考试相关的 SQL 概念.   回页首 数据库和 ...

随机推荐

  1. App Inventor 网络资源及推荐书目

    Ai2服务器 官方服务器:http://ai2.appinventor.edu/ 官方备用服务器:(大陆可用):http://contest.appinventor.mit.edu/ 国内个人服务器: ...

  2. 浅谈SQL Server中的事务日志(五)----日志在高可用和灾难恢复中的作用

    简介 日志的作用是保证持久性和数据一致性,通过日志可以实现数据的Undo与Redo,因此通过日志,SQL Server不仅仅可以实现灾难恢复,还可以通过日志的Redo来实现高可用性.本篇文章主要讲述日 ...

  3. 什么是PDM?

    PDM的含义 PDM的中文名称为产品数据管理(Product Data Management). PDM是一门用来管理所有与产品相关信息(包括零件信息.配置.文档.CAD文件.结构.权限信息等)和所有 ...

  4. supersocket 通过配置文件启动服务 总是 初始化失败的 解决办法

    <serverTypes> <add name="APPServerType" type="TMPServer.APP.APPServer, TMPSe ...

  5. ring0 恢复SSDTHook

    原理: 用ZwQuerySystemInformation 功能号为11(SystemModuleInformation)  得到所有系统模块的地址 遍历搜索得到ntos模块的基地址 读Ntos模块到 ...

  6. 数据结构与算法分析java——散列

    1. 散列的概念 散列方法的主要思想是根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存 ...

  7. scrum 第四次冲刺

    一.项目目的 为生活在长大的学生提供方快捷的生活服务,通过帖子发现自己志同道合的朋友,记录自己在长大点滴.本项目的意义在于锻炼团队的scrum能力,加强团队合作能力.确定本项目采用的技术方向:本项目整 ...

  8. UESTC 574 High-level ancients

    分析: 无论父节点增加了多少,子节点的增量总比父节点多1. 这种差分的关系是保存不变的,我们可以一遍dfs根据结点深度得到在根结点的每个点的系数. 估且把一开始的结点深度称做c0吧,对于子树的修改就只 ...

  9. Codeforces Round #429

    Table of Contents A. Generous KefaB. GodsendC. Leha and Function A. Generous Kefa One day Kefa found ...

  10. BestCoder Round #81 (div.2)

    HDU:5670~5764 A题: 是一个3进制计数: #include <bits/stdc++.h> using namespace std; ]; int calc(long lon ...