Python 3 mysql 表操作

表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段

id,name,qq,age称为字段,其余的,一行内容称为一条记录

一 、创建表

语法:

create table 表名(

字段名1 类型[(宽度) 约束条件],

字段名2 类型[(宽度) 约束条件],

字段名3 类型[(宽度) 约束条件]

);

注意:

1. 在同一张表中,字段名是不能相同

2. 宽度和约束条件可选

3. 字段名和类型是必须的

创建表

create database db1 charset utf8;
use db1;
create table t1(
id int,
name varchar(50),
sex enum('male','female'),
age int(3)
); show tables; #查看db1库下所有表名
desc t1;
+-------+-----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| sex | enum('male','female') | YES | | NULL | |
| age | int(3) | YES | | NULL | |
+-------+-----------------------+------+-----+---------+-------+ select id,name,sex,age from t1;
Empty set (0.00 sec) select * from t1;
Empty set (0.00 sec) select id,name from t1;
Empty set (0.00 sec)
insert into t1 values
(1,'egon',18,'male'),
(2,'alex',81,'female')
;
select * from t1;
+------+------+------+--------+
| id | name | age | sex |
+------+------+------+--------+
| 1 | egon | 18 | male |
| 2 | alex | 81 | female |
+------+------+------+--------+ insert into t1(id) values
(3),
(4);
select * from t1;
+------+------+------+--------+
| id | name | age | sex |
+------+------+------+--------+
| 1 | egon | 18 | male |
| 2 | alex | 81 | female |
| 3 | NULL | NULL | NULL |
| 4 | NULL | NULL | NULL |
+------+------+------+--------+

往表中插入数据

乱码问题:重要!!!
create database db1 charset latin1;
use db1;
create table t1(name varchar(20));
show create table t1; #查看表,发现表默认与数据db1的字符编码一致
insert into t1 values('林'); #插入中文出错,因为latin1不支持中文
ERROR 1366 (HY000):
mysql> #解决方法一:删除库db1,重建db1,字符编码指定为utf8 #解决方法二:修改
alter table t1 charset utf8; #修改表t1的编码
insert into t1 values('林'); #虽然t1的编码改了,但是t1的字段name仍然是按照latin1编码创建的
ERROR 1366 (HY000):
alter table t1 modify name varchar(20); #需要重新定义下字段name
insert into t1 values('林');
select * from t1;
+------+
| name |
+------+
| 林 |
+------+

乱码问题

二 、数据表相关操作

desc tab_name               查看表结构
show columns from tab_name 查看表结构
show tables              查看当前数据库中的所有的表
show create table tab_name 查看当前数据库表建表语句
修改表ALTER TABLE

1. 修改表名
ALTER TABLE 表名
RENAME 新表名; 2. 增加字段
ALTER TABLE 表名
ADD 字段名 数据类型 [完整性约束条件…],
ADD 字段名 数据类型 [完整性约束条件…];
ALTER TABLE 表名
ADD 字段名 数据类型 [完整性约束条件…] FIRST;
ALTER TABLE 表名
ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名; 3. 删除字段
ALTER TABLE 表名
DROP 字段名; 4. 修改字段
ALTER TABLE 表名
MODIFY 字段名 数据类型 [完整性约束条件…];
ALTER TABLE 表名
CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
ALTER TABLE 表名
CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…]; 示例:
1. 修改存储引擎
alter table service
engine=innodb; 2. 添加字段
alter table student10
add name varchar(20) not null,
add age int(3) not null default 22; alter table student10
add stu_num varchar(10) not null after name; //添加name字段之后 alter table student10
add sex enum('male','female') default 'male' first; //添加到最前面 3. 删除字段
alter table student10
drop sex; alter table service
drop mac; 4. 修改字段类型modify
alter table student10
modify age int(3);
alter table student10
modify id int(11) not null primary key auto_increment; //修改为主键 5. 增加约束(针对已有的主键增加auto_increment)
alter table student10 modify id int(11) not null primary key auto_increment;
ERROR 1068 (42000): Multiple primary key defined alter table student10 modify id int(11) not null auto_increment;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0 6. 对已经存在的表增加复合主键
alter table service2
add primary key(host_ip,port); 7. 增加主键
alter table student1
modify name varchar(10) not null primary key; 8. 增加主键和自动增长
alter table student1
modify id int not null primary key auto_increment; 9. 删除主键
a. 删除自增约束
alter table student10 modify id int(11) not null; b. 删除主键
alter table student10
drop primary key;

修改表ALTER TABLE

复制表结构+记录 (key不会复制: 主键、外键和索引)
create table new_service select * from service; 只复制表结构
select * from service where 1=2; //条件为假,查不到任何记录
Empty set (0.00 sec)
create table new1_service select * from service where 1=2;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0 create table t4 like employees;

复制表

删除表

DROP TABLE 表名;

删除表记录:

delete from  tab_name  where 子句

清空表记录:

1  delete from tab_name
2 truncate tab_name (数据量大时推荐使用)

删除表相关操作

Python 3 mysql 表操作的更多相关文章

  1. Python 3 mysql 库操作

    Python 3 mysql 库操作 一.基础相关知识 MySQL数据库基本操作知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_ ...

  2. python对mysql数据库操作的三种不同方式

    首先要说一下,在这个暑期如果没有什么特殊情况,我打算用python尝试写一个考试系统,希望能在下学期的python课程实际使用,并且尽量在此之前把用到的相关技术都以分篇博客的方式分享出来,有想要交流的 ...

  3. Python 基于Python从mysql表读取千万数据实践

    基于Python 从mysql表读取千万数据实践   by:授客 QQ:1033553122 场景:   有以下两个表,两者都有一个表字段,名为waybill_no,我们需要从tl_waybill_b ...

  4. python之excel表操作

    python对excel表操作主要用到三个库,xlrd,xlwt,xlutils,分别用于excel表读,写,修改操作,以下将一个简单介绍 一.生成excel表:xlwt类 新建excel表,并写入数 ...

  5. Python将MySQL表数据写入excel

    背景:将mysql表查询结果写入excel. 1.使用sqlyog工具将查询结果导出到Excel.xml中,用excel打开发现:因为text字段中有回车换行操作,显示结果行是乱的. 2.用mysql ...

  6. 使用Python对MySQL数据库操作

    本文介绍Python3使用PyMySQL连接数据库,并实现简单的增删改查. 什么是PyMySQL? PyMySQL是Python3.x版本中用于连接MySQL服务器的一个库,Python2.x中则使用 ...

  7. python的mysql数据库操作

    python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...

  8. python之(mysql数据库操作)

    前言:关心3步骤(此文章只针对python自动化根基展开描述) 什么是mysql数据库操作?  答:利用python对mysql数据库进行增, 删, 改, 查 操作 为什么要用python对mysql ...

  9. 数据库 -- mysql表操作

    一,存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 详见:https://www.cnblogs.com/peng104/p/9751738.html 二,表介绍 表相当 ...

随机推荐

  1. Fiddler 默认不能抓取页面信息的问题

    先如下配置

  2. idea实时编译代码

    实时编译就不解释了,出现错误的代码在命令行能给你提示出来.看图操作吧:

  3. thinkphp5.0极速搭建restful风格接口层实例

    作为国内最流行的php框架thinkphp,很快就会发布v5.0正式版了,现在还是rc4版本,但已经很强大了下面是基于ThinkPHP V5.0 RC4框架,以restful风格完成的新闻查询(get ...

  4. spring的xml配置文件出现故障

    今天在断网的情况下,spring的applicationContext.xml文件开头部分出现红叉 <span style="font-size:18px;">< ...

  5. Cannot merge new index 65781 into a non-jumbo instruction! 问题解决(网上摘抄)

    我的报了这个错 Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.buil ...

  6. Python读取word文档(python-docx包)

    最近想统计word文档中的一些信息,人工统计的话...三天三夜吧 python 不愧是万能语言,发现有一个包叫做 docx,非常好用,具体查看官方文档:https://python-docx.read ...

  7. ps -ef 和 aux 区别

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

  8. 浏览器登录cookie

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...

  9. Cassandra数据库Java訪问

    针对的时Cassandra 2.0 数据库 Java本地client訪问Cassandra,首先建立Javaproject,使用Maven进行管理. 引入依赖: <dependency> ...

  10. 利用solr6.5,tomcat9.0和centos7.0的搭建

    第一步:去官网下载所需的软件包, jdk1.8   wget http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff ...