1. 组合查询

1、表的加减法
表的加法,即求 productproduct2 的并集,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;

DELETETRUNCATE 区别:

  • 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)— 组合查询、子查询、插入数据、更新/删除表数据、增加/删除表中的列以及重命名表相关推荐

  1. MySQL 学习笔记(16)— 子查询(单行单列、一行多列、多行多列、 ALL、ANY、SOME 运算符、EXISTS 操作符)

    1. 子查询概念 子查询是指嵌套在其他语句(SELECT . INSERT . UPDATE . DELETE 等)中的 SELECT 语句:子查询也称为内查询( inner query )或者嵌套查 ...

  2. MySQL学习笔记04【数据库的查询操作、今日内容、表的约束】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  3. 小白终是踏上了这条不归路----小文的mysql学习笔记(8)----分页查询

    ** 小白终是踏上了这条不归路----小文的mysql学习笔记(1) 小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询 小白终是踏上了这条不归路----小文的mysql学 ...

  4. 小白终是踏上了这条不归路----小文的mysql学习笔记(6)----连接查询-----等值连接、非等值连接、自链接、外连接、交叉连接

    ** 小白终是踏上了这条不归路----小文的mysql学习笔记(1) 小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询 小白终是踏上了这条不归路----小文的mysql学 ...

  5. MySQL 学习笔记(15)— 连接查询(内连接、左外连接、右外连接、全外连接、交叉连接、自然连接等)

    本文参考:https://gitbook.cn/gitchat/column/undefined/topic/5db92b68a9c3a53bc3800eff SQL 支持的连接查询包括内连接.外连接 ...

  6. mysql学习(5) - 使用子查询

    mysql4.1之后,可以使用子查询进行数据的查询 成为子句的查询条件,只能是单列进行查询 在实际使用的时候,最好不要嵌套太多子查询,会降低性能 子查询通常使用在where语句的in条件中,或者查询列 ...

  7. Mysql学习笔记(6)分页查询、联合查询、DML语言

    分页查询 limit SELECT * FROM employees LIMIT 0,5; # 从0开始,可省略起始索引 SELECT * FROM employees LIMIT 5 联合查询 插入 ...

  8. MySQL学习笔记(6)—— 慢查询日志和索引

    文章目录 一. 慢查询日志 1. MySQL的各种日志 2. 认识慢查询日志 3. 开启慢查询日志 4. 示例 二.查询分析器EXPLAIN 1. explain简介 2. explain的使用 3. ...

  9. MySQL 学习笔记(5)— 视图优缺点、创建视图、修改视图、删除视图

    1. 视图概念 简单来说,视图就是一个预定义的查询语句.视图在许多情况下可以当作表来使用,因此也被称为虚拟表(Virtual Table). 视图与表最大的区别在于它不包含数据,数据库中只存储视图的定 ...

最新文章

  1. 关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了
  2. 统计学习方法 第一章 学习笔记
  3. SpringBoot入门:新一代Java模板引擎Thymeleaf(理论)
  4. ueditor html中使用方法,vue集成百度UEditor富文本编辑器使用教程
  5. C++学习之路 | PTA乙级—— 1031 查验身份证 (15 分)(精简)
  6. POJ 1182 食物链
  7. 苹果分屏软件_Mac软件推荐
  8. 手眼标定原理ur5_手眼标定实现
  9. 【翻译】CRAFT:Character Region Awareness for Text Detection
  10. c++多线程学习11 packaged_task与async
  11. 腾讯ai开放平台(智能闲聊)sdk----- python3.X
  12. 快讯 | Elon Musk拟跨界做喜剧,号称要建立跨星系传媒帝国Thud!(轰!)
  13. pytest接口自动化测试框架 | 用python代码测试接口
  14. 下载神器IDM安装与使用(保姆级教程)
  15. 第1.4章:FE开发环境搭建(拓展篇)
  16. 设计模式:工厂设计模式
  17. Java,天生丽质乱人眼 zz
  18. 推荐10款免费开源的网店系统
  19. 程序员一定要明白的架构:三地五中心(1)
  20. 针对WIN7系统装上驱动后,设备管理器里的设备有黄色的感叹号的问题(转)

热门文章

  1. 一文吃透JAVA定时器格式
  2. 进入Docker容器命令
  3. Go 学习笔记(81)— Go 性能分析工具 pprof
  4. Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法
  5. trinosql_prestosql问题
  6. Python中常见字符串去除空格的方法总结
  7. vue响应式给数组中的对象添加新属性
  8. 新材料,比钢硬一倍,但重量只有钢1/6
  9. Xilinx FPGA全局介绍
  10. 使用Keil语言的嵌入式C编程教程(上)