虫师博客(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. 从零开始学习MXnet(四)计算图和粗细粒度以及自动求导

    这篇其实跟使用MXnet的关系不大,但对于我们理解深度学习的框架设计还是很有帮助的. 首先还是对promgramming models的一个简单介绍,这个东西实际上是在编译里面经常出现的东西,我们在编 ...

  2. 洛谷P1522 牛的旅行 Cow Tours

    ---恢复内容开始--- P1522 牛的旅行 Cow Tours189通过502提交题目提供者该用户不存在标签 图论 USACO难度 提高+/省选-提交该题 讨论 题解 记录 最新讨论 输出格式题目 ...

  3. POJ2236:Wireless Network(并查集)

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 39772   Accepted: 164 ...

  4. 使用UMeditor富文本编辑器上传图片

    注:本文系作者原创,但可随意转载. 最近写自己的网站玩儿,写到博客的部分,打算使用UMeditor,因为之前也用过(但是好像没实现图片上传的功能),感觉用起来还比较简单. 不过还是折腾了一下午...遇 ...

  5. NetTime

    NetTime NetTime is a Simple Network Time Protocol (SNTP) client for Windows 95/98/Me/NT/2000/XP/Vist ...

  6. PHP 抽象类,接口,抽象方法,静态方法

    1.Abstract class(抽象类) 抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 抽象类 ...

  7. 51Nod-1586-约数和

    #include <cstdio> using namespace std; typedef long long ll; ; int n, q; int cnt[MAXN]; ll a[M ...

  8. 【转】Linux Futex的设计与实现

    引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序" ...

  9. git 提示 Please move or remove them before you can merge 解决办法

    解决Git冲突造成的Please move or remove them before you can merge git clean -d -fx其中x -----删除忽略文件已经对git来说不识别 ...

  10. 【洛谷P3708】Koishi的数学题

    可以很显然的看出分块的性质…… 看不出来的打个表也能看出来. 然后就是随手做做就行了. #include<bits/stdc++.h> #define N 1000005 typedef ...