第一章 - 了解SQL

  • 数据库:数据库是一些关联表的集合。可以类比是一座图书馆
  • 表:表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。可以类比是图书馆里的书
  • 列:一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。

第二章 - MySQL简介

  • MySQL 8.0.19安装教程
  • Navicat15最新版本破解和破解报错总结

第三章 - 使用MySQL

输入mysql -u root -p之后输入密码即可连接数据库

G:\mysql-8.0.21\bin>mysql -u root -p
Enter password: ***
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.21 MySQL Community Server - GPLCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

输入show databases即可显示数据库列表

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| crashcourse        |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

输入use crashcourse即可选择’crashcourse’这个数据库

mysql> use crashcourse
Database changed

输入show tables;即可查看数据库内表的列表

mysql> show tables;
+-----------------------+
| Tables_in_crashcourse |
+-----------------------+
| customers             |
| orderitems            |
| orders                |
| productnotes          |
| products              |
| vendors               |
+-----------------------+

第四章 - 检索数据

检索单个列

输入:  SELECT prod_name FROM products;
+----------------+
| prod_name      |
+----------------+
| .5 ton anvil   |
| 1 ton anvil    |
| 2 ton anvil    |
| Detonator      |
| Bird seed      |
| Carrots        |
| Fuses          |
| JetPack 1000   |
| JetPack 2000   |
| Oil can        |
| Safe           |
| Sling          |
| TNT (1 stick)  |
| TNT (5 sticks) |
+----------------+

检索多个列

输入:  SELECT prod_id, prod_name, prod_priceFROM products;
+---------+----------------+------------+
| prod_id | prod_name      | prod_price |
+---------+----------------+------------+
| ANV01   | .5 ton anvil   |       5.99 |
| ANV02   | 1 ton anvil    |       9.99 |
| ANV03   | 2 ton anvil    |      14.99 |
| DTNTR   | Detonator      |      13.00 |
| FB      | Bird seed      |      10.00 |
| FC      | Carrots        |       2.50 |
| FU1     | Fuses          |       3.42 |
| JP1000  | JetPack 1000   |      35.00 |
| JP2000  | JetPack 2000   |      55.00 |
| OL1     | Oil can        |       8.99 |
| SAFE    | Safe           |      50.00 |
| SLING   | Sling          |       4.49 |
| TNT1    | TNT (1 stick)  |       2.50 |
| TNT2    | TNT (5 sticks) |      10.00 |
+---------+----------------+------------+

检索所有列

输入:  SELECT *FROM products;
+---------+---------+----------------+------------+----------------------------------------------------------------+
| prod_id | vend_id | prod_name      | prod_price | prod_desc                                                      |
+---------+---------+----------------+------------+----------------------------------------------------------------+
| ANV01   |    1001 | .5 ton anvil   |       5.99 | .5 ton anvil, black, complete with handy hook                  |
| ANV02   |    1001 | 1 ton anvil    |       9.99 | 1 ton anvil, black, complete with handy hook and carrying case |
| ANV03   |    1001 | 2 ton anvil    |      14.99 | 2 ton anvil, black, complete with handy hook and carrying case |
| DTNTR   |    1003 | Detonator      |      13.00 | Detonator (plunger powered), fuses not included                |
| FB      |    1003 | Bird seed      |      10.00 | Large bag (suitable for road runners)                          |
| FC      |    1003 | Carrots        |       2.50 | Carrots (rabbit hunting season only)                           |
| FU1     |    1002 | Fuses          |       3.42 | 1 dozen, extra long                                            |
| JP1000  |    1005 | JetPack 1000   |      35.00 | JetPack 1000, intended for single use                          |
| JP2000  |    1005 | JetPack 2000   |      55.00 | JetPack 2000, multi-use                                        |
| OL1     |    1002 | Oil can        |       8.99 | Oil can, red                                                   |
| SAFE    |    1003 | Safe           |      50.00 | Safe with combination lock                                     |
| SLING   |    1003 | Sling          |       4.49 | Sling, one size fits all                                       |
| TNT1    |    1003 | TNT (1 stick)  |       2.50 | TNT, red, single stick                                         |
| TNT2    |    1003 | TNT (5 sticks) |      10.00 | TNT, red, pack of 10 sticks                                    |
+---------+---------+----------------+------------+----------------------------------------------------------------+

检索不同的行

输入:  SELECT vend_idFROM products;
+---------+
| vend_id |
+---------+
|    1001 |
|    1001 |
|    1001 |
|    1002 |
|    1002 |
|    1003 |
|    1003 |
|    1003 |
|    1003 |
|    1003 |
|    1003 |
|    1003 |
|    1005 |
|    1005 |
+---------+

如何检索出不同值的列表呢?在前面加上DISTINCT关键字

输入:  SELECT  DISTINCT vend_idFROM products;
+---------+
| vend_id |
+---------+
|    1001 |
|    1002 |
|    1003 |
|    1005 |
+---------+

限制结果

输入:  SELECT  prod_nameFROM productsLIMIT 5;
+--------------+
| prod_name    |
+--------------+
| .5 ton anvil |
| 1 ton anvil  |
| 2 ton anvil  |
| Detonator    |
| Bird seed    |
+--------------+

如何从指定的行数返回限制的行数呢?在这里主义第一行的序号是0。

输入:  SELECT  prod_nameFROM productsLIMIT 10,5;
+----------------+
| prod_name      |
+----------------+
| Safe           |
| Sling          |
| TNT (1 stick)  |
| TNT (5 sticks) |
+----------------+
4 rows in set (0.00 sec)

第五章 - 排序检索结果

排序数据

输入:  SELECT  prod_nameFROM productsORDER BY prod_name;
+----------------+
| prod_name      |
+----------------+
| .5 ton anvil   |
| 1 ton anvil    |
| 2 ton anvil    |
| Bird seed      |
| Carrots        |
| Detonator      |
| Fuses          |
| JetPack 1000   |
| JetPack 2000   |
| Oil can        |
| Safe           |
| Sling          |
| TNT (1 stick)  |
| TNT (5 sticks) |
+----------------+

按多个列排序

输入:  SELECT  prod_id, prod_name, prod_priceFROM productsORDER BY prod_price, prod_name;
+---------+----------------+------------+
| prod_id | prod_name      | prod_price |
+---------+----------------+------------+
| FC      | Carrots        |       2.50 |
| TNT1    | TNT (1 stick)  |       2.50 |
| FU1     | Fuses          |       3.42 |
| SLING   | Sling          |       4.49 |
| ANV01   | .5 ton anvil   |       5.99 |
| OL1     | Oil can        |       8.99 |
| ANV02   | 1 ton anvil    |       9.99 |
| FB      | Bird seed      |      10.00 |
| TNT2    | TNT (5 sticks) |      10.00 |
| DTNTR   | Detonator      |      13.00 |
| ANV03   | 2 ton anvil    |      14.99 |
| JP1000  | JetPack 1000   |      35.00 |
| SAFE    | Safe           |      50.00 |
| JP2000  | JetPack 2000   |      55.00 |
+---------+----------------+------------+

在这里只有prod_price相等时才再按照prod_name排序。

指定排序方向

输入:  SELECT  prod_id, prod_name, prod_priceFROM productsORDER BY prod_price DESC, prod_name;
+---------+----------------+------------+
| prod_id | prod_name      | prod_price |
+---------+----------------+------------+
| JP2000  | JetPack 2000   |      55.00 |
| SAFE    | Safe           |      50.00 |
| JP1000  | JetPack 1000   |      35.00 |
| ANV03   | 2 ton anvil    |      14.99 |
| DTNTR   | Detonator      |      13.00 |
| FB      | Bird seed      |      10.00 |
| TNT2    | TNT (5 sticks) |      10.00 |
| ANV02   | 1 ton anvil    |       9.99 |
| OL1     | Oil can        |       8.99 |
| ANV01   | .5 ton anvil   |       5.99 |
| SLING   | Sling          |       4.49 |
| FU1     | Fuses          |       3.42 |
| FC      | Carrots        |       2.50 |
| TNT1    | TNT (1 stick)  |       2.50 |
+---------+----------------+------------+

第六章 - 过滤数据

WHERE字句

输入:  SELECT  prod_name, prod_priceFROM productsWHERE prod_price = 2.50;
+---------------+------------+
| prod_name     | prod_price |
+---------------+------------+
| Carrots       |       2.50 |
| TNT (1 stick) |       2.50 |
+---------------+------------+

WHERE子句操作符

操作符 说明
= 等于
<> 不等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
BETWEEN 介于两者之间

范围值检查

输入:  SELECT  prod_name, prod_priceFROM productsWHERE prod_price BETWEEN 5 AND 10;
+----------------+------------+
| prod_name      | prod_price |
+----------------+------------+
| .5 ton anvil   |       5.99 |
| 1 ton anvil    |       9.99 |
| Bird seed      |      10.00 |
| Oil can        |       8.99 |
| TNT (5 sticks) |      10.00 |
+----------------+------------+

空值检查

输入:  SELECT  cust_idFROM customersWHERE cust_email IS NULL;
+---------+
| cust_id |
+---------+
|   10002 |
|   10005 |
+---------+

第七章 - 数据过滤

AND操作符

输入:SELECT prod_id, prod_name, prod_priceFROM productsWHERE vend_id = 1003 AND prod_price <= 10;
+---------+----------------+------------+
| prod_id | prod_name      | prod_price |
+---------+----------------+------------+
| FB      | Bird seed      |      10.00 |
| FC      | Carrots        |       2.50 |
| SLING   | Sling          |       4.49 |
| TNT1    | TNT (1 stick)  |       2.50 |
| TNT2    | TNT (5 sticks) |      10.00 |
+---------+----------------+------------+

OR操作符

输入:SELECT prod_name,prod_priceFROM productsWHERE vend_id = 1002 OR vend_id = 1003;
+----------------+------------+
| prod_name      | prod_price |
+----------------+------------+
| Fuses          |       3.42 |
| Oil can        |       8.99 |
| Detonator      |      13.00 |
| Bird seed      |      10.00 |
| Carrots        |       2.50 |
| Safe           |      50.00 |
| Sling          |       4.49 |
| TNT (1 stick)  |       2.50 |
| TNT (5 sticks) |      10.00 |
+----------------+------------+

计算次序

AND在计算次序中优先级更高,混合使用记得加括号。

IN操作符

输入:SELECT prod_name, prod_priceFROM productsWHERE vend_id IN (1002,1003)ORDER BY prod_name;
+----------------+------------+
| prod_name      | prod_price |
+----------------+------------+
| Bird seed      |      10.00 |
| Carrots        |       2.50 |
| Detonator      |      13.00 |
| Fuses          |       3.42 |
| Oil can        |       8.99 |
| Safe           |      50.00 |
| Sling          |       4.49 |
| TNT (1 stick)  |       2.50 |
| TNT (5 sticks) |      10.00 |
+----------------+------------+

NOT操作符

输入:SELECT prod_name, prod_priceFROM productsWHERE vend_id NOT IN (1002,1003)ORDER BY prod_name;
+--------------+------------+
| prod_name    | prod_price |
+--------------+------------+
| .5 ton anvil |       5.99 |
| 1 ton anvil  |       9.99 |
| 2 ton anvil  |      14.99 |
| JetPack 1000 |      35.00 |
| JetPack 2000 |      55.00 |
+--------------+------------+

第八章 - 用通配符进行过滤

LIKE 操作符

输入:SELECT prod_id, prod_nameFROM productsWHERE prod_name LIKE 'jet%';
+---------+--------------+
| prod_id | prod_name    |
+---------+--------------+
| JP1000  | JetPack 1000 |
| JP2000  | JetPack 2000 |
+---------+--------------+

%通配符

%表示任何字符出现任意次数

_通配符

_只能匹配一个字符

第九章 - 用正则表达式进行搜索

基本用法

WHERE XXX REGEXP 'XXX'

匹配多个实例

元字符 说明
* 0个或多个匹配
+ 1个或多个匹配, 等于{1,}
? 0个或一个匹配{0,1}
{n} 指定书目的匹配
{n,} 不少于指定的匹配
{n,m} 指定范围的匹配(m < 255)

定位符

元字符 说明
^ 文本的开始
$ 文本的结尾
[[:<:]] 词的开始
[[:>:]] 词的结尾

第十章 - 创建计算字段

拼接字段且使用别名

输入:SELECT Concat(Rtrim(vend_name),'(' , Rtrim(vend_country), ')') AS vend_titleFROM vendorsORDER BY vend_name;
+------------------------+
| vend_title             |
+------------------------+
| ACME(USA)              |
| Anvils R Us(USA)       |
| Furball Inc.(USA)      |
| Jet Set(England)       |
| Jouets Et Ours(France) |
| LT Supplies(USA)       |
+------------------------+

执行算数计算

输入:SELECT prod_id,quantity,item_price,quantity*item_price AS expanded_priceFROM orderitemsWHERE order_num = 20005;
+---------+----------+------------+----------------+
| prod_id | quantity | item_price | expanded_price |
+---------+----------+------------+----------------+
| ANV01   |       10 |       5.99 |          59.90 |
| ANV02   |        3 |       9.99 |          29.97 |
| TNT2    |        5 |      10.00 |          50.00 |
| FB      |        1 |      10.00 |          10.00 |
+---------+----------+------------+----------------+

第十一章 - 使用数据处理函数

常用的文本处理函数

函数 说明
left() 返回串左边的字符
Right() 返回串右边的字符
Length() 返回串的长度
Lower() 将串转化为小写
Upper() 将串转化为大写
ltrim() 去掉串左边的空格
Rtrim() 取点串右边的空格
Soundex() 返回串的Soundex值
SubString() 返回子串的字符

常用日期和时间处理函数

第十二章 - 汇总数据

聚集函数

函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数 COUNT(*)包含空值
MIN() 返回某列的最小值
MAX() 返回某列的最大值
SUM() 返回某列的和
SELECT COUNT(*) AS num_items,MIN(prod_price) AS price_min,MAX(prod_price) AS price_max,AVG(prod_price) AS price_avgFROM products;
+-----------+-----------+-----------+-----------+
| num_items | price_min | price_max | price_avg |
+-----------+-----------+-----------+-----------+
|        14 |      2.50 |     55.00 | 16.133571 |
+-----------+-----------+-----------+-----------+

第十三章 - 分组数据

SELECT order_num, SUM(quantity * item_price) AS ordertotal
FROM orderitems
GROUP BY order_num
HAVING SUM(quantity * item_price) >= 50
ORDER BY ordertotal;
+-----------+------------+
| order_num | ordertotal |
+-----------+------------+
|     20006 |      55.00 |
|     20008 |     125.00 |
|     20005 |     149.87 |
|     20007 |    1000.00 |
+-----------+------------+

SELECT子语句的顺序:SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY -> LIMIT

第十四章 - 使用子查询

例子:列出订购TN2物品的所有客户

SELECT cust_name, cust_contact
FROM customers
WHERE cust_id IN (SELECT cust_idFROM ordersWHERE order_num IN (SELECT order_numFROM orderitemsWHERE prod_id = 'TNT2'));
+----------------+--------------+
| cust_name      | cust_contact |
+----------------+--------------+
| Coyote Inc.    | Y Lee        |
| Yosemite Place | Y Sam        |
+----------------+--------------+

第十五章 - 联结表

创建联结

SELECT vend_name, prod_name, prod_price
FROM vendors INNER JOIN products
ON vendors.vend_id = products.vend_id
ORDER BY vend_name, prod_name;
+-------------+----------------+------------+
| vend_name   | prod_name      | prod_price |
+-------------+----------------+------------+
| ACME        | Bird seed      | 10.00      |
| ACME        | Carrots        | 2.50       |
| ACME        | Detonator      | 13.00      |
| ACME        | Safe           | 50.00      |
| ACME        | Sling          | 4.49       |
| ACME        | TNT (1 stick)  | 2.50       |
| ACME        | TNT (5 sticks) | 10.00      |
| Anvils R Us | .5 ton anvil   | 5.99       |
| Anvils R Us | 1 ton anvil    | 9.99       |
| Anvils R Us | 2 ton anvil    | 14.99      |
| Jet Set     | JetPack 1000   | 35.00      |
| Jet Set     | JetPack 2000   | 55.00      |
| LT Supplies | Fuses          | 3.42       |
| LT Supplies | Oil can        | 8.99       |
+-------------+----------------+------------+

联结多个表

例子:显示编号为20005订单里的物品

SELECT prod_name, vend_name, prod_price, quantity
FROM products, vendors, orderitems
WHERE vendors.vend_id = products.vend_id
AND   orderitems.prod_id = products.prod_id
AND   orderitems.order_num = 20005;
+----------------+-------------+------------+----------+
| prod_name      | vend_name   | prod_price | quantity |
+----------------+-------------+------------+----------+
| .5 ton anvil   | Anvils R Us | 5.99       |       10 |
| 1 ton anvil    | Anvils R Us | 9.99       |        3 |
| TNT (5 sticks) | ACME        | 10.00      |        5 |
| Bird seed      | ACME        | 10.00      |        1 |
+----------------+-------------+------------+----------+

第十六章 - 创建高级联结

使用表别名

  • 可以缩短SQL语句
  • 可以在单条SELECT语句中多次使用相同的表

自联结

例子:加入发现ID为DTNTR存在问题,想知道提供该物品的供应商的别的物品是否也存在问题

SELECT p1.prod_id, p1.prod_name
FROM products AS p1 ,products AS p2
WHERE p1.vend_id = p2.vend_id
AND   p2.prod_id = 'DTNTR';
+---------+----------------+
| prod_id | prod_name      |
+---------+----------------+
| DTNTR   | Detonator      |
| FB      | Bird seed      |
| FC      | Carrots        |
| SAFE    | Safe           |
| SLING   | Sling          |
| TNT1    | TNT (1 stick)  |
| TNT2    | TNT (5 sticks) |
+---------+----------------+

外部联结

例子:检索所有客户的订单

SELECT c.cust_id, o.order_num
FROM customers AS c LEFT JOIN orders AS o
ON c.cust_id = o.cust_id;
+---------+-----------+
| cust_id | order_num |
+---------+-----------+
|   10001 |     20005 |
|   10001 |     20009 |
|   10002 |     NULL  |
|   10003 |     20006 |
|   10004 |     20007 |
|   10005 |     20008 |
+---------+-----------+

使用带聚集函数的联结

例子:检索所有客户及每个客户说下的订单数

SELECT c.cust_id, c.cust_name, COUNT(o.order_num) AS num_ord
FROM customers AS c LEFT JOIN orders AS o
ON c.cust_id = o.cust_id
GROUP BY c.cust_id;
+---------+----------------+---------+
| cust_id | cust_name      | num_ord |
+---------+----------------+---------+
|   10001 | Coyote Inc.    |       2 |
|   10002 | Mouse House    |       0 |
|   10003 | Wascals        |       1 |
|   10004 | Yosemite Place |       1 |
|   10005 | E Fudd         |       1 |
+---------+----------------+---------+

使用联结和联结条件

  • 保证正确的联结条件

第十七章 - 组合查询

例子:加入需要价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产的物品(不包括价格)

SELECT vend_id, prod_name, prod_price
FROM products
WHERE prod_price <= 5
UNION ALL
SELECT vend_id, prod_name, prod_price
FROM products
WHERE vend_id IN (1001,1002)
ORDER BY vend_id, prod_price;
+---------+---------------+------------+
| vend_id | prod_name     | prod_price |
+---------+---------------+------------+
|    1001 | .5 ton anvil  | 5.99       |
|    1001 | 1 ton anvil   | 9.99       |
|    1001 | 2 ton anvil   | 14.99      |
|    1002 | Fuses         | 3.42       |
|    1002 | Fuses         | 3.42       |
|    1002 | Oil can       | 8.99       |
|    1003 | Carrots       | 2.50       |
|    1003 | TNT (1 stick) | 2.50       |
|    1003 | Sling         | 4.49       |
+---------+---------------+------------+

第十八章 - 全文本搜索

理解全文本搜索

  • MyISAM引擎支持全文本搜索
  • InnoDN不支持全文本搜索

进行全文本搜索

使用两个函数 Match()指定被搜索的列 和 Against()指定要用的搜索表达式

SELECT note_text
FROM productnotes
WHERE Match(note_text) Against('rabbit');
+---------------------------------------------------------------------------------------------------------------------+
| note_text                                                                                                           |
+---------------------------------------------------------------------------------------------------------------------+
| Customer complaint: rabbit has been able to detect trap, food apparently less effective now.                        |
| Quantity varies, sold by the sack load.
All guaranteed to be bright and orange, and suitable for use as rabbit bait. |
+---------------------------------------------------------------------------------------------------------------------+

布尔文本搜索(略)

感觉用的不是很多

第十九章 - 插入数据

插入完整的行

例子:插入一个新客户到customers表

+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
| cust_id | cust_name      | cust_address        | cust_city | cust_state | cust_zip | cust_country | cust_contact | cust_email          |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
|   10001 | Coyote Inc.    | 200 Maple Lane      | Detroit   | MI         | 44444    | USA          | Y Lee        | ylee@coyote.com     |
|   10002 | Mouse House    | 333 Fromage Lane    | Columbus  | OH         | 43333    | USA          | Jerry Mouse  | NULL                |
|   10003 | Wascals        | 1 Sunny Place       | Muncie    | IN         | 42222    | USA          | Jim Jones    | rabbit@wascally.com |
|   10004 | Yosemite Place | 829 Riverside Drive | Phoenix   | AZ         | 88888    | USA          | Y Sam        | sam@yosemite.com    |
|   10005 | E Fudd         | 4545 53rd Street    | Chicago   | IL         | 54545    | USA          | E Fudd       | NULL                |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
INSERT INTO customers (cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email)
VALUES ('Pep E.LaPew',
'100 Main street',
'Los Angeles',
'CA','90046',
'USA',
NULL,
NULL);
+---------+----------------+---------------------+-------------+------------+----------+--------------+--------------+---------------------+
| cust_id | cust_name      | cust_address        | cust_city   | cust_state | cust_zip | cust_country | cust_contact | cust_email          |
+---------+----------------+---------------------+-------------+------------+----------+--------------+--------------+---------------------+
|   10001 | Coyote Inc.    | 200 Maple Lane      | Detroit     | MI         | 44444    | USA          | Y Lee        | ylee@coyote.com     |
|   10002 | Mouse House    | 333 Fromage Lane    | Columbus    | OH         | 43333    | USA          | Jerry Mouse  | NULL                |
|   10003 | Wascals        | 1 Sunny Place       | Muncie      | IN         | 42222    | USA          | Jim Jones    | rabbit@wascally.com |
|   10004 | Yosemite Place | 829 Riverside Drive | Phoenix     | AZ         | 88888    | USA          | Y Sam        | sam@yosemite.com    |
|   10005 | E Fudd         | 4545 53rd Street    | Chicago     | IL         | 54545    | USA          | E Fudd       | NULL                |
|   10006 | Pep E.LaPew    | 100 Main street     | Los Angeles | CA         | 90046    | USA          | NULL         | NULL                |
+---------+----------------+---------------------+-------------+------------+----------+--------------+--------------+---------------------+

插入多个行

直接用多条INSERT 语句即可,中间用’;'隔开即可

插入检索出的数据

配合着SELECT语句即可

第二十章 - 更新和删除数据

更新数据

例子:10005客户现在有了电子邮件地址,因此需要更新

UPDATE customers
SET cust_email = 'elmer@fudd.com'
WHERE cust_id = 10005;
+---------+----------------+---------------------+-------------+------------+----------+--------------+--------------+---------------------+
| cust_id | cust_name      | cust_address        | cust_city   | cust_state | cust_zip | cust_country | cust_contact | cust_email          |
+---------+----------------+---------------------+-------------+------------+----------+--------------+--------------+---------------------+
|   10001 | Coyote Inc.    | 200 Maple Lane      | Detroit     | MI         | 44444    | USA          | Y Lee        | ylee@coyote.com     |
|   10002 | Mouse House    | 333 Fromage Lane    | Columbus    | OH         | 43333    | USA          | Jerry Mouse  | NULL                |
|   10003 | Wascals        | 1 Sunny Place       | Muncie      | IN         | 42222    | USA          | Jim Jones    | rabbit@wascally.com |
|   10004 | Yosemite Place | 829 Riverside Drive | Phoenix     | AZ         | 88888    | USA          | Y Sam        | sam@yosemite.com    |
|   10005 | E Fudd         | 4545 53rd Street    | Chicago     | IL         | 54545    | USA          | E Fudd       | elmer@fudd.com      |
|   10006 | Pep E.LaPew    | 100 Main street     | Los Angeles | CA         | 90046    | USA          | NULL         | NULL                |
+---------+----------------+---------------------+-------------+------------+----------+--------------+--------------+---------------------+

删除数据

DELETE FROM customers
WHERE cust_id = 10006;
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
| cust_id | cust_name      | cust_address        | cust_city | cust_state | cust_zip | cust_country | cust_contact | cust_email          |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
|   10001 | Coyote Inc.    | 200 Maple Lane      | Detroit   | MI         | 44444    | USA          | Y Lee        | ylee@coyote.com     |
|   10002 | Mouse House    | 333 Fromage Lane    | Columbus  | OH         | 43333    | USA          | Jerry Mouse  | NULL                |
|   10003 | Wascals        | 1 Sunny Place       | Muncie    | IN         | 42222    | USA          | Jim Jones    | rabbit@wascally.com |
|   10004 | Yosemite Place | 829 Riverside Drive | Phoenix   | AZ         | 88888    | USA          | Y Sam        | sam@yosemite.com    |
|   10005 | E Fudd         | 4545 53rd Street    | Chicago   | IL         | 54545    | USA          | E Fudd       | elmer@fudd.com      |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+

第二十一章

创建表

例子:以customers的创建为例

CREATE TABLE customers
(cust_id         int             NOT NULL AUTO_INCREMENT,cust_name       char(50)        NOT NULL,cust_address    char(50)        NULL,cust_city       char(50)        NULL,cust_state      char(5)         NULL,cust_zip        char(10)        NULL,cust_country    char(50)        NULL,cust_contact    char(50)        NULL,cust_email      char(255)       NULL,PRIMARY KEY (cust_id)
)ENGINE = InooDB;

更新表

ALTER TABLE vendors
ADD vend_phone CHAR(20);
+---------+----------------+-----------------+-------------+------------+----------+--------------+------------+
| vend_id | vend_name      | vend_address    | vend_city   | vend_state | vend_zip | vend_country | vend_phone |
+---------+----------------+-----------------+-------------+------------+----------+--------------+------------+
|    1001 | Anvils R Us    | 123 Main Street | Southfield  | MI         | 48075    | USA          | NULL       |
|    1002 | LT Supplies    | 500 Park Street | Anytown     | OH         | 44333    | USA          | NULL       |
|    1003 | ACME           | 555 High Street | Los Angeles | CA         | 90046    | USA          | NULL       |
|    1004 | Furball Inc.   | 1000 5th Avenue | New York    | NY         | 11111    | USA          | NULL       |
|    1005 | Jet Set        | 42 Galaxy Road  | London      | NULL       | N16 6PS  | England      | NULL       |
|    1006 | Jouets Et Ours | 1 Rue Amusement | Paris       | NULL       | 45678    | France       | NULL       |
+---------+----------------+-----------------+-------------+------------+----------+--------------+------------+
ALTER TABLE vendors
DROP vend_phone;
+---------+----------------+-----------------+-------------+------------+----------+--------------+
| vend_id | vend_name      | vend_address    | vend_city   | vend_state | vend_zip | vend_country |
+---------+----------------+-----------------+-------------+------------+----------+--------------+
|    1001 | Anvils R Us    | 123 Main Street | Southfield  | MI         | 48075    | USA          |
|    1002 | LT Supplies    | 500 Park Street | Anytown     | OH         | 44333    | USA          |
|    1003 | ACME           | 555 High Street | Los Angeles | CA         | 90046    | USA          |
|    1004 | Furball Inc.   | 1000 5th Avenue | New York    | NY         | 11111    | USA          |
|    1005 | Jet Set        | 42 Galaxy Road  | London      | NULL       | N16 6PS  | England      |
|    1006 | Jouets Et Ours | 1 Rue Amusement | Paris       | NULL       | 45678    | France       |
+---------+----------------+-----------------+-------------+------------+----------+--------------+

删除表

DROP TABLE customers2;

重命名表

RENAME TBALE customers2 TO customers;

MySQL学习记录(11.9更新)相关推荐

  1. MySQL学习记录 (五) ----- 存储函数、存储过程和触发器

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  2. Android 学习记录(持续更新)

    Android 学习记录(持续更新) 1.AndroidManifest.xml 详解: http://www.jb51.net/article/73731.htm (AndroidManifest. ...

  3. MySQL学习记录04where条件子句、联表查询、子查询

    文章目录 MySQL学习记录04where条件子句.联表查询.子查询 4.1DQL 4.2指定查询字段 4.3where条件子句 4.4联表查询 4.5分页和排序 4.6子查询 MySQL学习记录04 ...

  4. Mysql学习记录(6)

    Mysql学习记录(1) Mysql学习记录(2) Mysql学习记录(3) Mysql学习记录(4) Mysql学习记录(5) Day06 12.变量 12.1系统变量 12.1.1全局变量 12. ...

  5. MySQL学习记录 (三) ----- SQL数据定义语句(DDL)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  6. MySQL学习记录 (四) ----- SQL数据管理语句(DML)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  7. MySQL学习记录 (二) ----- SQL数据查询语句(DQL)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  8. MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  9. 力扣学习记录(每日更新)

    文章目录 引言 简单 力扣:1 两数之和 力扣:20 有效的括号 力扣:21 合并两个有序链表 力扣:22 括号生成 力扣:27 移除元素 力扣: 35 搜索插入位置 力扣:70 [爬楼梯](http ...

  10. MySQL学习记录===待续

    MySQL学习笔记 索引操作: 单列索引,唯一索引,组合索引 常用的两种MySQL引擎 Innodb和MyIASM引擎 三个范式 1.第一范式(确保每列保持原子性) 2.第二范式 (确保表中每列都和主 ...

最新文章

  1. 零基础可以学python吗-Python编程语言好学吗?零基础转行能学Python吗?
  2. opencv-python将视频帧还原成视频
  3. kaggle图像比赛中的submission文件格式解析
  4. 苹果6s怎么导出照片_苹果手机照片误删怎么恢复?不懂的值得一看
  5. 移动和云环境下的报文传输流程--理解DNS解析、CDN资源下发、公网传输流程、数据中心网络
  6. centos6 下用yum 安装 nginx
  7. 字节跳动异构场景下的高可用建设实践
  8. SparkStreaming读取本地文件进行wordCount
  9. Quick Startup(电脑开机启动项管理软件)官方中文版V5.20.1.168 | 如何管理电脑开机启动项
  10. .NET面试宝典130道经典面试真题及答案
  11. html5积分墙联盟,积分墙是一种革新的移动广告联盟
  12. 宇宙简史——星光中有什么秘密?
  13. sgu-244 Height, Bisector and Median
  14. Codecademy 你值得拥有,非常棒的编程学习网站
  15. LeetCode岛屿的最大面积
  16. 什么是“天道左旋、地道右旋”?
  17. java 启动参数 别名,Spring boot 参数别名处理
  18. 服务器装系统引导进去系统usb失灵,重装win7后usb全部失灵原因分析以及解决方法(完美解决)...
  19. android微信小程序自动填表_微信“填表”类小程序,你可能根本没用对
  20. 自定义镜像上传阿里云

热门文章

  1. 仿礼物说小程序项目实战——1.项目介绍分析
  2. 多线程和事务之Workaround
  3. 大数据重新定义‘餐饮行业增长黑客’/怎么用数据驱动餐饮行业到店营销
  4. java dump内存泄露分析方法
  5. 第三方支付平台:银联在线支付
  6. 学生HTML个人网页作业作品 HTML+CSS校园环保(大学生环保网页设计与实现)
  7. 技术提升了,钱自然就来了:盘点这段时间我挣钱的感受
  8. 计算机操作评分系统,使用Excel设计竞赛评分系统
  9. SAP ABAP CDS view 里 INNER JOIN 和 Association 的区别
  10. Windows 10 虚拟桌面切换