数据库系统原理之SQL(四)
数据库系统原理之SQL(四)
1. 数据更新
插入数据
INSERT…VALUES语句
#插入多条数据
insert [into] table_name (column_name,...) values ({expr | DEFAULT},...),{....}
expr:可以是常量、变量、表达式、也可以是null
DEFAULT:该列的默认值
INSERT…SET语句
#插入一条数据
insert [into] table_name set column_name="张三",column_age=12
INSERT…SELECT语句
#插入子查询出的数据,子查询的字段数量数据类型要和插入表的字段一致
insert [into] table_name [(column_name,...)] select
删除数据
DELETE FROM table_name [WHERE where_condition] [ORDER BY …] [LIMIT row_count]
修改数据
#修改数据,字段=值,条件,
UPDATE table_name SET column_name={expr1|DEFAULT} [,col_name2={expr2|DEFAULT}]
[WHERE where_condition] [ORDER BY …] [LIMIT row_count]
查询数据
SELECT 语句
SELECT [ ALL | DISTINCT | DISTINCTROW ]
select_expr[,expr...] -- 需要查询的字段
FROM table_name -- 查询的表,数据来源
[where where_condition] -- 查询条件
[GROUP BY {column_name | expr | position } -- 对查询的数据分组,
[ASC|DeSC],...[WITH ROLLUP]]
[HAVING where_condition] -- 指定组的选择条件
[ORDER BY {column_name | expr | position } -- 对查询的结果进行排序
[ASC | DESC ]...]
[LIMIT {[offset row_count | row_count OFFSET offset }] -- 限制行数
别名
用select查询的时候可以为查询的字段设置别名,如:
SELECT class_name as name from class
查询班级名称并为字段class_name设置别名name
可以为表设置别名,如:
SELECT * FROM t_class as class where class.name="张三"
查询班级里面名字是张三的人,from的时候设置t_class的别名是class ,后面就可以直接使用别名
替换查询结果集中的数据
查询班级中同学的信息,并且把0代表女,1代表男,直接输出中文
SELECT id,name,age,
case
where sex=0 then "女" -- 如果sex是1,则输出女
where sex=1 then "男" -- 如果sex是0,则输出男
else "未确定" --否正输出未确定
end [as] "性别" -- 设置别名为性别
from class
交叉连接,又称笛卡尔积
select * from table_1 [CROSS JOIN] table_2
内连接,inner join ....on
-- 需要inner join连接用on连接两张表的外键,以形成连接关系
select * from table_1 inner join table_2 on table_1.A=table_2.A
外连接——左外连接(以左边表为基表)left join
select * from table_1 left join table_2 on table_1.A=table_2.A
外连接——右外连接(以右边表为基表)right join
select * from table_1 right join table_2 on table_1.A=table_2.A
where子句条件查询
between,把查询范围确定在某个范围内
-- 查询年龄在18到20之间的学生
select * from students where age between 18 and 20
in,列出所有指定条件的值
-- 查询年龄是18,19,20的学生
select * from students where age in (18,19,20);
-- 查询任意所选课程成绩高于80分的学生的学号和姓名信息
SELECT studentNo,studentName
FROM tb_student
WHERE studentNo IN(SELECT studentNo FROM tb_score WHERE score›80);
Group By 子句
select * from students group by class
HAVING子句(过滤分组)查询班级人数大于60的学生
select * from students group by class having count(*) >= 60
order by子句,排序。ASC升序,DESC降序
SELECT * FROM students ORDER BY age DESC,score DESC;
limit 子句,从第6个同学查询出10个同学
select * from students limit 5,10
数据库系统原理之SQL(四)的更多相关文章
- 数据库系统原理之SQL(三)
数据库系统原理之SQL(三) 1. SQL的组成 1. 数据查询 2. 数据定义 3. 数据操作 4. 数据控制 2. 数据定义语言 CREATE创建数据库或数据库对象 创建数据库 ~~~ CREAT ...
- 数据库系统原理(第四章:SQL与关系数据库基本操作 )
一.SQL概述 sql是结构化查询语言(Structured Query Language,SQL)是专门用来与数 据库通信的语言,它可以帮助用户操作关系数据库. SQL的特点: SQL不是某个特定数 ...
- Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx
Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx 1.1. 数据库的类型,网状,层次,树形数据库,kv数据库.oodb2 1.2. Er模型2 1.3. Sql2 ...
- php面试专题---Mysql索引原理及SQL优化
php面试专题---Mysql索引原理及SQL优化 一.总结 一句话总结: 注意:只写精品 1.为表设置索引要付出代价 是什么? 存储空间:一是增加了数据库的存储空间 修改插入变动索引时间:二是在插入 ...
- 数据库系统原理——ER模型与关系模型
原文链接: http://blog.csdn.net/haovip123/article/details/21614887 犹记得第一次看<数据库系统原理>时看天书的感觉,云里雾里:现在已 ...
- JAVA-Unit01: 数据库原理 、 SQL(DDL、DML)
Unit01: 数据库原理 . SQL(DDL.DML) SQL语句是不区分大小写的,但是行业里习惯将关键字与分关键字用大小写岔开以提高可读性. SELECT SYSDATE FROM dual DD ...
- WebSocket原理与实践(四)--生成数据帧
WebSocket原理与实践(四)--生成数据帧 从服务器发往客户端的数据也是同样的数据帧,但是从服务器发送到客户端的数据帧不需要掩码的.我们自己需要去生成数据帧,解析数据帧的时候我们需要分片. 消息 ...
- Vue双向绑定的实现原理系列(四):补充指令解析器compile
补充指令解析器compile github源码 补充下HTML节点类型的知识: 元素节点 Node.ELEMENT_NODE(1) 属性节点 Node.ATTRIBUTE_NODE(2) 文本节点 N ...
- RocketMQ架构原理解析(四):消息生产端(Producer)
RocketMQ架构原理解析(一):整体架构 RocketMQ架构原理解析(二):消息存储(CommitLog) RocketMQ架构原理解析(三):消息索引(ConsumeQueue & I ...
随机推荐
- 工作流学习之入门demo
/** * Copyright (C), 2015-2018, XXX有限公司 * FileName: DemoMain * Author: happy * Date: 2018/6/23 16:33 ...
- CodeForces-449B(单源最短路,思维)
链接: https://vjudge.net/problem/CodeForces-449B 题意: Jzzhu is the president of country A. There are n ...
- 【JZOJ2156】【2017.7.10普及】复仇者vsX战警之训练
题目 月球上反凤凰装甲在凤凰之力附身霍普之前,将凤凰之力打成五份,分别附身在X战警五大战力上面辐射眼.白皇后.钢力士.秘客和纳摩上(好尴尬,汗). 在凤凰五使徒的至高的力量的威胁下,复仇者被迫逃到昆仑 ...
- 对云信SDK的研究1
1.云信大部分用了jq 2.很多接口 3.是可以文档很健全
- Mysql基本原理和概念
一.引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的问题.通 ...
- 【java工具类】POI导出excel
POI的maven依赖:<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi&l ...
- Shell中的特殊字符(三)
一 通配符 [root@192 test]# touch abc [root@192 test]# touch abcd [root@192 test]# touch 012 [root@192 te ...
- [BZOJ2987]Earthquake:类欧几里得算法
分析 类欧的式子到底是谁推的啊怎么这么神仙啊orz! 简单说一下这道题,题目中的约束条件可以转化为: \[ y \leq \frac{c-ax}{b} \] 有负数怎么办啊?转化一下: \[ y \l ...
- SQL的积累
SQL的积累学习(不常用的经常会忘记,所以以后用到的就会记在下面): --新增字段alter table t_Student add Test varchar(200)--删除字段alter tabl ...
- mysql 安装教程(详细说明)
如果你装过,一定要先卸载干净,并且重启重新装.卸载教程(保证成功)https://www.cnblogs.com/qzhc/p/11354678.html 大家都知道MySQL是一款中.小型关系型数据 ...