文章目錄
- 數據庫開發
- Day15:MySQL基礎(一)
- 一、MySQL介紹與安裝
- 【1】MySQL介紹
- ==(5)啟動MySQL服務==
- (6)修改root登陸密碼
- 二、SQL簡介
- 三、數據庫操作
- 四、數據表操作
- 4.1、數據庫數據類型
- 4.2、創建數據表
- 4.3、約束
- 【1】非空約束
- 【2】唯一約束
- 【3】默認值約束
- 【4】主鍵約束
- 4.4、查看表
- 4.5、刪除表
- 4.6、修改表結構
- 修改表名和編碼
- 修改表字段
- 五、表記錄操作
- 5.1、添加記錄
- 【1】INSERT…VALUES語句
- 【2】 INSERT…SET語句
- 5.2、查詢記錄
- 【1】查詢字段(select)
- 【2】where語句
- 【3】order:排序
- 【4】group by:分組查詢
- 【5】limit:記錄條數限制
- 【6】distinct:查詢去重
- 5.3、更新記錄
- 5.4、刪除記錄
數據庫開發
從古至今人們都有存儲數據的需求,比方說記錄賬目開支、貨物清單、人口統計等等等等,存儲的方式也一直在變化。
很久很久以前,人們把數據存在動物骨頭上,后來存到竹片上,再后來存到紙上,直到近代發明了磁帶留聲機啥的,不過這些都是依賴人工進行整理、保存和查詢的,特點就是效率低下、錯誤率高、查找不方便等等等等。
后來人們發明了計算機,為了管理各種數據,人們發明了一種叫文件系統的東東,可以方便的通過文件的存儲路徑和文件名來訪問各個文件的內容,計算機程序也可以直接通過文件系統來操作各種文件,比人工管理爽多了。
隨著文件中存儲的內容越來越多,在文件中修改和查找某些數據已經變得非常困難了,所以人們發明了一種專門的軟件來管理存儲的數據,這些數據依照一定格式保存,通過這個軟件可以方便的對數據進行增刪改查操作,從而極大的提升了數據管理效率,人們就把這個管理數據的軟件叫做數據庫管理系統(英文:Database Management System
,簡稱:DBMS
)。
Day15:MySQL基礎(一)
一、MySQL介紹與安裝
【1】MySQL介紹
MySQL是一種開源的關系型數據庫管理系統(RDBMS),它是最流行和廣泛使用的數據庫系統之一。
-
1996年,MySQL 1.0,由瑞典公司MySQL AB開發
-
2008年1月16號 Sun公司收購MySQL。
-
2009年4月20,Oracle收購Sun公司。
MySQL以其高性能、穩定性和可靠性而聞名,由于其體積小、速度快,尤其是開放源碼這一特點,并被廣泛應用于各種規模的應用程序和網站。
(5)啟動MySQL服務
方式1:啟動服務進程
把mysql注冊到操作系統作為系統服務,保證將來電腦重啟了就可以開機自啟了。在上面打開的黑窗口中如下以下命令:
# 啟動mysql服務
mysqld
確認是否安裝到了系統服務,可以通過【此電腦】- 【右鍵】-【管理】- 【服務與應用程序】 - 【服務】- 【右邊窗口】
快捷方式:
- 按下Ctrl + Alt + Del組合鍵。
- 在彈出的菜單中,選擇"任務管理器"。這將打開任務管理器。
注意這是進程,不是系統服務
通過以下命令按回車鍵,接著輸入上面初始化的登陸密碼,就可以登陸MySQL交互終端了。
mysql -uroot -p
# 退出終端
# exit
方式2:注冊系統服務并啟動
安裝名為"mysql80"的MySQL服務,但一定注意需要管理員權限,否則報權限錯誤
管理員權限啟動終端:
- 在開始菜單中找到 “命令提示符”。
- 右鍵單擊 “命令提示符” 并選擇 “以管理員身份運行”。
- 如果系統提示確認,點擊 “是” 或 “繼續” 以授予管理員權限。
mysqld --install mysql80
# 注銷服務,用于卸載的,別亂用
# mysqld --remove mysql80
mysql80就是自己取的服務名(服務器是唯一的),只要符合python的變量規則,不要使用中文,可以自己發揮。
windows下安裝的mysql默認是沒有啟動服務的。
net start mysql80
# 關閉mysql的命令:
# net stop mysql80
# 重啟mysql的命令:
# net start mysql80
通過以下命令按回車鍵,接著輸入上面初始化的登陸密碼,就可以登陸MySQL交互終端了。
mysql -uroot -p
# 退出終端
# exit
注意:mysql與linux一樣,在安裝成功以后默認就存在了一個權限最高的用戶,叫root用戶。
(6)修改root登陸密碼
接下來的操作是在登陸了mysql終端以后的操作。
alter user 'root'@'localhost' identified by '123';
# 'root' 就是要修改密碼的用戶名
# 'localhost' 表示允許用戶在什么地址下可以使用密碼登陸到數據庫服務器,localhost表示本地登陸
# '123' 就是新的密碼了,注意,不要設置空密碼!以后公司里面的密碼一定要非常難記的才最好。
完成了上面的操作以后,mysql就安裝完成了。
二、SQL簡介
對數據庫進行查詢和修改操作的語言叫做 SQL(Structured Query Language,結構化查詢語言)。SQL是專為數據庫而建立的操作命令集,是一種功能齊全的數據庫語言。
SQL 是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。與其他程序設計語言(如 C語言、Java 等)不同的是,SQL 由很少的關鍵字組成,每個 SQL 語句通過一個或多個關鍵字構成。
在使用它時,只需要發出“做什么”的命令,“怎么做”是不用使用者考慮的。SQL功能強大、簡單易學、使用方便,已經成為了數據庫操作的基礎,并且現在幾乎所有的數據庫(Oracle、DB2、Sybase、SQL Server )均支持sql。
SQL的規范:
在數據庫系統中,SQL語句不區分大小寫(建議用大寫) 。但字符串常量區分大小寫。建議命令大寫,表名庫名小寫;
SQL語句可單行或多行書寫,以“;”結尾。關鍵詞不能跨多行或簡寫。
用空格和縮進以及折行來提高語句的可讀性。子句通常位于獨立行,便于編輯,提高可讀性。
SELECT column1, column2, column3 FROM table1 WHERE column1 = 'value1'AND column2 = 'value2'AND column3 = 'value3'
- 注釋:
-- 單行注釋 /* 多行注釋 */
三、數據庫操作
數據庫的操作:
select database();查看當前數據庫。只有剛進入數據庫是是null初始狀態,一旦選擇數據庫就回不去了,只能從一個數據庫直接換到另一個數據庫,而不是先回到初始狀態再轉到某數據庫。
mysqldump -uroot -p123456 庫名 > backup.sql; 數據庫備份操作。要退出數據庫的環境執行。只需要執行sql文件就可以生成一樣的數據庫。
-- 1.創建數據庫(在磁盤上創建一個對應的文件夾)create database [if not exists] db_name [character set xxx] -- 2.查看數據庫show databases; -- 查看所有數據庫SHOW DATABASES LIKE '%test%';-- 查看名字中包含 test 的數據庫show create database db_name; -- 查看數據庫的創建方式-- 3.修改數據庫alter database db_name [character set xxx] -- 4.刪除數據庫drop database [if exists] db_name;-- 5.使用數據庫use db_name; -- 切換數據庫 注意:進入到某個數據庫后沒辦法再退回之前狀態,但可以通過use進行切換select database(); -- 查看當前使用的數據庫-- 數據庫備份mysqldump -u username -p password database_name > backup.sql
使用 DROP DATABASE 命令時要非常謹慎,在執行該命令后,MySQL 不會給出任何提示確認信息。
DROP DATABASE 刪除數據庫后,數據庫中存儲的所有數據表和數據也將一同被刪除,而且不能恢復。因此最好在刪除數據庫之前先將數據庫進行備份。
四、數據表操作
數據表是數據庫的重要組成部分,每一個數據庫都是由若干個數據表組成的。比如,在電腦中一個文件夾有若干excel文件。這里的文件夾就相當于數據庫,excel文件就相當于數據表。
MySQL 的數據類型有大概可以分為 5 種,分別是整數類型、浮點數類型、日期和時間類型、字符串類型、二進制類型等。
4.1、數據庫數據類型
數據庫的數據類型:
最常用的VARCHAR和CHAR,TEXT,ENUM,SET。
INT系列。DECMAL系列。
DATETIME,事件類型系列。
BINARY,VARBINARY,BIT二進制系列。
數據庫是有bool類型的,但是不能識別TRUE和FALSE關鍵字。所以可以通過VARCHAR(1),TINYINT(1)類型,通過1和0的方式來表示布爾類型。更好的是BIT(1)類型來表示,因為BIT(比特)類型只能存放1和0,會更節約空間。
在 MySQL 中,布爾類型被稱為 BOOLEAN
或 BOOL
類型。BOOLEAN
類型用于存儲布爾值,即 TRUE
(真)或 FALSE
(假)。
MySQL 中的布爾類型可以有以下幾種表示方式:
- 整數類型:布爾類型可以表示為整數類型,其中
0
表示FALSE
,非零整數表示TRUE
。常見的表示TRUE
的整數值為1
。 - 字符串類型:布爾類型也可以表示為字符串類型,其中
'0'
表示FALSE
,而'1'
表示TRUE
。這種表示方式更貼近人類可讀的布爾值。
需要注意的是,盡管 MySQL 支持布爾類型的不同表示方式,但它并沒有專門的存儲布爾值的數據類型。在實際使用中,你可以選擇使用 TINYINT(1)
或 VARCHAR(1)
等其他數據類型來存儲布爾值,但約定使用 0
和 1
或 '0'
和 '1'
來表示布爾值。
BIT數據類型可以用來存儲布爾值。
CREATE TABLE my_table (is_active BIT(1)
);
INSERT INTO my_table (is_active) VALUES (1); -- 存儲真值
INSERT INTO my_table (is_active) VALUES (0); -- 存儲假值
4.2、創建數據表
-- 語法
CREATE TABLE tab_name(field1 type [約束條件],field2 type,...fieldn type -- 一定不要加逗號,否則報錯!)[character set utf8];
案例:
CREATE TABLE student( name varchar(20),gender bit,age int,birth date,gpa double(8,2) unsigned, -- 平均績點)character set=utf8;
-- show tables;
4.3、約束
約束:
非空約束NOT NULL
唯一約束UNIQUE
默認約束DEFAULT
主鍵約束PRIMARY KEY
如果沒有定義主鍵約束,系統會從上到下找我們的字段,如果我們的字段有同時設為唯一和非空的,就將找到的第一個設為主鍵。如果沒有系統就自己設置一個_id主鍵。
約束是一種限制,它通過限制表中的數據,來確保數據的完整性和唯一性。使用約束來限定表中的數據很多情況下是很有必要的。在 MySQL 中,約束是指對表中數據的一種約束,能夠幫助數據庫管理員更好地管理數據庫,并且能夠確保數據庫中數據的正確性和有效性。例如,在數據表中存放年齡的值時,如果存入 200、300 這些無效的值就毫無意義了。因此,使用約束來限定表中的數據范圍是很有必要的。
添加記錄:
INSERT <表名> 字段1,...字段n VALUES (值1,...值n) ;
【1】非空約束
非空約束用來約束表中的字段不能為空。比如,在用戶信息表中,如果不添加用戶名,那么這條用戶信息就是無效的,這時就可以為用戶名字段設置非空約束。
創建表時可以使用NOT NULL
關鍵字設置非空約束
CREATE TABLE user(name VARCHAR(22),age int
);
insert user (name) values ("yuan");CREATE TABLE user(name VARCHAR(22),age int NOT NULL
);insert user (name) values ("yuan");
【2】唯一約束
唯一約束(Unique Key)是指所有記錄中字段的值不能重復出現。例如,為name字段加上唯一性約束后,每條記錄的name值都是唯一的,不能出現重復的情況。
創建表時可以使用UNIQUE
關鍵字設置非空約束
例如,在用戶信息表中,要避免表中的用戶名重名,就可以把用戶名列設置為唯一約束。
CREATE TABLE user(name VARCHAR(22),age int
);
insert user (name) values ("yuan");
insert user (name) values ("yuan");CREATE TABLE user(name VARCHAR(22) UNIQUE,age int
);
insert user (name) values ("yuan");
【3】默認值約束
默認值約束用來約束當數據表中某個字段不輸入值時,自動為其添加一個已經設置好的值。
創建表時可以使用DEFAULT
關鍵字設置默認值約束
CREATE TABLE user(name VARCHAR(22),gender bit
);
insert user (name) values ("yuan");CREATE TABLE user(name VARCHAR(22),gender bit default 1
);
insert user (name) values ("yuan");CREATE TABLE user(name VARCHAR(22),gender varchar(2) default "保密"
);
【4】主鍵約束
主鍵約束是使用最頻繁的約束。在設計數據表時,一般情況下,都會要求表中設置一個主鍵。主鍵是表的一個特殊字段,該字段能唯一標識該表中的每條信息。
CREATE TABLE user(name VARCHAR(22),age int,gender varchar(1) default "男"
);
insert user (name,age) values ("yuan",18);
insert user (name,age) values ("rain",28);
insert user (name,age) values ("eric",23);
insert user (name,age) values ("yuan",18);-- 沒有唯一能標識該表中的每條記錄的字段值CREATE TABLE user(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20)
);
insert user (name) values ("yuan");
select * from user;
- 一張表中最多只能有一個主鍵
- 主鍵類型不一定必須是整型
- 表中如果沒有設置主鍵,默認設置NOT NULL和UNIQUE的字段為主鍵;此外,表中如果有多個NOT NULL和UNIQUE的字段,則按順序將第一個設置NOT NULL和UNIQUE的字段設為主鍵。所以主鍵一定是非空且唯一,但非空且唯一的字段不一定是主鍵。
講完約束,最后學生表就可以調整為
CREATE TABLE student(id int primary key auto_increment ,name varchar(20) not null,gender bit default 1,age int,birth date,gpa double(8,2) unsigned -- 平均績點)character set=utf8;
4.4、查看表
desc employee; -- 查看表結構,等同于show columns from tab_name
show tables -- 查看當前數據庫中的所有的表
show create table tab_name -- 查看當前數據庫表建表語句
4.5、刪除表
DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]
4.6、修改表結構
可以找到一個規律:
當操作表和數據庫共有的指令時,要提前說明是表還是數據庫。例如:create,show,alter。
而add,rename,change,modify等就不需要加table,以為這幾個指令只是操作table的
當修改表字段的類型和名字時:都要重新寫約束。
因為修改表字段本質上時,刪除再添加。
修改表名和編碼
-
修改表名
ALTER TABLE <舊表名> RENAME [TO] <新表名>;
-
修該表所用的字符集
ALTER TABLE 表名 [DEFAULT] CHARACTER SET <字符集名>
修改表字段
-
增加列(字段)
ALTER TABLE <表名> ADD <新字段名><數據類型>[約束條件][first|after 字段名];
-
增加多個字段
alter table users2 add addr varchar(20),add age int first,add birth varchar(20) after name;
-
刪除某字段
ALTER TABLE <表名> DROP <字段名>;
-
修改某字段類型
ALTER TABLE <表名> MODIFY <字段名> <數據類型> [完整性約束條件][first|after 字段名];
-
修改某字段名
ALTER TABLE <表名> CHANGE <舊字段名> <新字段名> <新數據類型> [完整性約束條件][first|after 字段名];
五、表記錄操作
可以有很多種方式的客戶端與服務端連接,從而對磁盤的數據進行操作
5.1、添加記錄
插入單挑記錄:字段映射值,insert student () values ()
每一次insert都是再撞擊表,heat the database。每次撞擊都會浪費時間。
所以插入大量數據時:不要一條一條來,要有一條直接insert。
INSERT 語句有兩種語法形式,分別是 INSERT…VALUES 語句和 INSERT…SET 語句。
【1】INSERT…VALUES語句
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
- INSERT 語句后面的列名稱順序可以不是 表定義時的順序,即插入數據時,不需要按照表定義的順序插入,只要保證值的順序與列字段的順序相同就可以。
- 若向表中的所有列插入數據,則全部的列名均可以省略,直接采用 INSERT<表名>VALUES(…) 即可。
- 使用 INSERT…VALUES 語句可以向表中插入一行數據,也可以插入多行數據;
INSERT [INTO] <表名> [ <列名1> [ , … <列名n>] ] VALUES (值1…,值n),(值1…,值n),...(值1…,值n); -- 用單條 INSERT 語句處理多個插入要比使用多條 INSERT 語句更快。
案例:
CREATE TABLE student
(id int primary key auto_increment,name varchar(20) not null,gender bit default 1,age int,birth date
)character set=utf8;-- 單行插入
INSERT
student (name,gender,age,birth) VALUES("yuan",1,18,"2002-11-12"),-- 多行批量插入
INSERT student (name,gender,age,birth) VALUES("張三",1,22,"2000-12-12"),
("李四",1,32,"1990-12-12"),
("王五",0,42,"1980-06-06");
【2】 INSERT…SET語句
INSERT INTO table_name
SET column1 = value1, column2 = value2, ...;
此語句用于直接給表中的某些列指定對應的列值,即要插入的數據的列名在 SET 子句中指定。對于未指定的列,列值會指定為該列的默認值。
5.2、查詢記錄
select * from student。這種查詢方式盡量不要用,效率很慢。
哪怕是要查詢所有的,要逐個寫上去select name,age,gender from student。
因為星號的方式會找有哪些字段,增加運行時間。
where是對記錄做篩選
having是對分組之后對組的內容做篩選
sql語句的執行順序:
標準語法:
-- 查詢語法:SELECT *|field1,filed2 ... FROM tab_nameWHERE 條件GROUP BY fieldHAVING 篩選ORDER BY fieldLIMIT 限制條數-- Mysql在執行sql語句時的執行順序:-- from join on where group by having select order by limit
準備數據:
CREATE TABLE emp2(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20),gender ENUM("male","female","other"),age TINYINT,dep VARCHAR(20),province VARCHAR(20),salary DOUBLE(7,2),birthday DATE
) CHARACTER SET=utf8;INSERT INTO emp (name, gender, age, dep, province, salary, birthday)
VALUES ("George", "male", 24, "教學部", "河北省", 6000, '1999-02-18'),("danae", "male", 32, "運營部", "北京", 12000, '1992-07-12'),("Sera", "male", 38, "運營部", "河北省", 7000, '1986-11-05'),("Echo", "male", 19, "運營部", "河北省", 9000, '2002-03-28'),("Abel", "female", 24, "銷售部", "北京", 9000, '1999-09-10'),("John", "male", 28, "教學部", "山東省", 8000, '1993-06-15'),("Alice", "female", 32, "運營部", "北京", 10000, '1990-12-25'),("Bob", "male", 24, "教學部", "河北省", 9000, '1999-08-03'),("Cather", "female", 28, "銷售部", "山東省", 6000, '1993-04-20'),("David", "male", 34, "銷售部", "山東省", 12000, '1987-09-01'),("Emily", "female", 22, "教學部", "北京", 7000, '1999-01-08'),("Frank", "male", 24, "教學部", "河北省", 9000, '1999-07-17'),("Grace", "female", 32, "運營部", "北京", 8000, '1990-05-30'),("Henry", "male", 38, "運營部", "河北省", 9000, '1984-03-12'),("Ivy", "female", 19, "運營部", "河北省", 9000, '2002-08-22'),("Jack", "male", 24, "銷售部", "北京", 8000, '1999-10-05'),("Kelly", "female", 28, "教學部", "山東省", 10000, '1993-02-28'),("Leo", "male", 32, "運營部", "北京", 6000, '1990-11-11'),("Megan", "female", 24, "教學部", "河北省", 12000, '1999-06-03'),("Nick", "male", 34, "銷售部", "山東省", 7000, '1987-07-08'),("Olivia", "female", 22, "銷售部", "山東省", 9000, '1999-03-18'),("Peter", "male", 24, "教學部", "北京", 8000, '1999-12-01'),("Queen", "female", 32, "運營部", "河北省", 9000, '1990-09-15'),("Ryan", "male", 38, "運營部", "北京", 8000, '1984-11-20'),("Sandy", "female", 19, "運營部", "河北省", 10000, '2002-05-07'),("Tom", "male", 24, "銷售部", "北京", 7000, '1999-04-27'),("Uma", "female", 28, "教學部", "山東省", 9000, '1993-08-14'),("Victor", "male", 32, "運營部", "北京", 6000, '1990-02-05'),("Wendy", "female", 24, "教學部", "河北省", 12000, '1999-07-23'),("Xander", "male", 34, "銷售部", "山東省", 7000, '1987-12-16'),("Yvonne", "female", 22, "銷售部", "山東省", 9000, '1999-01-30'),("Zack", "male", 24, "教學部", "北京", 8000, '1999-10-13');
【1】查詢字段(select)
mysql> SELECT * FROM emp;
mysql> SELECT name,dep,salary FROM emp;
【2】where語句
-- where字句中可以使用:--比較運算符:> < >= <= <> != = between 10 and 100 值在10到100之間in(10,20,30) 值是10或20或30like 'yuan%'/*pattern可以是%或者_,如果是%則表示任意多字符,此例如唐僧,唐國強如果是_則表示一個字符唐_,只有唐僧符合。兩個_則表示兩個字符:__*/-- 正則 SELECT * FROM emp WHERE emp_name REGEXP '^yu';SELECT * FROM emp WHERE name REGEXP 'n$'; -- 邏輯運算符在多個條件直接可以使用邏輯運算符 and or not
練習:
-- 查詢年紀大于24的員工
SELECT * FROM emp WHERE age > 24;-- 查詢年齡在20到30之間的員工
SELECT * FROM emp WHERE age between 20 and 30;-- 查詢工資等于7000,8000和9000的所有員工
SELECT * FROM emp WHERE salary in (7000,8000,9000);-- 查詢名字以A開頭的員工
SELECT * FROM emp WHERE name like "A%";-- 查詢名字包含A的員工
SELECT * FROM emp WHERE name like "%A%";
SELECT * FROM emp WHERE REGEXP_LIKE(name, '.*A.*',"c");-- 查詢教學部的男老師信息
SELECT * FROM emp WHERE dep="教學部" AND gender="male";-- 查詢名字以A開頭的員工并且工資大于等于10000的員工的姓名
SELECT * FROM emp WHERE name like "A%" and salary>=10000;-- 查詢年齡小于25或工資低于10000的員工
SELECT * FROM emp WHERE age<25 or salary < 8000;-- 日期相關的
SELECT *
FROM emp
WHERE birthday > '1990-01-01';SELECT *
FROM emp
WHERE MONTH(birthday) = 12;
【3】order:排序
按指定的列進行,排序的列即可是表中的列名,也可以是select語句后指定的別名。
-- 語法:
select *|field1,field2... from tab_name order by field [Asc|Desc]-- Asc 升序、Desc 降序,其中asc為默認值 ORDER BY 子句應位于SELECT語句的結尾。
練習:
-- 按年齡從高到低進行排序
SELECT * FROM emp ORDER BY age DESC ;-- 按工資從低到高進行排序
SELECT * FROM emp ORDER BY salary;-- 先按工資排序,工資相同的按年齡排序
SELECT * FROM emp ORDER BY salary,age;
【4】group by:分組查詢
GROUP BY 語句根據某個列對結果集進行分組。分組一般配合著聚合函數完成查詢。
常用聚合(統計)函數
max()
:最大值。min()
:最小值。avg()
:平均值。sum()
:總和。count()
:個數。
在MySQL的SQL執行邏輯中,where條件必須放在group by前面!也就是先通過where條件將結果查詢出來,再交給group by去分組,完事之后進行統計,統計之后的查詢用having。
練習:
-- 練習案例-- 查詢男女員工各有多少人-- 查詢教學部的員工最高工資:-- 查詢平均薪水超過8000的部門-- 查詢每個組的員工姓名-- 查詢公司一共有多少員工(可以將所有記錄看成一個組)-- 每年出生的員工人數-- 查詢公司所有員工的平均工資
【5】limit:記錄條數限制
SELECT * from emp limit 10;
SELECT * from emp limit 2,5; -- 跳過前兩條顯示接下來的五條紀錄
SELECT * from emp limit 2,2;
【6】distinct:查詢去重
-- 獲取員工表中不重復的年齡值和薪水值,并按照相應的字段進行升序排序。
SELECT distinct age from emp order by age;
SELECT distinct salary from emp order by salary;
5.3、更新記錄
UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ]
案例:
-- 更新員工職位和工資-- 更改部門名稱-- 年齡大于35歲的員工薪資增加百分之十五-- 薪資最高的五個人降薪百分之三十
5.4、刪除記錄
DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
<表名>
:指定要刪除數據的表名。ORDER BY
子句:可選項。表示刪除時,表中各行將按照子句中指定的順序進行刪除。WHERE
子句:可選項。表示為刪除操作限定刪除條件,若省略該子句,則代表刪除該表中的所有行。LIMIT
子句:可選項。用于告知服務器在控制命令被返回到客戶端前被刪除行的最大值。
-- 刪除薪資最高的五個人,相同薪資按年齡優先
-- 刪除教學部年齡最大的男老師
若有錯誤與不足請指出,關注DPT一起進步吧!!!