MySQL---增删改
我只想卷死各位,或者被各位卷死,在此特别感谢康师傅的MySQL教程
插入数据
方式1:VALUES的方式添加
- 为表的所有字段按默认顺序插入数据
1 | INSERT INTO 表名 |
- 同时插入多条记录
1 | INSERT INTO table_name |
- 举例
1 | -- 准备工作 |
方式2:将查询结果插入到表中
- 基本语法如下
1 | INSERT INTO 目标表名 |
-
在 INSERT 语句中加入子查询。
-
不必书写
VALUES
子句。 -
子查询中的值列表应与 INSERT 子句中的列名对应。
-
举例
1 | INSERT INTO emp1(id,`name`,hire_date,salary) |
更新数据
- 使用 UPDATE 语句更新数据。语法如下:
1 | UPDATE table_name |
-
可以一次更新多条数据。
-
如果需要回滚数据,需要保证在DML前,进行设置:SET AUTOCOMMIT = FALSE;
-
举例
1 | UPDATE emp1 |
删除数据
- 使用
DELETE
语句从表中删除数据
1 | DELETE FROM table_name [WHERE <condition>]; |
- 使用
WHERE
子句删除指定的记录。
1 | DELETE FROM departments |
- 在删除数据时,也有可能因为约束的影响,导致删除失败
- 小结:DML操作默认情况下,执行完以后都会自动提交数据。
- 如果希望执行完以后不自动提交数据,则需要使用
SET autocommit = FALSE
.
计算列
1 | CREATE TABLE test01( |
综合案例
1、创建数据库test01_library1 | CREATE DATABASE test01_library; |
字段名 | 字段说明 | 数据类型 |
---|---|---|
id | 书编号 | INT |
name | 书名 | VARCHAR(50) |
authors | 作者 | VARCHAR(100) |
price | 价格 | FLOAT |
pubdate | 出版日期 | YEAR |
note | 说明 | VARCHAR(100) |
num | 库存 | INT |
1 | CREATE TABLE IF NOT EXISTS books( |
1 | INSERT INTO books |
1 | INSERT INTO books(id,`name`,`authors`,price,pubdate,note,num) |
1 | INSERT INTO books(id,`name`,`authors`,price,pubdate,note,num) |
id | NAME | AUTHORS | price | pubdate | note | num |
---|---|---|---|---|---|---|
1 | Tal of AAA | Dickes | 23 | 1995 | novel | 11 |
2 | EmmaT | Jane lura | 35 | 1993 | joke | 22 |
3 | Story of Jane | Jane Tim | 40 | 2001 | novel | 0 |
4 | Lovey DAY | George Byron | 20 | 2005 | novel | 30 |
5 | OLD land | Honore Blade | 30 | 2010 | law | 0 |
6 | The Battle | Upton Sara | 30 | 1999 | medicine | 40 |
7 | Rose Hood | Richard haggard | 28 | 2008 | cartoon | 28 |
1 | UPDATE books |
1 | UPDATE books |
1 | DELETE FROM books |
1 | SELECT * FROM books |
1 | SELECT COUNT(*),SUM(num) |
1 | SELECT * |
1 | SELECT * |
1 | SELECT COUNT(*),note |
1 | SELECT SUM(num) sum_num,note |
1 | SELECT * |
1 | SELECT note,SUM(num) sum_num |
1 | SELECT note,SUM(num) |
1 | SELECT * |
1 | SELECT `name` AS "书名",CASE note |
1 | SELECT `name`,num,CASE |
1 | SELECT IFNULL(note,'库存总量') AS note,SUM(num) |
1 | SELECT IFNULL(note,'合计总量') AS note,COUNT(*) |
1 | SELECT * |
1 | SELECT * |
1 | SELECT * |
1 | SELECT * |
课后练习
练习一
1. 创建数据库dbtest111 | CREATE DATABASE IF NOT EXISTS dbtest11 CHARACTER SET 'utf8'; |
1 | USE dbtest11; |
1 | DESC my_employees; |
ID | FIRST_NAME | LAST_NAME | USERID | SALARY |
---|---|---|---|---|
1 | patel | Ralph | Rpatel | 895 |
2 | Dancs | Betty | Bdancs | 860 |
3 | Biri | Ben | Bbiri | 1100 |
4 | Newman | Chad | Cnewman | 750 |
5 | Ropeburn | Audrey | Aropebur | 1550 |
1 | INSERT INTO my_employees(id,first_name,last_name,userid,salary) |
id | userid | department_id |
---|---|---|
1 | Rpatel | 10 |
2 | Bdancs | 10 |
3 | Bbiri | 20 |
4 | Cnewman | 30 |
5 | Aropebur | 40 |
1 | INSERT INTO users(id,userid,department_id) |
1 | UPDATE my_employees |
1 | UPDATE my_employees |
1 | DELETE FROM users |
1 | DELETE m,u |
1 | DELETE FROM my_employees; |
1 | SELECT * FROM users; |
1 | TRUNCATE TABLE my_employees; |
练习二
1. 使用现有数据库dbtest111 | USE dbtest11; |
字段名 | 字段说明 | 数据类型 |
---|---|---|
name | 宠物名称 | VARCHAR(20) |
owner | 宠物主人 | VARCHAR(20) |
species | 种类 | VARCHAR(20) |
sex | 性别 | CHAR(1) |
birth | 出生日期 | YEAR |
death | 死亡日期 | YEAR |
1 | CREATE TABLE IF NOT EXISTS pet( |
NAME | OWNER | species | sex | birth | death |
---|---|---|---|---|---|
Fluffy | harold | Cat | f | 2003 | 2010 |
Claws | gwen | Cat | m | 2004 | |
Buffy | Dog | f | 2009 | ||
Fang | benny | Dog | m | 2000 | |
bowser | diane | Dog | m | 2003 | 2009 |
Chirpy | Bird | f | 2008 |
1 | INSERT INTO pet |
1 | UPDATE pet |
1 | UPDATE pet |
1 | UPDATE pet |
1 | SELECT `NAME` |
1 | SELECT `NAME`,`OWNER`,death |
1 | DELETE FROM pet |
1 | SELECT * FROM pet; |
练习三
1. 使用已有的数据库dbtest111 | USE dbtest11; |
id | name | sex | tel | addr | salary |
---|---|---|---|---|---|
10001 | 张一一 | 男 | 13456789000 | 山东青岛 | 1001.58 |
10002 | 刘小红 | 女 | 13454319000 | 河北保定 | 1201.21 |
10003 | 李四 | 男 | 0751-1234567 | 广东佛山 | 1004.11 |
10004 | 刘小强 | 男 | 0755-5555555 | 广东深圳 | 1501.23 |
10005 | 王艳 | 女 | 020-1232133 | 广东广州 | 1405.16 |
1 | CREATE TABLE employee( |
1 | SELECT * |
1 | SELECT id,`name`,addr |
1 | UPDATE employee |
1 | SELECT `name` |
评论