MySQL 学习笔记(4)— 组合查询、子查询、插入数据、更新/删除表数据、增加/删除表中的列以及重命名表
1. 组合查询
1、表的加减法
表的加法,即求 product
和 product2
的并集,UNION
运算会除去重复的记录
SELECT product_id, product_name FROM product
UNION
SELECT product_id, product_name FROM product2
要保留重复的行时,使用 UNION ALL
SELECT product_id, product_name FROM product
UNION ALL
SELECT product_id, product_name FROM product2
注意事项:
1、作为运算对象的记录的列数必须相同
2、作为运算对象的记录中列的数据类型必须一致
3、可以使用任何SELECT语句,但是ORDER BY子句只能在最后使用一次
2. 插入数据
SQL
主要提供了两种增加数据的方法:
- INSERT INTO … VALUES … ;
- INSERT INTO … SELECT … ;
首先,第一种形式的语法如下:
INSERT INTO t(col1, col2, ...)
VALUES (value1, value2, ...);
其中,t
是表名;VALUES
子句中提供的值与 INSERT INTO
中的字段数量必须相同,并且数据类型能够兼容。如下示例:
INSERT INTO product (product_id, product_name, product_type, sale_price, purchase_price, regist_date) VALUES ('009', '打印机', '办公用品', 5000, 2000, '2010-03-11');
如果 VALUES
值列表与表中的字段顺序完全一致,可以省略字段列表。
表中插入数据,是按行插入的。
START TRANSACTION; -- 事物开始的标志INSERT INTO product VALUES ('001', 'T恤衫', '衣服', 1000, 500, NULL);
或者连续插入两行
INSERT INTO product (product_id, product_name, product_type, sale_price, purchase_price, regist_date) VALUES ('010', '打印机', '办公用品', 5000, 2000, '2010-03-11'),('011', '篮球', '体育用品', 200, 50, '2014-08-23');
COMMIT; -- 事物结束的标志 COMMIT提交 或者 ROLLBACK 取消提交
3. 更新和删除数据
3.1 更新数据
SQL
使用 UPDATE
语句更新表中的数据,基本语法如下:
UPDATE tSET col1 = expr1,col2 = expr2,...
[WHERE condition];
其中,t
是表名;SET
子句指定了需要更新的列和更新后的值,多个字段使用逗号进行分隔;只有满足 WHERE
条件的数据行才会被更新;如果没有指定条件,将会更新表中所有行。
更新数据库示例:
UPDATE addressbook_new SET country = '美国' WHERE regist_no = 2;UPDATE addressbook_new SET country = '德国';
UPDATE addressbook_new SET country = NULL;# 多列更新UPDATE addressbook_new SET country = '中国', address='北京', tel_no = '110';
3.2 删除数据
SQL
中使用 DELETE
语句删除数据:
DELETE FROM t
[WHERE conditions];
只有满足 WHERE
条件的数据才会被删除;如果省略 WHERE
条件,将会删除表中所有的数据。
数据的删除(只删除表中的数据,表仍然存在)
DELETE FROM addressbook_new WHERE regist_no = 1;DELETE FROM addressbook_new;
DELETE
与 TRUNCATE
区别:
DELETE
语句通过WHERE
条件从表中删除指定的数据;如果不指定条件将会删除所有的数据。DELETE
属于数据操作语言(DML
),删除数据后,可以选择提交或者回滚。如果删除的数据较多时速度比较慢。TRUNCATE
语句用于快速删除表中的所有数据,并且释放表的存储空间。TRUNCATE
属于数据定义语言(DDL
),操作默认提交无法回滚。TRUNCATE
相当于删除表并重建,通常执行速度很快。
4. 删除表结构和数据
删除表结构和数据使用 DROP TABLE
语句。
DROP TABLE product;
5. 添加删除表中的列
添加表中列的语句
ALTER TABLE addressbook ADD COLUMN (列定义)postal_code CHAR(8) NOT NULL;
删除表中列的语句
ALTER TABLE addressbook DROP COLUMN (列名)postal_code
6. 重命名表
RENAME TABLE product TO new_product;
7. 子查询
子查询就是将用来定义视图的 SELECT
语句直接作用于 FROM
子句, 子查询作为内层查询会首先执行。
SELECT product_type, cnt_product
FROM (SELECT product_type, COUNT(*) AS cnt_product FROM product GROUP BY product_type )
AS product_sum;
MySQL 学习笔记(4)— 组合查询、子查询、插入数据、更新/删除表数据、增加/删除表中的列以及重命名表相关推荐
- MySQL 学习笔记(16)— 子查询(单行单列、一行多列、多行多列、 ALL、ANY、SOME 运算符、EXISTS 操作符)
1. 子查询概念 子查询是指嵌套在其他语句(SELECT . INSERT . UPDATE . DELETE 等)中的 SELECT 语句:子查询也称为内查询( inner query )或者嵌套查 ...
- MySQL学习笔记04【数据库的查询操作、今日内容、表的约束】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- 小白终是踏上了这条不归路----小文的mysql学习笔记(8)----分页查询
** 小白终是踏上了这条不归路----小文的mysql学习笔记(1) 小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询 小白终是踏上了这条不归路----小文的mysql学 ...
- 小白终是踏上了这条不归路----小文的mysql学习笔记(6)----连接查询-----等值连接、非等值连接、自链接、外连接、交叉连接
** 小白终是踏上了这条不归路----小文的mysql学习笔记(1) 小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询 小白终是踏上了这条不归路----小文的mysql学 ...
- MySQL 学习笔记(15)— 连接查询(内连接、左外连接、右外连接、全外连接、交叉连接、自然连接等)
本文参考:https://gitbook.cn/gitchat/column/undefined/topic/5db92b68a9c3a53bc3800eff SQL 支持的连接查询包括内连接.外连接 ...
- mysql学习(5) - 使用子查询
mysql4.1之后,可以使用子查询进行数据的查询 成为子句的查询条件,只能是单列进行查询 在实际使用的时候,最好不要嵌套太多子查询,会降低性能 子查询通常使用在where语句的in条件中,或者查询列 ...
- Mysql学习笔记(6)分页查询、联合查询、DML语言
分页查询 limit SELECT * FROM employees LIMIT 0,5; # 从0开始,可省略起始索引 SELECT * FROM employees LIMIT 5 联合查询 插入 ...
- MySQL学习笔记(6)—— 慢查询日志和索引
文章目录 一. 慢查询日志 1. MySQL的各种日志 2. 认识慢查询日志 3. 开启慢查询日志 4. 示例 二.查询分析器EXPLAIN 1. explain简介 2. explain的使用 3. ...
- MySQL 学习笔记(5)— 视图优缺点、创建视图、修改视图、删除视图
1. 视图概念 简单来说,视图就是一个预定义的查询语句.视图在许多情况下可以当作表来使用,因此也被称为虚拟表(Virtual Table). 视图与表最大的区别在于它不包含数据,数据库中只存储视图的定 ...
最新文章
- 关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了
- 统计学习方法 第一章 学习笔记
- SpringBoot入门:新一代Java模板引擎Thymeleaf(理论)
- ueditor html中使用方法,vue集成百度UEditor富文本编辑器使用教程
- C++学习之路 | PTA乙级—— 1031 查验身份证 (15 分)(精简)
- POJ 1182	 食物链
- 苹果分屏软件_Mac软件推荐
- 手眼标定原理ur5_手眼标定实现
- 【翻译】CRAFT:Character Region Awareness for Text Detection
- c++多线程学习11 packaged_task与async
- 腾讯ai开放平台(智能闲聊)sdk----- python3.X
- 快讯 | Elon Musk拟跨界做喜剧,号称要建立跨星系传媒帝国Thud!(轰!)
- pytest接口自动化测试框架 | 用python代码测试接口
- 下载神器IDM安装与使用(保姆级教程)
- 第1.4章:FE开发环境搭建(拓展篇)
- 设计模式:工厂设计模式
- Java,天生丽质乱人眼 zz
- 推荐10款免费开源的网店系统
- 程序员一定要明白的架构:三地五中心(1)
- 针对WIN7系统装上驱动后,设备管理器里的设备有黄色的感叹号的问题(转)