【MySQL】(4)操作数据表中的记录_MySQL
1. 插入记录INSERT
方法一:
INSERT [INTO] tbl_name [(clo_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...;
例如:
CREATE TABLE users(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, password VARCHAR(32) NOT NULL, age TINYINT UNSIGNED NOT NULL DEFAULT 10, sex BOOLEAN); # 插入记录,不指定列的数目时,必须所有的字段都要赋值 INSERT users VALUES(NULL, 'Tom', '123', 25, 1); INSERT users VALUES(NULL, 'Tom2', '123', 28, 1); INSERT users VALUES(DEFAULT, 'Tom3', '111', 28, 1); # 使用数学表达式也可以添加值 INSERT users VALUES(DEFAULT, 'Tom4', '111', 3*7+2/3, 1); # 给年龄DEFAULT,会采用默认值10 INSERT users VALUES(DEFAULT, 'Tom5', '111', DEFAULT, 1); # 一次添加多条记录 INSERT users VALUES(DEFAULT, 'Tom6', '111', DEFAULT, 1), (NULL, 'Rose', md5('213'), DEFAULT, 0);
INSERT [INTO] tbl_name SET col_name={exp | DEFAULT},...;
这个方法与第一种方式的区别在于,此方法可以使用子查询(SubQuery),此方法一次性只能插入一条记录。
例如:
INSERT users SET username='Ben', password='456';
INSERT [INTO] tbl_name [(col_name, ...)] SELECT ...;
使用此方法可以将查询结果插入到指定数据表。
2. 单表更新记录UPDATE
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1 | DEFAULT} [, col_name2={expr2 | DEFAULT}] ... [WHERE where_condition];
例如:
# 所有记录的年龄都加5 UPDATE users SET age=age+5; # 更新多列 UPDATE users SET age=age-id, sex=0; # 更新id为偶数的记录 UPDATE users SET age=age+10 WHERE id%2=0;
3. 单表删除记录DELETE
DELETE FROM tbl_name [WHERE where_condition];
例如:
DELETE FROM users WHERE id=6;
即使在删除后,id号不连续,那么新增的数据还是会在最大的id号加一。
4. 查询表达时解析
SELECT select_expr [, select_expr ...] [FROM table_references [WHERE whrere_condition] [GROUP BY {col_name | position} [ASC | DESC],...][HAVING where_condition][ORDER BY {col_name | expr | position} [ASC | DESC], ...][LIMIT {[offset,] row_count | row_count OFFSET offset}]];
每一个表达式表示想要的一列,必须至少有一个。多个烈之间以英文逗号分隔。星号(*)表示所有列。tbl_name.*可以表示命名表的所有列。查询表达式可以使用[AS] alias_name为其赋予别名。别名可用于GROUP BY,ORDER BY或HAVING字句。
例如:
# 查看MySQL版本 SELECT VERSION(); # 查看当前时间 SELECT NOW(); # 只查看前两列 SELECT id, username FROM users; SELECT username, id FROM users; SELECT users.id, users.username FROM users; SELECT id AS userid, username AS uname FROM users; # AS关键字可以省略,但是尽量写上,避免不必要的错误 SELECT id username FROM users;
(1). WHERE
条件表达式
对记录进行过滤,如果没有指定WHERE字句,则显示所有记录。在WHERE表达式中,可以使用MySQL支持的函数或运算符。
(2). GROUP BY
查询结果分组
例如:
SELECT sex FROM users GROUP BY sex; # 1表示按照SELECT语句中第一个出现的字段排序 SELECT sex FROM users GROUP BY 1;
分组条件
例如:
# 当HAVING语句有age的条件时,前面的SELECT中必须出现这个age字段 SELECT sex, age FROM users GROUP BY 1 HAVING age>35; # 或者是一个聚合函数 SELECT sex, age FROM users GROUP BY 1 HAVING count(id)>=2;
对查询结果进行排序
例如:
# 按照id降序排列 SELECT * FROM users ORDER BY id DESC; # 同时以两个字段排序age默认升序,id降序 SELECT * FROM users ORDER BY age, id DESC;
限制查询结果返回的数量
例如:
# 从第1条开始返回2条记录 SELECT * FROM users LIMIT 2; # 从第1条开始,偏移2条后,查询2条记录 SELECT * FROM users LIMIT 2 OFFSET 2; # 从第4条开始(从0开始计数),返回2条记录 SELECT * FROM users LIMIT 3, 2; SELECT * FROM users ORDER BY id DESC LIMIT 2, 2; CREATE TABLE test(id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20)); # 将users年龄大于30的数据插入test表 INSERT test(username) SELECT username FROM users WHERE age>=30;

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MySQL是一種常見的關聯式資料庫,是許多網站和應用程式的核心元件。隨著資料量越來越大,如何優化MySQL的效能就變得尤為重要。其中一個關鍵領域是資料表的壓縮,在本文中我們將介紹MySQL中的資料表壓縮技術。壓縮表和非壓縮表MySQL中有兩種類型的資料表:壓縮表和非壓縮表。非壓縮表是MySQL預設的表類型,它使用固定長度的行格式,對資料進行儲存。這意味著數據

MySQL是一款非常受歡迎的開源關係型資料庫管理系統,它支援完整的DDL(資料定義語言)操作。 DDL是用來定義和管理資料庫中各種資料物件的語言,包括資料表、檢視和索引等。對於資料庫管理員和開發人員而言,熟練MySQL中資料表DDL操作技術非常重要。本文將詳細介紹MySQL中資料表DDL操作的技術與方法,並提供實際操作範例。一、建立資料表建立資料表是DDL中

MySQL修改資料表:1.先檢視資料庫中所有的表,代碼為:「SHOW TABLES;」;2、修改表名,代碼為:「ALTER TABLE 舊表名 RENAME [TO] 新表名;」。 3.檢查表名是否修改成功,代碼為:“SHOW TABLES;”

MySQL是一種開源關係型資料庫管理系統,它的基本功能在資料庫設計、資料儲存和管理方面非常優秀。在MySQL中,資料表是資料儲存的最基本單元。在實際應用中,資料表的重載是一種非常常見的操作技巧,它可以幫助我們提高資料庫的運作效率,並提升系統的穩定性。本文將從MySQL中資料表重載的概念、原理和實務應用等方面詳細介紹這項操作技巧。一、什麼是資料表重載資料表重載是

利用MySQL的AVG函數計算資料表中數字列的平均值方法簡介:MySQL是一種開源的關聯式資料庫管理系統,擁有豐富的內建函數來處理和計算資料。其中,AVG函數是用來計算數字列的平均值的函數。本文將介紹如何使用AVG函數來計算MySQL資料表中數字列的平均值,並提供相關的程式碼範例。一、建立範例資料表首先,我們需要建立一個範例資料表來進行示範。假設我們有一個名為

如何利用thinkorm實作資料表之間的關聯查詢引言:在進行資料庫開發中,常常會碰到需要在多個資料表之間進行關聯查詢的情況。利用thinkorm這個優秀的資料庫ORM框架,可以輕鬆實現資料表的關聯查詢,提高開發效率。本文將介紹如何利用thinkorm實作資料表之間的關聯查詢,並提供程式碼範例幫助讀者更好地理解。一、基本概念在進行關聯查詢之前,首先需要了解th

如何實現MySQL底層最佳化:資料表的水平和垂直分割策略,需要具體程式碼範例引言:在大型應用場景下,MySQL資料庫經常面臨著大量資料的儲存和查詢壓力。為了解決這個問題,MySQL提供了資料表的分割策略,包括水平分割(HorizontalPartitioning)和垂直分割(VerticalPartitioning)。本文將介紹如何實作MySQL底層最佳化,重

MySQL中如何使用MAX函數來找到資料表中最大的數值引言:在MySQL中,我們經常需要對資料表進行各種查詢和分析,其中包括找出資料表中的最大數值。使用MAX函數可以輕鬆找到資料表中的最大值,並且在進一步處理資料時非常有用。本文將介紹如何使用MAX函數來找出資料表中最大的數值,並給出對應的程式碼範例。一、MAX函數簡介MAX函數是MySQL中的一個聚合函數,用
