python数据库-MySQL数据库的增删改查基本操作(49)
一、数据库基础
-
- 表 table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式
- 行:行用于记录数据
- 记录:行内的数据
- 列:列用于规定数据格式
- 字段:数据的某个列
- 主键:唯一地标识表中的某一条记录,不能空,不能重复
二、数据库的数据类型
1、数字类型
整数: tinyint、smallint、mediumint、int、bigint
浮点数: float、double、real、decimal
日期和时间: date、time、datetime、timestamp、year
2、字符串类型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
3、二进制
(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob
4、列的约束:
三、数据库连接
在关于数据库的第一篇文章中就给大家讲了使用Navicat连接数据库的方法,那么这里再给大家讲解一下使用命令连接数据库的方式。
一般在公司开发中,可能会将数据库统一搭建在一台服务器上,所有开发人员共用一个数据库,而不是在自己的电脑中配置一个数据库,远程连接命令
mysql -h ip地址 -u root -p
- -h后面写要连接的主机ip地址
- -u后面写连接的用户名
- -p回车后写密码
四、数据库操作
1、创建数据库
create database 数据库名 charset=utf8;
2、删除数据库
drop database 数据库名;
3、切换数据库
use 数据库名;
4、查看当前选择的数据库
select database();
5、查看目前所有的数据库
show databases;
五、表操作
1、查看当前数据库中所有表
show tables;
2、创建表
create table 表名(列及类型);
- 列名:id
- 类型:int unsigned
- 约束1:not null
- 约束2:primary key
- 约束3:auto_increment
列的格式:列的名称 类型 约束
例如:
create table hero(h_id int auto_increment primary key,h_name varchar(10) not null);
3、修改表
语法:
alter table 表名 add(添加)|modify(修改)|drop(删除) 列名 类型;
添加列:h_skill 为字符类型
alter table hero add h_skill varchar(10);
修改列:h_skill修改本属性不能为空
alter table hero modify h_skill varchar(10) not null;
4、删除表
drop table 表名;
5、查看表结构
desc 表名;
例如:
mysql> desc hero; +---------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+----------------+ | h_id | int(11) | NO | PRI | NULL | auto_increment | | h_name | varchar(10) | NO | | NULL | | | h_skill | varchar(10) | NO | | NULL | | +---------+-------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
6、更改表名称
rename table 原表名 to 新表名;
7、查看边的创建语句
show create table 表名
例如:
mysql> show create table hero; +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | hero | CREATE TABLE `hero` ( `h_id` int(11) NOT NULL AUTO_INCREMENT, `h_name` varchar(10) NOT NULL, `h_skill` varchar(10) NOT NULL, PRIMARY KEY (`h_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
六、数据操作
1、增加数据
insert into 表名(列1,...) values(值1,...);
例如:
insert into hero(h_id,h_name,h_skill) values(1,'韩信','裂天爆斩');
主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准
2、简单查询数据
select * from 表名
例如:
mysql> select * from hero; +------+--------+--------------+ | h_id | h_name | h_skill | +------+--------+--------------+ | 1 | 韩信 | 裂天爆斩 | +------+--------+--------------+ 1 row in set (0.00 sec)
3、修改数据
update 表名 set 列1=值1,... where 条件
例如:
update hero set h_skill='真裂天爆斩' where h_id=1;
mysql> select * from hero; +------+--------+-----------------+ | h_id | h_name | h_skill | +------+--------+-----------------+ | 1 | 韩信 | 真裂天爆斩 | +------+--------+-----------------+ 1 row in set (0.00 sec)
4、物理删除数据
delete from 表名 where 条件
例如:
mysql> delete from hero where h_id=1; Query OK, 1 row affected (0.01 sec) mysql> select * from hero; Empty set (0.00 sec)
5、逻辑删除,
本质就是修改操作update ,并没有删除,只有用isdelete去和其他没有删除的数据区别,所以叫做逻辑删除,方便回复误删数据
alter table hero add isdelete bit default 0; 在需要做逻辑删除的时候写上 update hero set isdelete=1 where h_id=5;
侯哥语录:我曾经是一个职业教育者,现在是一个自由开发者。我希望我的分享可以和更多人一起进步。分享一段我喜欢的话给大家:"我所理解的自由不是想干什么就干什么,而是想不干什么就不干什么。当你还没有能力说不得时候,就努力让自己变得强大,拥有说不得权利。"