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 学习笔记(5)— 视图优缺点