MYSQL基礎,複習走兩波!
本文接着上一篇進行復習,內容較基礎,基礎紮實還是重要的!
一. DML操作
用於對錶中的記錄進行增刪改操作
1.1 插入記錄
INSERT [INTO] 表名 [字段名] VALUES (字段值)
INSERT INTO 表名:表示往哪張表中添加數據
(字段名 1, 字段名 2, …):要給哪些字段設置值
VALUES (值 1, 值 2, …):設置具體的值
1.1.1 插入全部記錄
所有的字段名都寫出來
INSERT INTO 表名 (字段名 1, 字段名 2, 字段名 3…) VALUES (值 1, 值 2, 值 3);
不寫字段名
INSERT INTO 表名 VALUES (值 1, 值 2, 值 3…);
1.1.2 插入部分數據
INSERT INTO 表名 (字段名 1, 字段名 2, ...) VALUES (值 1, 值 2, ...);
1.2 更新表記錄
UPDATE 表名 SET 列名=值 [WHERE 條件表達式];
UPDATE: 需要更新的表名
SET: 修改的列值
WHERE: 符合條件的記錄才更新
你可以同時更新一個或多個字段。
你可以在 WHERE 子句中指定任何條件。
1.2.1 不帶條件修改數據
UPDATE 表名 SET 字段名=值; -- 修改所有的行
1.2.2 帶條件修改數據 UPDATE
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
1.2.3 具體操作
-- 不帶條件修改數據,將所有的性別改成女
update student set sex = '女';
-- 帶條件修改數據,將id號爲2的學生性別改成男
update student set sex='男' where id=2;
-- 一次修改多個列,把id爲3的學生,年齡改成26歲,address改成北京
update student set age=26, address='北京' where id=3;
1.3 刪除表記錄
DELETE FROM 表名 [WHERE 條件表達式]
如果沒有指定 WHERE 子句,MySQL 表中的所有記錄將被刪除。
你可以在 WHERE 子句中指定任何條件
1.3.1 不帶條件刪除數據
DELETE FROM 表名;
1.3.2 帶條件刪除數據
DELETE FROM 表名 WHERE 字段名=值
1.3.3 使用truncate刪除表中所有記錄
TRUNCATE TABLE 表名;
truncate 相當於刪除表的結構,再創建一張表
二. DQL查詢表中的數據
查詢不會對數據庫中的數據進行修改.只是一種顯示數據的方式
SELECT 列名 FROM 表名 [WHERE 條件表達式]
- SELECT 命令可以讀取一行或者多行記錄。
- 你可以使用星號(*)來代替其他字段,SELECT 語句會返回表的所有字段數據
- 你可以使用 WHERE 語句來包含任何條件。
2.1 簡單查詢
2.1.1 查詢表所有行和列的數據
使用*表示所有列
SELECT * FROM 表名;
2.1.2 查詢指定列
SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;
2.2 指定列的別名進行查詢
使用關鍵字
使用別名的好處: 顯示的時候使用新的名字,並不修改表的結構。
語法:
對列指定別名
SELECT 字段名 1 AS 別名, 字段名 2 AS 別名... FROM 表名;
對列和表同時指定別名
SELECT 字段名 1 AS 別名, 字段名 2 AS 別名... FROM 表名 AS 表別名;
具體操作
-- 使用別名
select name as 姓名,age as 年齡 from student;
-- 表使用別名
select st.name as 姓名,age as 年齡 from student as st
2.3 清除重複值
查詢指定列並且結果不出現重複數據
SELECT DISTINCT 字段名 FROM 表名;
具體操作:
查詢學生來至於哪些地方
-- 查詢學生來至於哪些地方 select address from student;
-- 去掉重複的記錄 select distinct address from student;
2.4 查詢結果參與運算
- 某列數據和固定值運算
SELECT 列名 1 + 固定值 FROM 表名;
- 某列數據和其他列數據參與運算
SELECT 列名 1 + 列名 2 FROM 表名;
注意: 參與運算的必須是數值類型
具體操作:
準備數據:添加數學,英語成績列,給每條記錄添加對應的數學和英語成績,查詢的時候將數學和英語的成績相 加
select * from student;
-- 給所有的數學加 5 分 select math+5 from student;
-- 查詢 math + english 的和 select * from student;
select *,(math+english) as 總成績 from student; -- as 可以省略 select *,(math+english) 總成績 from student;
2.5 條件查詢
如果沒有查詢條件,則每次查詢所有的行。實際應用中,一般要指定查詢的條件。對記錄進行過濾
條件查詢的語法
SELECT 字段名 FROM 表名 WHERE 條件;
流程:取出表中的每條數據,滿足條件的記錄就返回,不滿足條件的記錄不返回
2.5.1 準備數據
創建一個學生表,包含如下列:
CREATE TABLE student3 (
id int, -- 編號
name varchar(20), -- 姓名
age int, -- 年齡
sex varchar(5), -- 性別
address varchar(100), -- 地址
math int, -- 數學
english int -- 英語 );
INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES (1,'馬雲',55,'男', ' 杭州',66,78),(2,'馬化騰',45,'女','深圳',98,87),(3,'馬景濤',55,'男','香港',56,77),(4,'柳巖 ',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',86,NULL),(6,'劉德華',57,'男','香港 ',99,99),(7,'馬德',22,'女','香港',99,99),(8,'德瑪西亞',18,'男','南京',56,65);
2.5.2運算符
比較運算符
具體操作:
-- 查詢math分數大於80分的學生
select * from student3 where math>80;
-- 查詢english分數小於或等於80分的學生
select * from student3 where english <=80;
-- 查詢age等於20歲的學生
select * from student3 where age = 20;
-- 查詢age不等於20歲的學生,注:不等於有兩種寫法
select * from student3 where age <> 20;
select * from student3 where age != 20;
in 關鍵字
SELECT 字段名 FROM 表名 WHERE 字段 in (數據 1, 數據 2...);
in 裏面的每個數據都會作爲一次條件,只要滿足條件的就會顯示.
具體操作
-- 查詢id是1或3或5的學生
select * from student3 where id in(1,3,5);
-- 查詢id不是1或3或5的學生
select * from student3 where id not in(1,3,5);
範圍查詢
BETWEEN 值 1 AND 值 2 表示從值 1 到值 2
範圍,包頭又包尾
比如:age BETWEEN 80 AND 100 相當於: age>=80 && age<=100
具體操作:
查詢 english 成績大於等於 75,且小於等於 90 的學生
select * from student3 where english between 75 and 90;
like 關鍵字
LIKE 表示模糊查詢
SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';
MySQL 通配符
具體操作:
-- 查詢姓馬的學生
select * from student3 where name like '馬%';
select * from student3 where name like '馬';
33 / 33
-- 查詢姓名中包含'德'字的學生
select * from student3 where name like '%德%';
-- 查詢姓馬,且姓名有兩個字的學生
select * from student3 where name like '馬_';
END!!! 如果對你有幫助的話,不勝感激!!!