日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時間:2025/5/22 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql增加、删除和修改列属性和约束,和一些有用的查询语句 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

???? 最近在整理關于MySql的東西,把一些需要記錄的東西寫下來,以便以后查詢和瀏覽,以下是一些操作技巧。


如果【某數(shù)據(jù)庫】存在就刪除【某數(shù)據(jù)庫】

DROP DATABASE IF EXISTS db;

如果【某數(shù)據(jù)庫】不存在就創(chuàng)建【某數(shù)據(jù)庫】

CREATE DATABASE IF NOT EXISTS db;

使用【某數(shù)據(jù)庫】

USE db;

如果【某表】存在就刪除【某表】

DROP TABLE IF EXISTS tb;

如果【某表】不存在就創(chuàng)建【某表】

CREATE TABLE IF NOT EXISTS tb


添加表字段

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 外鍵(區(qū)分大小寫);

修改表名

alter table `表名稱` rename to bbb;

修改表的注釋

ALTER TABLE `表名稱` COMMENT '學生表2.0';

查看表的詳細信息

SHOW CREATE TABLE `表名稱`

修改字段的注釋信息

ALTER TABLE `表名` MODIFY COLUMN `列名` `數(shù)據(jù)類型` COMMENT '備注信息';

查看字段的詳細信息

SHOW FULL COLUMNS ?FROM `表名稱`;

查看字段的簡要信息

SHOW COLUMNS FROM `表名稱`;

查詢當前數(shù)據(jù)庫中所有表

select table_name from information_schema.tables where table_schema='當前數(shù)據(jù)庫';

查詢當前數(shù)據(jù)庫中所有表的約束(詳情)

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

查詢當前數(shù)據(jù)庫中所有表的約束(簡單)

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數(shù)據(jù)表的字段類型,默認值和增加新的字段。

總結

以上是生活随笔為你收集整理的Mysql增加、删除和修改列属性和约束,和一些有用的查询语句的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。