最近在整理关于MySql的东西,把一些需要记录的东西写下来,以便以后查询和浏览,以下是一些操作技巧。

添加表字段

alter table` 表名称` add transactor varchar(10) not Null;

alter table  `表名称` add id int unsigned not Null auto_increment primary key

修改某个表的字段类型及指定为空或非空

alter table `表名称` change 字段名称 字段名称 字段类型 [是否允许非空];

alter table `表名称` modify 字段名称 字段类型 [是否允许非空];

修改某个表的字段名称及指定为空或非空

alter table `表名称` change 字段原名称 字段新名称 字段类型 [是否允许非空

删除某一字段

ALTER TABLE `表名称` DROP 字段名;

添加唯一键

ALTER TABLE `表名称` ADD UNIQUE ( `userid`)

修改主键

ALTER TABLE `表名称` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `id` )

增加索引

ALTER TABLE `表名称` ADD INDEX ( `id` )

ALTER TABLE `表名称` MODIFY COLUMN `id`  int(11) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`id`);

查看表的字段信息

desc 表名;

show columns from `表名`;

查看表的所有信息

show create table `表名`;

添加主键约束

alter table `表名` add constraint 主键名称(形如:PK_表名) primary key 表名(主键字段);

alter table  `表名` add 列名 列类型 unsigned 是否为空 auto_increment primary key;

添加外键约束

alter table `从表` add constraint 外键(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);

(alter table `主表名` add foreign key (字段 ) references 从表名(字段) on delete cascade)

添加唯一约束

ALTER table `表名` add unique key 约束名 (字段);

删除主键约束

alter table `表名` drop primary key;

删除外键约束

alter table `表名` drop foreign key 外键(区分大小写);

修改表名

alter table `表名称` rename to bbb;

修改表的注释

ALTER TABLE `表名称` COMMENT '学生表2.0';

查看表的详细信息

SHOW CREATE TABLE `表名称`

修改字段的注释信息

ALTER TABLE `表名` MODIFY COLUMN `列名` `数据类型` COMMENT '备注信息';

查看字段的详细信息

SHOW FULL COLUMNS  FROM `表名称`;

查看字段的简要信息

SHOW COLUMNS FROM `表名称`;

查询当前数据库中所有表

select table_name from information_schema.tables where table_schema='当前数据库';

查询当前数据库中所有表的约束(详情)

select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where Constraint_Schema='test_StringEntityTest';

查询当前数据库中所有表的约束(简单)

select * from information_schema.Table_Constraints where Constraint_Schema='test_StringEntityTest';
 
修改主键的sql语句块如下:

declare @defname varchar(100)

declare @cmd varchar(500)

declare @tablename varchar(100)

declare @keyname varchar(100)

Set @tablename='Temp1'

Set @keyname='id' --需要設置的key,分隔

select @defname= name

   FROM sysobjects so

   JOIN sysconstraints sc

   ON so.id = sc.constid

   WHERE object_name(so.parent_obj) = @tablename

   and xtype='PK'

if @defname is not null

begin

select @cmd='alter table '+ @tablename+ ' drop constraint '+ @defname

--print @cmd

   exec (@cmd)

 end

else

 set @defname='PK_'+@keyname

select @cmd='alter table '+ @tablename+ ' ADD constraint '+ @defname +' PRIMARY KEY CLUSTERED('+@keyname+')'

   exec (@cmd)

如何取主键字段名称及字段类型--得到主键字段名

1:
SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE

WHERE TABLE_NAME<>'dtproperties'

2:
EXEC sp_pkeys @table_name='表名'

3:
select o.name as 表名,c.name as 字段名,k.colid as 字段序号,k.keyno as 索引顺序,t.name as 类型

from sysindexes i

join sysindexkeys k on i.id = k.id and i.indid = k.indid

join sysobjects o on i.id = o.id

join syscolumns c on i.id=c.id and k.colid = c.colid

join systypes t on c.xusertype=t.xusertype

where o.xtype = 'U' and o.name='要查询的表名'

and exists(select 1 from sysobjects where xtype = 'PK' and parent_obj=i.id and name = i.name)

order by o.name,k.colid

以上就是关于如何修改MySql数据表的字段类型,默认值和增加新的字段。

Mysql增加、删除和修改列属性和约束,和一些有用的查询语句的更多相关文章

  1. hbase笔记---新版api之对表的操作,指定region创建,普通创建,删除,修改列族信息

    hbase 对于表的相关操作: 实现功能有:指定region创建,普通创建,删除,修改列族信息 package learm.forclass.testclass; import org.apache. ...

  2. 使用DOM解析XML文件,、读取xml文件、保存xml、增加节点、修改节点属性、删除节点

    使用的xml文件 <?xml version="1.0" encoding="GB2312" ?> <PhoneInfo> <Br ...

  3. MySQL之字段数据类型和列属性

    数据类型: 对数据进行统一的分类,从系统的角度出发,为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中将数据类型分成了三大类:数值类型.字符串类型.时间日期类型. 数值型: 数值型数据: ...

  4. mysql 增加删除用户

    mysql 增加用户 (注意:因为MYSQL环境中的命令,所以后面都带一个分号作为命令结束符) 格式:grant select on 数据库.* to 用户名@登录主机 identified by ' ...

  5. mysql联合索引阻碍修改列数据类型:BLOB/TEXT column 'name' used in key specification without a key length

    今天在项目中mysql表中有一个字段数据类型为varchar,长度不够需要换为text类型 当时表是已经存在的表, CREATE TABLE `table_aaa` ( `id` int NOT NU ...

  6. MySQL数据库删除数据(有外键约束)

    在MySQL中删除一张表或一条数据的时候,出现有外键约束的问题,于是就去查了下方法: SELECT @@FOREIGN_KEY_CHECKS; 查询当前外键约束是否打开 ; 设置为1的时候外键约束是打 ...

  7. mysql增加字段,修改字段,增加索引等语句

    mysql语句: 1.修改表名: rename table 旧表名 to 新表名; 2.修改字段类型: alter table 表名 modify column 字段名 字段类型(长度) 3.修改字段 ...

  8. Mysql批量删除和修改某个前缀的表

    1.批量删除某个前缀的表名,首先选出这些个表. select concat( 'drop table ', table_name, ';' ) from information_schema.tabl ...

  9. Mysql - 增量脚本中修改字段属性

    在增量部署系统的时候, 经常需要提供增量修改的脚本, 如果是修改存储过程或者自定义函数, 那还是很好改的, 不用担心表功能收到影响. 如果是改字段呢? 首先不知道字段是不是已经在系统里面, 没有的话, ...

随机推荐

  1. 港真,到底应该选择OA还是BPM?

    越来越多企业意识到流程管理的重要性,但是,选择OA还是BPM,却让他们产生了选择困难症. 一方面,企业皆注重流程的高效运转,最好内外部的业务都能用一个系统来解决.所有流程一天就能上线什么的,那就更好啦 ...

  2. ramdisk plus v11.5安装内存虚拟硬盘

    ramdisk plus v11.5.桌面版操作及应用图解说明 一.ramdisk plus程序安装方法: 1.先安装英文原版软件(RamDisk-desktop.exe桌面版),安装路径不要更改,安 ...

  3. 个人也能申请微信小程序获得APPID和手机测试效果

    微信小程序昨晚火爆公测,我也第一时间注册了小程序账号开启公测之旅. 注册过程可以看文档:https://my.oschina.net/imhoodoo/blog/780901 进入后台之后我们其实主要 ...

  4. 如何让我们的PHP在Jexus中跑起来

    最近一段时间,经常看到不少的朋友在问,应该怎么设置才能够让Jexus支持PHP.其实,Jexus在很早之前就已经是可以支持PHP,像Apache或Nginx一样充当PHP的Web服务器的.不过由于没有 ...

  5. Centos、Ubuntu 安装 Mono、Jexus

    Mono是.NET的跨平台实现 在众多关于语言的争论中,.NET一直被以不能跨平台而诟病,Mono改变了这一现状. 有人当心Mono会涉及版权啥的问题.高深的偶不懂,不过我觉得Unity3D都能用,为 ...

  6. Angular2笔记:NgModule

    Angular的模块的目的是用来组织app的逻辑结构. 在ng中使用@NgModule修饰的class就被认为是一个ng module.NgModule可以管理模块内部的Components.Dire ...

  7. 虚拟机体验之 VirtualBox 篇 —— 性能强大的经典架构

    前两篇体验了 QEMU 和经过 KVM 加速的 QEMU,并体验了第三方虚拟机管理工具 virt-manager,让我们见识了开源社区的强大和开源虚拟机软件的高质量和高性能.这一篇,我来剖析一下 Vi ...

  8. 页面元素坐标和偏移(clientX/pageX/screenX/layerX/offsetWidth/scrollWidth/clientWidth等)相关整理

    鼠标事件都是在特定位置发生的,我们可以通过event事件对象的各种属性来获得事件发生的坐标位置,有相对于视口的,有相对于整个文档的,同样页面元素的位置也有相对视口的,也有滚动后的,这些都比较容易混淆, ...

  9. 小谈Scrum敏捷开发流程

    一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...

  10. Html5 直接插入排序

    直接插入排序算法(Straight Insertion Sort),是排序算法中简单的一种算法,基本思想如下: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表.即:先将序列的第 ...