Mysql學(xué)習(xí)筆記三 數(shù)據(jù)增刪改查(curd)

數(shù)據(jù)增刪改查(curd)

curd的解釋: 代表創(chuàng)建(Create)、更新(Update)、讀?。≧etrieve)和刪除(Delete)

01-增加 insert

  • 全列插入

insert [into] 表名 values (值1,值2,...)

值和表的字段的順序一一對(duì)應(yīng)

主鍵占位符: 0/default/NULL

枚舉: 枚舉的原始值: 男,女,保密,中性, 枚舉值: 1,2,3,4 SQL中默認(rèn)從1開始

-- insert into students values (0,'魯班',20,160.00,'男',1);
-- insert into students values (NULL,'小喬',20,160.00,2,1);
-- insert into students values (default,'大喬',20,160.00,2,1);

mysql> insert into students values (0,'魯班',20,160.00,'男',1);
Query OK, 1 row affected (0.00 sec)

-- 結(jié)果
mysql> select * from students;
+----+--------+------+--------+--------+--------+
| id | name   | age  | high   | gender | cls_id |
+----+--------+------+--------+--------+--------+
|  1 | 魯班   |   20 | 160.00 | 男     |      1 |
|  2 | 小喬   |   20 | 160.00 | 女     |      1 |
|  3 | 大喬   |   20 | 160.00 | 女     |      1 |
+----+--------+------+--------+--------+--------+
3 rows in set (0.00 sec)
  • 指定列插入

insert into 表名 (列1,...) values(值1,...)

值和列一一對(duì)應(yīng)

-- insert into students (name, gender, cls_id) values ('張飛',1,2);

mysql> insert into students (name, gender, cls_id) values ('張飛',1,2);
Query OK, 1 row affected (0.00 sec)
-- 結(jié)果
mysql> select * from students;
+----+--------+------+--------+--------+--------+
| id | name   | age  | high   | gender | cls_id |
+----+--------+------+--------+--------+--------+
|  1 | 魯班   |   20 | 160.00 | 男     |      1 |
|  2 | 小喬   |   20 | 160.00 | 女     |      1 |
|  3 | 大喬   |   20 | 160.00 | 女     |      1 |
|  4 | 張飛   |    0 |   0.00 | 男     |      2 |
+----+--------+------+--------+--------+--------+
4 rows in set (0.00 sec)
  • 多行插入 批量插入

insert into 表名 (列1,...) values (值1,...),(值1,...),...

-- insert into students (name, gender, cls_id) values ('關(guān)羽',1,2), ('劉備',1,2), ('趙云',1,2);

mysql> insert into students (name, gender, cls_id) values ('關(guān)羽',1,2), ('劉備',1,2), ('趙云',1,2);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

-- 結(jié)果
mysql> select * from students;
+----+--------+------+--------+--------+--------+
| id | name   | age  | high   | gender | cls_id |
+----+--------+------+--------+--------+--------+
|  1 | 魯班   |   20 | 160.00 | 男     |      1 |
|  2 | 小喬   |   20 | 160.00 | 女     |      1 |
|  3 | 大喬   |   20 | 160.00 | 女     |      1 |
|  4 | 張飛   |    0 |   0.00 | 男     |      2 |
|  5 | 曹操   |   50 | 156.00 | 男     |      1 |
|  6 | 孫權(quán)   |   40 | 166.00 | 男     |      1 |
|  7 | 貂蟬   |   18 | 168.00 | 女     |      1 |
|  8 | 關(guān)羽   |    0 |   0.00 | 男     |      2 |
|  9 | 劉備   |    0 |   0.00 | 男     |      2 |
| 10 | 趙云   |    0 |   0.00 | 男     |      2 |
+----+--------+------+--------+--------+--------+
10 rows in set (0.00 sec)

02-修改 update

  • 全表更新

update [表名] set [列1=值1,列2=值2,...] where [條件]

-- where 表示修改的范圍

-- update students set age = 18 where id = 4;  -- sql中通過一個(gè)等于號(hào)表示相等

update students set age = 38 where id = 4;

mysql> update students set age = 38 where id = 4;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

-- 結(jié)果
mysql> select * from students;
+----+--------+------+--------+--------+--------+
| id | name   | age  | high   | gender | cls_id |
+----+--------+------+--------+--------+--------+
|  1 | 魯班   |   20 | 160.00 | 男     |      1 |
|  2 | 小喬   |   20 | 160.00 | 女     |      1 |
|  3 | 大喬   |   20 | 160.00 | 女     |      1 |
|  4 | 張飛   |   38 |   0.00 | 男     |      2 |
|  5 | 曹操   |   50 | 156.00 | 男     |      1 |
|  6 | 孫權(quán)   |   40 | 166.00 | 男     |      1 |
|  7 | 貂蟬   |   18 | 168.00 | 女     |      1 |
|  8 | 關(guān)羽   |    0 |   0.00 | 男     |      2 |
|  9 | 劉備   |    0 |   0.00 | 男     |      2 |
| 10 | 趙云   |    0 |   0.00 | 男     |      2 |
+----+--------+------+--------+--------+--------+
10 rows in set (0.00 sec)

03-刪除 delete

  • 物理刪除

delete from 表名 [where 條件判斷]

-- delete from students where id = 8;  -- 刪除id為8的這一行

mysql> delete from students where id = 8;
Query OK, 1 row affected (0.00 sec)

-- 結(jié)果
mysql> select * from students;
+----+--------+------+--------+--------+--------+
| id | name   | age  | high   | gender | cls_id |
+----+--------+------+--------+--------+--------+
|  1 | 魯班   |   20 | 160.00 | 男     |      1 |
|  2 | 小喬   |   20 | 160.00 | 女     |      1 |
|  3 | 大喬   |   20 | 160.00 | 女     |      1 |
|  4 | 張飛   |   38 | 188.00 | 男     |      2 |
|  5 | 曹操   |   50 | 156.00 | 男     |      1 |
|  6 | 孫權(quán)   |   40 | 166.00 | 男     |      1 |
|  7 | 貂蟬   |   18 | 168.00 | 女     |      1 |
|  9 | 劉備   |    0 |   0.00 | 男     |      2 |
| 10 | 趙云   |    0 |   0.00 | 男     |      2 |
+----+--------+------+--------+--------+--------+
9 rows in set (0.00 sec)
  • 全表刪除

delete from [表名]

delete from students; (慎用)sql從入門到刪除跑路

查詢 select (DQL類型的語言, 在sql中最重要的就是查詢)

  • 查詢所有字段

select * from [表名];

mysql> select * from students;
+----+--------+------+--------+--------+--------+
| id | name   | age  | high   | gender | cls_id |
+----+--------+------+--------+--------+--------+
|  1 | 魯班   |   20 | 160.00 | 男     |      1 |
|  2 | 小喬   |   20 | 160.00 | 女     |      1 |
|  3 | 大喬   |   20 | 160.00 | 女     |      1 |
|  4 | 張飛   |   38 | 188.00 | 男     |      2 |
|  5 | 曹操   |   50 | 156.00 | 男     |      1 |
|  6 | 孫權(quán)   |   40 | 166.00 | 男     |      1 |
|  7 | 貂蟬   |   18 | 168.00 | 女     |      1 |
|  9 | 劉備   |    0 |   0.00 | 男     |      2 |
| 10 | 趙云   |    0 |   0.00 | 男     |      2 |
+----+--------+------+--------+--------+--------+
9 rows in set (0.00 sec)
  • 查詢指定字段

select [列1,列2,…] from [表名];

mysql> select name, gender from students;
+--------+--------+
| name   | gender |
+--------+--------+
| 魯班   | 男     |
| 小喬   | 女     |
| 大喬   | 女     |
| 張飛   | 男     |
| 曹操   | 男     |
| 孫權(quán)   | 男     |
| 貂蟬   | 女     |
+--------+--------+
7 rows in set (0.00 sec)
  • 使用 as 給字段起別名

select [字段] as [別名].... from [表名];

select name as 名字, gender as 性別 from students;
  • 可以通過 as 給表起別名

select [別名.字段1,別名.字段2, .... ] from [表名] as [別名];
在當(dāng)前的sql 語句中 臨時(shí)的給students 起了一個(gè)別名叫做s

select name, gender from students;

select s.name, s.gender from students as s;
  • sql語句完全的形式

select [表名.字段 .... ] from [表名];

select students.name, students.gender from students;
  • 跨表查詢
select students.name , classes.name from sutdnets, classes;

select python_test_1.students.name , python_test_1.classes.name from sutdnets, classes;
  • 消除重復(fù)行

distinct 字段, 修飾所有需要查詢的字段

如果distinct后有多個(gè)字段, 只有當(dāng)查詢的多列的查詢結(jié)果完全相同才能去重

mysql> select gender from students;   -- 查詢班級(jí)學(xué)生的性別
+--------+
| gender |
+--------+
| 男     |
| 女     |
| 女     |
| 男     |
| 男     |
| 男     |
| 女     |
+--------+
7 rows in set (0.00 sec)

mysql> select distinct gender from students;   -- 查詢班級(jí)有多少種性別
+--------+
| gender |
+--------+
| 男     |
| 女     |
+--------+
2 rows in set (0.00 sec)

一、Mysql學(xué)習(xí)筆記目錄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容