迄今为止,超完美的python数据库操作语句梳理!
[size=29.3333px]mysql数据库的基本操作。
[size=29.3333px]包括:DDL 和 DML 语句。
[size=29.3333px]其中,肯定会有点错误,特别是多表联合查询有错误,希望指正。
[size=29.3333px]因为我在word上写好的,试了几遍发表不理想,麻烦各位动动发财的小手点击关注,赞或者转发!
数据库操作语句梳理
1. DDL语句
DDL语句: DataBase Dfind Language,数据定义语句。
创建数据库:
语法:
CREATE DATABASE IF NOT EXISTS 数据库名称 DEFAULT CHARACTER SET 'utf8';
描述:创建一个数据库,如果名称存在不创建,不存在创建一个编码为utf8的数据库
案例:
修改数据库:
ALTER ADATABASE 数据库名称;
ALTER ADATABASE py1807a_test character set ‘GBK’;
删除数据库
DROP DATABASE [IF EXISTS] 数据库名称;
DROP DATABASE IF EXISTS py1807a_test;
选择数据库: use 数据库名称
查看当前所有数据库:show databases;
查看当前数据库所有数据表:show tables;
创建数据表
语法:
CREATE TABLE [IF NOT EXISTS] 表名(
Id INT [COMMENT ‘备注’]
)[default charset ‘utf8’];
描述:创建一个名字为dept编码为Utf8的数据表
案例:
表格重命名:alter table 表名 rename to 新表名
表格中修改列名称:alter table 表名 change column 旧列名 新列名 varchar(20)
删除一列:alter table 表名 drop column 列名;
增加一列:alter table 表名 add column 新列名 char(11);
删除数据表:drop table [if exists] 表名称;
2. DML语句
2.1. INSERT语句
语法:INSERT INTO 表名(值1,值2,…值n) VALUES(值1,值2,…值n);
描述:在数据表dept中添加一条完整的数据
案例:
2.2. UPDATE语句
语法:
UPDATE 表名 SET 列名= "新值" WHERE 条件。
描述:
修改id=7的darea的原有数据为大会议室
案例:
2.3. DELETE语句
语法:
DELETE FROM dept WHERE条件;
描述:
删除id = 8的整条数据。
案例:
2.4. SELECT语句
2.4.1. 全表查询
语法:
select * from 表名称;
描述:
查询指定表中的所有数据
案例:
2.4.2. 单条件查询(后面的案例私信小编,图片太多了!)
语法:
SELECT * FROM 表名 WHERE 条件;
描述:
查询一条ID=2 的数据
案例:
2.4.3. 多条件查询
语法:
SELECT * FROM 表名 WHERE id = 2 AND dname="研发七";
SELECT * FROM表名WHERE id = 1 OR dname="代表";
描述:
查找一个id=2并且dname= “研发七”的数据,
查找一个id =1 或者 dname=’代表’;
案例:
2.4.4. 比较查询
语法:
SELECT * FROM 表名 WHERE id <3(比较运算符条件);
描述:
查询id <3 的所有数据。
案例:
2.4.5. 模糊查询
语法:
SELECT * FROM 表名 WHERE 列名 LIKE "%数据%";
SELECT * FROM 表名 WHERE 列名 LIKE -数据-";
描述:
查询条件中的数据,只是查询数据的一部分~~通过一部分数据完成整体数据的匹配匹配过程,称为模糊匹配过程
%:匹配任意字符0~n个
_:匹配任意一个字符
案例“
2.4.6. 空值查询
语法;
select * from 表名称 where 条件 is null;
select * from 表名称 where 条件 is not null;
描述:
查询是否为空:
查询是否不为空:
案例:
2.4.7. 范围查询
语法:SELECT * FROM 表名 WHERE 列名 IN ("研发七","研发九");
描述:
手工指定多个数据,通过范围查询操作符号in,来指定条件取值范围
案例:
2.4.8. 区间查询
语法:SELECT * FROM 表名WHERE id BETWEEN 2 AND 5;
描述:
手工指定一个区间范围,包含起始数据和结束数据:between.. and ..
案例:
2.4.9. 排序查询
语法:select * from 表名 order by id desc/asc
描述:按照指定的列进行顺序或者降序的数据整理展示
案例:
2.4.10. 分页查询
语法:select * from 表名 limint m,n;
描述:每次取出3条数据,分三次取完
案例:
2.4.11. 聚合查询
语法:select avg(id)/count(1)/max(id)/min(id)/sum(id) form 表名;
描述:
l avg() 求取指定列的平均值
l count() 求取指定列的数据总数量
l max()求取指定列中数据的最大值
l min()求取指定列中数据的最小值
l sum()求取指定列中数据的和
案例:
2.4.12. 指定列查询
语法:select 列名 from 表名;
描述:查询 列名为id 和 dname 的数据
案例:
2.4.13. 查询数据踢重
语法:
select distinct 列名 from 表名
描述:对重复的数据进行清除
案例:
2.4.14. 分组查询
语法:select count(1),列名 from 表名 group by 列名;
select count(1),列名 from 表名 group by 列名 having darea is not null;
描述:
案例:
2.4.15. 多表联合查询—1.直接查询
语法:select * from 表1,表2;
描述:直接查看两张表格中的所有数据
案例:
2.4.16. 多表联合查询—2.关联查询
语法:
Select * from 表1,表2 where 表1.列名 = 表2.列名
描述:
通过两张表的关联数据,进行条件关联
案例:
多表联合查询—.表的别名设置
语法:
Select * from 表1 表1别名,表2 表2别名 where 表1.列名 = 表2.列名;
描述:
案例:
2.4.17. 多表联合查询—4.子查询
多行子查询:
Select * from 表名1
where 表名2 id in
(select id from 表名2 where dname in (“班委”,”常委”));
描述:????
案例:
单行子查询:
语法:SELECT * FROM 表2
WHERE id IN (SELECT id FROM 表1 WHERE 表2列名 = '研发七');
描述:
案例:
2.4.18. 多表联合查询—5.外连接
左外连接:
语法:
Select * from表1 表1别名 left join 表2 表2别名 on e.id = d.id
描述:???
案例:
右外连接:
语法:
SELECT * FROM 表1 表1别名 RIGHT JOIN 表2 表2别名ON e.id = d.id;
描述:
案例: