1.利用一张表的数据创建另一张表
mysql数据库:
insert into table_new (select colum1,colum2,colum3,string as colum4 from table_old
);
sqlserver数据库:
select * into tableName1 from tableName2 where 1=1 数据和结构
select * into tableName1 from tableName2 where 1=2 仅结构
oracle数据库
create table Name1 as select * from Name
2.删除外键
alter table table_name drop FOREIGN KEY forengn_key_name;
3.添加外键
alter table table_name add CONSTRAINT forengn_key_name FOREIGN KEY (列名1)
REFERENCES table_name2(列名2)
其中列名1表示在某某列上创建外键 table_name2、 列名2表示外键引用的表以及列名
SQL Server 中截取字符串常用的函数:
1.LEFT ( character_expression , integer_expression )
函数说明:LEFT ( '源字符串' , '要截取最左边的字符数' )
返回从字符串左边开始指定个数的字符
select LEFT('SQL_Server_2008',4 );
返回结果:SQL_
2.RIGHT ( character_expression , integer_expression )
函数说明:RIGHT ( '源字符串' , '要截取最右边的字符数' )
返回字符串中从右边开始指定个数的 integer_expression 字符
select RIGHT('SQL_Server_2008',4 );
返回结果:2008
3.SUBSTRING ( character_expression , start , length )
函数说明:SUBSTRING ( '源字符串' , '截取起始位置(含该位置上的字符)' , '截取长度' )
返回字符、binary、text 或 image 表达式的一部分
select SUBSTRING('SQL_Server_2008',5 ,6);
返回结果:Server
sql server update
update a set a.status=b.status from table1 a,table2 b where a.id1=b.id1
在oracle开发或维护过程中经常会遇到字符串的截取问题,其中从左或从右截取字符串也较为常用。
详述:
1.从左
从左截取指定长度的字符串
SQL> select substr('China-Shanghai',1,5) value from dual;
-----
China
从左截取到指定字符之前的字符串
SQL> select substr('China-Shanghai',1,instr('China-Shanghai','-',-1)-1) value from dual;
-----
China
2.从右
从右截取指定的字符串
SQL> select substr('China-Shanghai',7) value from dual;
--------
Shanghai
从右截取到指定字符之后的字符串
SQL> select substr('China-Shanghai',instr('China-Shanghai','-')+1) value from dual;
--------
Shanghai
向sqlserver 插入数据
#region 方式一
static void InsertOne()
{
Console.WriteLine("采用一条一条插入的方式实现");
Stopwatch sw = new Stopwatch();
using (SqlConnection conn = new SqlConnection(StrConnMsg)) //using中会自动Open和Close 连接。
{
string sql = "INSERT INTO Product(Id,Name,Price) VALUES(newid(),@p,@d)";
conn.Open();
for (int i = 0; i < totalRow; i++)
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@p", "商品" + i);
cmd.Parameters.AddWithValue("@d", i);
sw.Start();
cmd.ExecuteNonQuery();
Console.WriteLine(string.Format("插入一条记录,已耗时{0}毫秒", sw.ElapsedMilliseconds));
}
if (i == getRow)
{
sw.Stop();
break;
}
}
}
Console.WriteLine(string.Format("插入{0}条记录,每{4}条的插入时间是{1}毫秒,预估总得插入时间是{2}毫秒,{3}分钟",
totalRow, sw.ElapsedMilliseconds, ((sw.ElapsedMilliseconds / getRow) * totalRow), GetMinute((sw.ElapsedMilliseconds / getRow * totalRow)), getRow));
}
static int GetMinute(long l)
{
return (Int32)l / 60000;
}
#endregion
dump备份
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
D:/mysql-5.7.18-win32/bin/mysqldump --opt -u root --password=584520 test > D:/db_backup/test_%Ymd%.sql
@echo on
修改mysql自增主键初始值
alter table table_name auto_increment=n;
注意n只能大于已有的auto_increment的整数值,小于的值无效.