对mysql数据库表的相关操作
虫师博客(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数据库表的相关操作的更多相关文章
- MySQL(3) - 数据库表的相关操作
1.数据库表的创建 逻辑库 1)创建逻辑库:CREATE DATABASE 逻辑库名称; 2)显示逻辑库:SHOW DATABASES; 3)删除逻辑库:DROP DATABASE 逻辑库名称; 数据 ...
- mysql数据库表的查询操作-总结
转自:https://www.cnblogs.com/whgk/p/6149009.html 序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VA ...
- 最全MySQL数据库表的查询操作
序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VARCHAR.BLOB,等), 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对 ...
- MySql数据库表的查询操作
http://www.cnblogs.com/whgk/p/6149009.html 优化:http://www.ihref.com/read-16422.html MYSQL常用的几种连接查询方法
- day40数据库之表的相关操作
数据库之表的相关操作1.表的操作: 1.创建表的语法: create table 表名( id int(10) primary key auto_inc ...
- Database学习 - mysql 数据库 表操作
mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...
- 第二百七十八节,MySQL数据库-表内容操作
MySQL数据库-表内容操作 1.表内容增加 insert into 表 (列名,列名...) values (值,值,值...); 添加表内容添加一条数据 insert into 表 (列名,列名. ...
- MySQL数据库表的数据插入、修改、删除、查询操作及实例应用
一.MySQL数据库表的数据插入.修改.删除和查询 CREATE DATABASE db0504; USE db0504; CREATE TABLE student ( sno ) NOT NULL ...
- Mysql 数据库 表中列的操作
[1]Mysql数据库中表的列操作 Mysql中关于表中列的操作集语句: -- [1]增加一列 ) DEFAULT NULL COMMENT '目的码区号'; -- [2]增加一列,在dnis_are ...
随机推荐
- BZOJ3573 [Hnoi2014]米特运输 【贪心】
题目链接 BZOJ3573 题解 题目又臭又长系列 题意:修改尽量少的点权,使得: ①同个节点的所有儿子点权相同 ②任意非叶节点权值等于其儿子权值之和 容易发现一旦任意一个点权值确定,整棵树权值就确定 ...
- clique 解题报告
clique 题目描述 数轴上有 \(n\) 个点,第 \(i\) 个点的坐标为 \(x_i\),权值为 \(w_i\).两个点 \(i\),\(j\) 之间存在一条边当且仅当 \(abs(x_i-x ...
- android脱壳之DexExtractor原理分析
导语: 上一篇我们分析android脱壳使用对dvmDexFileOpenPartial下断点的原理,使用这种方法脱壳的有2个缺点: 1. 需要动态调试 2. 对抗反调试方案 为了提高工作效率, ...
- ZooKeeper Watcher注意事项
zookeeper watch的定义如下:watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher. 需要注意三点: 1.一次性触发器 c ...
- DOM操作的一个小坑
最近在苦读<JavaScript高级程序教程>,真不愧是前端圣经,学到了很多东西. nodeList.NameNodeMap.HTMLCollection这三个集合是动态的!每当文档发生变 ...
- CSS3学习笔记之径向展开菜单
效果截图: HTML代码: <div class="menu-wrap"> <nav> <a href="" class=&quo ...
- RGB颜色原理
参考:http://www.cnblogs.com/harrytian/archive/2012/12/12/2814210.html 工作中经常和颜色打交道,但却从来没有从原理上了解一下,这篇文章希 ...
- 【Atcoder】ARC083 D - Restoring Road Network
[算法]图论,最短路? [题意]原图为无向连通图,现给定原图的最短路矩阵,求原图最小边权和,n<=300. [题解]要求最小边权和下,原图的所有边一定是所连两端点的最短路. 那么现在将所有最短路 ...
- ACdream 1113 The Arrow (概率dp求期望)
E - The Arrow Time Limit:1000MS Memory Limit:64000KB 64bit IO Format:%lld & %llu Submit ...
- javascript中实例方法与类方法的区别
在javascript中,类有静态属性和实例属性之分,也有静态方法和实例方法之分 类属性(静态属性):通过类直接访问,不需要声明类的实例来访问 类方法(静态方法):通过类直接访问,不需要声明类的实例来 ...