首頁 資料庫 mysql教程 【MySQL】(4)操作数据表中的记录_MySQL

【MySQL】(4)操作数据表中的记录_MySQL

Jun 01, 2016 pm 12:59 PM
數據表

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;
登入後複製
(3). HAVING

分组条件

例如:

# 当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;
登入後複製
(4). ORDER BY

对查询结果进行排序

例如:

# 按照id降序排列
SELECT * FROM users ORDER BY id DESC;
# 同时以两个字段排序age默认升序,id降序
SELECT * FROM users ORDER BY age, id DESC;
登入後複製
(5). LIMIT

限制查询结果返回的数量

例如:

# 从第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;
登入後複製

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

MySQL中的資料表壓縮技術 MySQL中的資料表壓縮技術 Jun 16, 2023 am 08:16 AM

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

MySQL中的資料表DDL操作技術 MySQL中的資料表DDL操作技術 Jun 15, 2023 pm 07:55 PM

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

mysql修改資料表名 mysql修改資料表名 Jun 20, 2023 pm 05:52 PM

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

MySQL中的資料表重載技巧 MySQL中的資料表重載技巧 Jun 15, 2023 pm 11:28 PM

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

利用MySQL的AVG函數計算資料表中數字列的平均值方法 利用MySQL的AVG函數計算資料表中數字列的平均值方法 Jul 24, 2023 pm 09:52 PM

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

如何利用thinkorm實現資料表之間的關聯查詢 如何利用thinkorm實現資料表之間的關聯查詢 Aug 01, 2023 am 08:25 AM

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

如何實現MySQL底層優化:資料表的水平和垂直分割策略 如何實現MySQL底層優化:資料表的水平和垂直分割策略 Nov 08, 2023 pm 06:57 PM

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

MySQL中如何使用MAX函數找到資料表中最大的數值 MySQL中如何使用MAX函數找到資料表中最大的數值 Jul 25, 2023 pm 09:49 PM

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

See all articles