对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 ...
随机推荐
- [BZOJ3829][Poi2014]FarmCraft 贪心
这个题应该是很容易想到贪心的,只要可是怎么贪才是科学的呢?我们分析一下题干,对于每个边只能一进一出因此,对于树上的一棵子树,我们只要一进子树就必须遍历完,因此我们只能进行一遍 dfs() 然后我们发现 ...
- ubuntu使用su切换root用户提示“认证失败”
在虚拟机上安装了ubuntu,安装时提示设置密码,也设置了,但是在终端操作时,遇到权限不够的问题,于是就想到就是要切换root用户,获取最高权限. 当我使用 su 切换到root用户时,提示我输入密码 ...
- POJ2112:Optimal Milking(Floyd+二分图多重匹配+二分)
Optimal Milking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 20262 Accepted: 7230 ...
- 树形DP小结
树形DP1.简介:树是一种数据结构,因为树具有良好的子结构,而恰好DP是从最优子问题更新而来,那么在树上做DP操作就是从树的根节点开始深搜(也就是记忆化搜索),保存每一步的最优结果.tips:树的遍历 ...
- Python-Jenkins API使用
一.概述 最近在工作中需要用到在后台代码中触发Jenkins任务的构建,于是想到Jenkins是否有一些已经封装好的API类库提供,用于处理跟Jenkins相关的操作.下面就简单介绍下我的发现. 二. ...
- Xamarin+vs2010部署错误:error MSB6004: 指定的任务可执行文件位置\sdk\\tools\zipalign.exe”无效
好不容易配好了Xamarin和vs2010,也搞好了GenyMotion的虚拟机配置,开始调试的时候又报出了这样的错误: error MSB6004: 指定的任务可执行文件位置"C:\Use ...
- HDU 4320 Arcane Numbers 1 (数论)
A - Arcane Numbers 1 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- [Leetcode Week8]Subsets
Subsets 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/subsets/description/ Description Given a set ...
- CSS3制作旋转的小风车
制作旋转小风车 一 我先搭建一个大盒子400x400px大盒子里面嵌套四个小盒子200x200px,放在一起肯定是四个排在一行,我想要的效果是上下各两个, css样式 *{ margin:0; pad ...
- mybatis insert oracle 返回主键
mybtis返回oracle主键 只需要加一点代码(红色处的代码)就可以了 <!-- 添加记录到临时表 --> <insert id="insertPlaneStateme ...