虫师博客(Python使用MySQL数据库(新)): https://www.cnblogs.com/fnng/p/3565912.html

1.更改表的结构,增加一个字段放置新增的属性

alter table table_name add column_name type

2.更改已经建立的数据库属性的数据类型

alter table table_name modify column_name newtype

3.修改表的列属性名

alter table 表名 change 原列名 新列名 类型;

4.删除表的某一列

alter table 表名 drop 列名;

5.mysql删除表中的某一行(假设n到m,表的行号是从0开始的),此时一定要存在主键,这里假设为id,table_name是你建立的数据库表

delete from table_name where exists(select *from (select id from table_name limit n,m)as a where a.id=table_name.id);

6.修改表名

alter table 表名 rename 新表名;

或者

rename table 原表名 to 新表名;

7.删除表内的数据,但并不删除表本身

TRUNCATE TABLE table_name

8.给已经建立的表创建一个 auto-increment 字段:

AUTO_INCREMENT 会在新记录插入表中时生成一个唯一的数字(自动增加,单调,可以跳过一段数字,但是不可以和表中已有的数字重复)

alter table table_name change column_name newcolumn_name new_type not null auto_increment primary key;

让 AUTO_INCREMENT 序列以其他的值起始(假设是n):

ALTER TABLE table_name AUTO_INCREMENT=n;

注意:给已有表新建 auto_increment 的那一列一定要是主键,不然会报错

9.mysql查询数据库中各表的主键、自增标识

查询数据库中所有表的自增主键:

SELECT
t.TABLE_NAME,
c.COLUMN_NAME,
ts.AUTO_INCREMENT
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,
information_schema.TABLES AS ts,
information_schema.KEY_COLUMN_USAGE AS c
WHERE
t.TABLE_NAME = ts.TABLE_NAME
AND ts.TABLE_NAME = c.TABLE_NAME
-- AND t.TABLE_SCHEMA = 数据库名称
AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'
ORDER BY ts.AUTO_INCREMENT DESC;

查询数据库中所有表的主键及数量:

SELECT
t.TABLE_NAME,
t.CONSTRAINT_TYPE,
c.COLUMN_NAME,
c.ORDINAL_POSITION
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c,
information_schema.TABLES AS ts
WHERE
t.TABLE_NAME = c.TABLE_NAME
-- AND t.TABLE_SCHEMA = 数据库名称
AND t.CONSTRAINT_TYPE = 'PRIMARY KEY';

举个例子:

select k.column_name
from information_schema.table_constraints t
join information_schema.key_column_usage k
using(constraint_name,table_schema,table_name)
where t.constraint_type='primary key'
and t.table_schema='test'
and t.table_name='person';

改变一个字段的默认值

alter table table_name alter column_name set default new_value;

mysql 修改、添加、删除表主键:

在我们使用mysql的时候,有时会遇到须要更改或者删除mysql的主键,我们能够简单的使用alter table table_name drop primary key;来完成。以下我使用数据表table_test来作了样例。

1、首先创建一个数据表table_test:

create table table_test(
"id" varchar(100) NOT NULL,
"name" varchar(100) NOT NULL,
PRIMARY KEY ("name")
)ENGINE=MyISAM DEFAULT CHARSET=gb2312;

2、如果发现主键设置错了,应该是id是主键,但如今表里已经有好多数据了,不能删除表再重建了,仅仅能在这基础上改动表结构。

先删除主键

alter table table_test drop primary key;

然后再增加主键

alter table table_test add primary key(id);

注:在增加主键之前,必须先把反复的id删除掉。

ubuntu 进入数据库 mysql -h localhost -u root -p密码

以降序的顺序把表中的某列记录列出来: select table_columns_name from table order by table_columns_name desc;

以升序的顺序把表中的某列记录列出来: select table_columns_name from table order by table_columns_name asc;

判断一个数据库是否已经存在某一个表(名):

select table_name from INFORMATION_SCHEMA.TABLES where table_name = "xxx" and TABLE_SCHEMA = "数据库名";

如果表中有某个数据有很多个,要统计个数,可以用如下语句:

select column_name , count(column_name) from table_name group by column_name having count(column_name) >=1;

1.查看数据库编码格式
show variables like 'character_set_database';

2.查看数据表的编码格式
show create table ;

3.创建数据库时指定数据库的字符集
create database character set utf8;

4.修改数据库的编码格式
alter database character set utf8;

5.修改数据表格编码格式
alter table character set utf8;

6.修改字段编码格式
alter table change character set utf8;
例如:
alter table user change username username varchar(20) character set utf8 not null;

7.添加外键
alter table tb_product add constraint fk_1 foreign key(factoryid) references tb_factory(factoryid);
alter table add constraint foreign key REFERENCES ;

8..删除外键
alter table tb_people drop foreign key fk_1;
alter table drop foreign key ;

MySQL 如何删除有外键约束的表数据

今天删除数据库中数据,提示因为设置了foreign key,无法修改删除
可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。
SET FOREIGN_KEY_CHECKS=0;

删除,更新数据,

恢复外键

SET FOREIGN_KEY_CHECKS=1;

查看当前 FOREIGN_KEY_CHECKS的值

SELECT @@FOREIGN_KEY_CHECKS;

如果忘记了这一句(SET FOREIGN_KEY_CHECKS=1;) 也没关系, 当你关闭了客户端,重新建立连接的时候,这个变量会恢复默认值。

mysql数据库删除数据后,数据自增id断点不连续

mysql数据库表"xxx"中id设置主键自增,删除结尾处数据后,重新插值字段id取值不连续,解决方法:
alter table xxx AUTO_INCREMENT=10;(此处10改为自己的断点即可)

在往数据库中进行插入操作的时候,为了防止反斜杠被mysql数据库自动去掉, 可以使用MySQLdb.escape_string("要插入的字符串") 就可以避免反斜杠被数据库去掉

对mysql数据库表的相关操作的更多相关文章

  1. MySQL(3) - 数据库表的相关操作

    1.数据库表的创建 逻辑库 1)创建逻辑库:CREATE DATABASE 逻辑库名称; 2)显示逻辑库:SHOW DATABASES; 3)删除逻辑库:DROP DATABASE 逻辑库名称; 数据 ...

  2. mysql数据库表的查询操作-总结

    转自:https://www.cnblogs.com/whgk/p/6149009.html 序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VA ...

  3. 最全MySQL数据库表的查询操作

    序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VARCHAR.BLOB,等), 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对 ...

  4. MySql数据库表的查询操作

    http://www.cnblogs.com/whgk/p/6149009.html 优化:http://www.ihref.com/read-16422.html MYSQL常用的几种连接查询方法

  5. day40数据库之表的相关操作

    数据库之表的相关操作1.表的操作: 1.创建表的语法:        create table 表名(              id   int(10)   primary key auto_inc ...

  6. Database学习 - mysql 数据库 表操作

    mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...

  7. 第二百七十八节,MySQL数据库-表内容操作

    MySQL数据库-表内容操作 1.表内容增加 insert into 表 (列名,列名...) values (值,值,值...); 添加表内容添加一条数据 insert into 表 (列名,列名. ...

  8. MySQL数据库表的数据插入、修改、删除、查询操作及实例应用

    一.MySQL数据库表的数据插入.修改.删除和查询 CREATE DATABASE db0504; USE db0504; CREATE TABLE student ( sno ) NOT NULL ...

  9. Mysql 数据库 表中列的操作

    [1]Mysql数据库中表的列操作 Mysql中关于表中列的操作集语句: -- [1]增加一列 ) DEFAULT NULL COMMENT '目的码区号'; -- [2]增加一列,在dnis_are ...

随机推荐

  1. 状压DP初识~~炮兵阵地

    炮兵阵地 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 31718   Accepted: 12253 Descriptio ...

  2. css属性选择器应用

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

  3. Spring学习--xml 中 Bean 的自动装配

    Spring IOC 容器可以自动装配 Bean. 只要在 <bean> 的 autowire 属性里指定自动装配的模式. byName(根据名称自动装配):必须将目标 Bean 的名称和 ...

  4. ios 全方位修改工程名

    本文针对于彻底修改iOS工程名,不需要另外建工程,会整理的跟新工程完全一样 1. 选中旧工程名,改为新的 然后选择rename 2. 依次选择黄色文件夹,修改名字,千万不要在Xcode外修改!!! 修 ...

  5. 【LA4670-Dominating Patterns】AC自动机

    http://acm.hust.edu.cn/vjudge/problem/19224 题意:给定n个单词,一个字符串,问哪些单词在字符串中出现的次数最多.单词aba,文本ababa,则aba出现了2 ...

  6. 【Foreign】划分序列 [线段树][DP]

    划分序列 Time Limit: 20 Sec  Memory Limit: 256 MB Description Input Output 仅一行一个整数表示答案. Sample Input 9 4 ...

  7. 汕头市队赛 yyl杯1 T1

    A SRM 05 - YYL 杯 R1 背景 傻逼题 描述 给一个序列,序列里只有两种元素1和2.现在要从序列里选出一些非空子序列使得子序列里两种元素数量相同.问有多少种方案数? 输入格式 多组数据 ...

  8. 【BZOJ】1592: [Usaco2008 Feb]Making the Grade 路面修整

    [算法]动态规划DP [题解] 题目要求不严格递增或不严格递减. 首先修改后的数字一定是原来出现过的数字,这样就可以离散化. f[i][j]表示前i个,第i个修改为第j个数字的最小代价,a表示排序后数 ...

  9. bzoj 1192 二进制

    原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1192 继续刷水题,二进制思想 //By BLADEVIL var x :longint; ...

  10. python3 线程_threading模块

    '''并发:同一个时间段内运行多个程序的能力 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成 程序:食谱数据集:鸡蛋.牛奶.糖等进程控制块:记下食谱做到 ...