python--MySql 表記錄的操作
表記錄的增刪改查
---插入表記錄 INSERT
-- 插入一條數據
INSERT [INTO] table_name (字段名稱,...) VALUES(值,...);
---插入多條數據
INSERT [INTO] table_name (字段名稱,...) VALUES(值,...),
(值,...),
...
(值,...);
---修改表記錄 UPDATE
UPDATE table_name SET 字段=值,字段=值... WHERE 字句;
---刪除表記錄
DELETE FROM table_name [WHERE 字句];
/*
如果不跟where語句則刪除整張表中的數據
delete只能用來刪除一行記錄
delete語句只能刪除表中的內容,不能刪除表本身,想要刪除表,用drop
TRUNCATE TABLE也可以刪除表中的所有數據,此語句首先摧毀表,再新建表。此種方式刪除的數據不能在
事務中恢復。*/
TRUNCATE TABLE table_name;
查詢表記錄(重點)
準備表和記錄:
CREATE TABLE table_name (
字段名稱 字段數據類型 [約束],
字段名稱 字段數據類型 [約束],
...
字段名稱 字段數據類型 [約束],
);
INSERT [INTO] table_name (字段名稱,...) VALUES (值,...),
(值,...),
...
(值,...);
-- 查詢語法:
SELECT *|field1,filed2 ... FROM table_name
WHERE 條件
GROUP BY field
HAVING 篩選
ORDER BY field
LIMIT 限制條數
簡單查詢
-- (1)select [distinct] *|field1,field2,...... from table_name
-- 其中from指定從哪張表篩選,*表示查找所有列,也可以指定一個列
-- 表明確指定要查找的列,distinct用來剔除重復行。
-- (2)select 也可以使用表達式,並且可以使用: 字段 as 別名或者:字段 別名
註意:不加逗號的後果:
select name,JS from ExamResult;(√)
select name JS from ExamResult; -- what will happen?---->記得加逗號
使用where子句,進行過濾查詢
where子句中可以使用:
-- 比較運算符:
> < >= <= <> != (後面兩條都是表示不等於)
between 80 and 100 值在80到100之間
in(80,90,100) 值是80或90或100
like ‘yuan%‘
like ‘李___‘
/* %表示任意多字符 _則表示一個字符李_,兩個_則表示兩個字符:__ */
-- 邏輯運算符
在多個條件之間可以使用邏輯運算符 and or not
order by排序
指定排序的列,排序的列既可是表中的列名,也可以是select 語句後指定的別名。
select *|field1,field2... from tab_name order by field [Asc|Desc]
-- Asc 升序、Desc 降序,其中asc為默認值 ORDER BY 子句應位於SELECT語句的結尾。
group by分組查詢
-- 註意,按分組條件分組後每一組只會顯示第一條記錄
-- group by字句,其後可以接多個列名,也可以跟having子句,對group by 的結果進行篩選。
/*
having 和 where兩者都可以對查詢結果進行進一步的過濾,差別有:
<1>where語句只能用在分組之前的篩選,having可以用在分組之後的篩選;
<2>使用where語句的地方都可以用having進行替換
<3>having中可以用聚合函數,where中就不行。
*/
-- GROUP_CONCAT() 函數
SELECT id,GROUP_CONCAT(name),GROUP_CONCAT(JS) from ExamResult GROUP BY id;
聚合函數
--<1> 統計表中所有記錄
-- COUNT(列名):統計行的個數
-- SUM(列名):統計滿足條件的行的內容和
-- AVG(列名):統計該列平均值
-- Max、Min:統計最大值和最小值
limit記錄條數限制
SELECT * from ExamResult limit 1; SELECT * from ExamResult limit 2,5; -- 跳過前兩條顯示接下來的五條紀錄 SELECT * from ExamResult limit 2,2;
正則表達式
SELECT * FROM employee WHERE emp_name REGEXP ‘^yu‘; SELECT * FROM employee WHERE emp_name REGEXP ‘yun$‘; SELECT * FROM employee WHERE emp_name REGEXP ‘m{2}‘;
python--MySql 表記錄的操作