创制表 增添主键 加多列常用SQL语句

发布时间:2019-09-21  栏目:MySQL  评论:0 Comments

一. 列常用操作


增添新的一列test_column,并将其看作主键,FI中华VST将其放在表中首先行,auto_increement是机动增加

alter table test_table add column test_column int not null auto_increment FIRST add primary key(test_column);
  • 1

 

能够行使SQL语句“alter table ai3 add id0 int  auto_increment primary key
first;”来加多主键列。能够选用SQL语句“alter table ai4 modify id int
auto_increment primary key;”来修改主键列。

② 删除列

 

alter table test_table drop column test_column;
  • 1

③ 修改某一列的字段长度(比方本来是30字节改为50字节长)

alter table test_table modify column test_column varchar(50);
  • 1

④ 完全修改某一列(即便原来列名是test1_column,类型是int)

alter table test_table change column test1_column test_column varchar(30);
  • 1


仅仅想重命名某一列(首先要求明白这一列的品种,假若原来是int且不为空,列名是error_name_column)

alter table test_table change column error_name_column test_column int not null;
  • 1

–删除主键

二. 针对表的大相当多操作

① 修改钦定表的积攒引擎,假如原来是MYISAM

alter table test_table engine=innodb;
  • 1

② 删除钦点表的主键

alter table test_table drop primary key;
  • 1

此处有个情形供给提出,若是该主键列是机关增加(auto_increment)的,因为mysql必要机关拉长列必需是索引,所以删除主键也就删除了主键索引,那是不切合mysql供给的,是敬谢不敏兑现的,会报错,必需先删除自动增进(通过修改列属性),后去除主键

③ 为钦点表加多主键

alter table test_table add primary key(test_column);
  • 1

④ 为钦点表加多索引(普通索引),test_index是索引名

alter table test_table add index test_index(test_column);
  • 1

⑤ 删除钦命表索引

alter table test_table drop index test_index;
  • 1

⑥ 重命名表

alter table test_table rename new_name_table;

 

 



 

 

要是想在三个曾经济建设好的表中增多一列,能够用诸如:

alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not
null;

那条语句会向已部分表中出席新的一列,这一列在表的尾声一列地点。假设我们希望加多在钦定的一列,能够用:

alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not
null after COLUMN_NAME;

小心,上边这一个命令的意趣是说增添新列到某一列前边。假如想增多到第一列的话,能够用:

alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not
null first;

alter table 表名 drop constraint 主键名
–增多主键
alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……)
–增多非聚集索引的主键
alter table 表名 add constraint 主键名 primary key
NONCLUSTERED(字段名1,字段名2……)

新建表: 
create table [表名] 

[机关编号字段] int IDENTITY (1,1) PRIMARY KEY , 
[字段1] nVarChar(50) default \’默认值\’ null , 
[字段2] ntext null , 
[字段3] datetime, 
[字段4] money null , 
[字段5] int default 0, 
[字段6] Decimal (12,4) default 0, 
[字段7] image null , 
)

删除表: 
Drop table [表名]

删除全数表:

DECLARE curItems CURSOR
FOR select [name] from sysobjects where xtype=’U’
FOR READ ONLY
OPEN curItems
DECLARE @n  NVARCHAR(100),@m NVARCHAR(100)
FETCH FROM curItems INTO @n
WHILE @@FETCH_STATUS=0
BEGIN
 set @m=@n
    exec(‘Drop Table ‘ + @m)
FETCH NEXT FROM curItems INTO 
@n
END
CLOSE  curItems
DEALLOCATE  curItems

计划数据: 
INSERT INTO [表名] (字段1,字段2) VALUES (100,\’51WINDOWS.NET\’)

剔除数据: 
DELETE FROM [表名] WHERE [字段名]>100

更新数据: 
UPDATE [表名] SET [字段1] = 200,[字段2] = \’51WINDOWS.NET\’
WHERE [字段三] = \’HAIWA\’

增加产量字段: 
ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL

剔除字段: 
ALTER TABLE [表名] DROP COLUMN [字段名]

修改字段: 
ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL

重命名表:(Access
重命名表,请参照他事他说加以考察文章:在Access数据库中重命名表) 
sp_rename \’表名\’, \’新表名\’, \’OBJECT\’

新建约束: 
ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([自律字段] <=
\’2000-1-1\’)

剔除约束: 
ALTER TABLE [表名] DROP CONSTRAINT 约束名

新建默许值 
ALTER TABLE [表名] ADD CONSTRAINT 私下认可值名 DEFAULT \’51WINDOWS.NET\’
FOR [字段名]

删除暗许值 
ALTER TABLE [表名] DROP CONSTRAINT 暗中认可值名

剔除Sql Server 中的日志,减小数据库文件大小 
dump transaction 数据库名 with no_log 
backup log 数据库名 with no_log 
dbcc shrinkdatabase(数据库名) 
exec sp_dboption \’数据库名\’, \’autoshrink\’, \’true\’

\\\’增加字段通用函数 
Sub AddColumn(TableName,ColumnName,ColumnType) 
Conn.Execute(\”Alter Table \”&TableName&\” Add \”&ColumnName&\”
\”&ColumnType&\”\”) 
End Sub

\\\’改动字段通用函数 
Sub ModColumn(TableName,ColumnName,ColumnType) 
Conn.Execute(\”Alter Table \”&TableName&\” Alter Column
\”&ColumnName&\” \”&ColumnType&\”\”) 
End Sub

\\\’检查表是还是不是存在

sql=\”select count(*) as dida from sysobjects where id =
object_id(N\'[所有者].[表名]\’) and OBJECTPROPERTY(id,
N\’IsUserTable\’) = 1\”

set rs=conn.execute(sql)

response.write rs(\”dida\”)\’再次来到一个数值,0代表没有,1表示存在

判别表的存在: 
select * from sysobjects where id =
object_id(N\'[dbo].[tablename]\’) and OBJECTPROPERTY(id,
N\’IsUserTable\’) = 1

有个别表的结构 
select * from syscolumns where id =
object_id(N\'[dbo].[您的表名]\’) and OBJECTPROPERTY(id,
N\’IsUserTable\’) = 1

修改表的前缀:

ALTER SCHEMA dbo TRANSFER prename.tablename;

假定表2已经存在,把表第11中学的记录加到表第22中学的语句: 
insert   into   表2   (字段1,字段2,…)   select   字段1,字段2,..   from
  表2   where   … 

一经表2不设有,则用上边包车型大巴语句会自动生成表2,字段的连串和表1同样: 
        select   字段1,字段2,..   INTO   表2   from   表1   where   … 

 

转载自:http://blog.csdn.net/xiaoxiong1212/article/details/7333595

留下评论

网站地图xml地图