3Python全栈之路系列之MySQL表内操作
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,Python全栈之路系列之MySQL表内操作先创创建一个表用于测试-- 创建数据库CREATE DATABASE dbname DEFAULT CHARSET utf8 COLLATE utf8_ge
千家信息网最后更新 2024年11月11日3Python全栈之路系列之MySQL表内操作SQL表内操作
Python全栈之路系列之My
SQL表内操作
先创创建一个表用于测试
-- 创建数据库CREATE DATABASE dbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;-- 创建表CREATE TABLE `tb` ( `id` int(5) NOT NULL AUTO_INCREMENT, `name` char(15) NOT NULL, `alias` varchar(10) DEFAULT NULL, `email` varchar(30) DEFAULT NULL, `password` varchar(20) NOT NULL, `phone` char(11) DEFAULT '13800138000', PRIMARY KEY (`id`,`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
增加表内数据
进入dbname数据库mysql> use dbnameDatabase changed# 查看当前库所有的表mysql> show tables;+------------------+| Tables_in_dbname |+------------------+| tb |+------------------+1 row in set (0.00 sec)# 查看tb表内的内容mysql> select * from tb;Empty set (0.00 sec)
-- 插入单条数据insert into tb(name,email,password) values("ansheng","anshengme.com@gmail.com","as");-- 同时插入多条数据insert into tb(name,email,password) values("as","i@anshengme.com","pwd"),("info","info@anshengme.com","i");
查看插入的数据
mysql> select * from tb;+----+---------+-------+-------------------------+----------+-------------+| id | name | alias | email | password | phone |+----+---------+-------+-------------------------+----------+-------------+| 2 | ansheng | NULL | anshengme.com@gmail.com | as | 13800138000 || 3 | as | NULL | i@anshengme.com | pwd | 13800138000 || 4 | info | NULL | info@anshengme.com | i | 13800138000 |+----+---------+-------+-------------------------+----------+-------------+3 rows in set (0.00 sec)
把别的表的数据插入当前表
查看tb_copy表内的内容
mysql> select * from tb_copy;+----+--------+-------+-------+----------+-------------+| id | name | alias | email | password | phone |+----+--------+-------+-------+----------+-------------+| 5 | hello | NULL | NULL | 1 | 13800138000 || 6 | word | NULL | NULL | 2 | 13800138000 || 7 | python | NULL | NULL | 3 | 13800138000 |+----+--------+-------+-------+----------+-------------+3 rows in set (0.00 sec)
把tb_copy表内的name,email,password列插入到tb表中
insert into tb (name, email, password) select name,email,password from tb_copy;
查询tb内的内容
mysql> select * from tb;+----+---------+-------+-------------------------+----------+-------------+| id | name | alias | email | password | phone |+----+---------+-------+-------------------------+----------+-------------+| 2 | ansheng | NULL | anshengme.com@gmail.com | as | 13800138000 || 3 | as | NULL | i@anshengme.com | pwd | 13800138000 || 4 | info | NULL | info@anshengme.com | i | 13800138000 || 5 | hello | NULL | NULL | 1 | 13800138000 || 6 | word | NULL | NULL | 2 | 13800138000 || 7 | python | NULL | NULL | 3 | 13800138000 |+----+---------+-------+-------------------------+----------+-------------+6 rows in set (0.00 sec)
删除表内数据
-- 删除表内的所有内容delete from tb_copy;
-- 删除表内某一条数据delete from tb where id=2 and name="ansheng";
更改表内数据
update tb set name="as" where id="3";
查
-- 查询表内所有内容select * from tb;-- 带条件的查询表内的内容select * from tb where id > 4;
查询的时候指定最后一列的名称
mysql> select id,name as username from tb where id > 4;+----+----------+| id | username |+----+----------+| 5 | hello || 6 | word || 7 | python |+----+----------+3 rows in set (0.00 sec)
其他操作
条件
-- 多条件查询select * from tb where id>3 and name="hello" and password="1";-- 查询指定范围select * from tb where id between 4 and 6;-- 查询括号内存在的数据select * from tb where id in (4,6);-- 查询括号内不存在的数据select * from tb where id not in (4,6);-- 以别的表的内容为查询条件select * from tb where id in (select id from tb_copy);
通配符
-- 以p开头的所有(多个字符串)select * from tb where name like "p%";-- 以p开头的所有(一个字符)select * from tb where name like "p%";
限制
-- 前三行数据select * from tb limit 3;-- 从第2行开始的3行select * from tb limit 2,3;-- 从第4行开始的5行select * from tb limit 5 offset 4;
排序
-- 根据"name"列从小到大排列select * from tb order by name asc;-- 根据"name"列从大到小排列select * from tb order by name desc;-- 根据 "列1" 从大到小排列,如果相同则按列2从小到大排序select * from 表 order by 列1 desc,列2 asc;
分组
select id from tb group by id;select id,name from tb group by id,name;select num,nid from 表 where nid > 10 group by num,nid order nid desc;select num,nid,count(*),sum(score),max(score),min(score) from 表 group by num,nid;select num from 表 group by num having max(id) > 10;
特别的:group by 必须在where之后,order by之前
连表
无对应关系则不显示
select A.num, A.name, B.name from A,B where A.nid = B.nid;
无对应关系则不显示
select A.num, A.name, B.name from A inner join B on A.nid = B.nid;
A表所有显示,如果B中无对应关系,则值为null
select A.num, A.name, B.name from A left join B on A.nid = B.nid;
B表所有显示,如果B中无对应关系,则值为null
select A.num, A.name, B.name from A right join B on A.nid = B.nid;
组合
组合,自动处理重合
select nickname from A union select name from B;
组合,不处理重合
select nickname from A union all select name from B;
#Python全栈之路
数据
查询
内容
条件
组合
之路
从小到大
从小
字符
开头
括号
数据库
查询表
处理
排序
相同
内存
同时
名称
多个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
我的世界服务器安全类
服务器为啥要虚拟盘
软件开发资质评审
苏州互联网智慧学校软件开发
网络安全法的规定国家采取
浙江菲遇互联网科技有限公司花友
网络技术证书图片
比亚迪研发软件开发设备
云数据库的含义
拉萨旧服务器
hp服务器固态硬盘
武汉名片设计软件开发
出现网络安全风险是杀意思
sqlite数据库后缀
源码 web代理服务器
防沉迷网络安全黑板报
网络安全和信息化手抄报
数据库创建多列索引
厦门同安软件开发外包
上海汇合网络技术
安装数据库5
网络安全与舆情信息说明
网络安全员证考试内容
网络安全微课名称
修改浏览器代理服务器
企业诚信积分管理软件开发
数据库一定要做成网站吗
银行网络安全法宣传总结
服务器品牌对比
陕西省林业软件开发