sql常用函数


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的整数值,小于的值无效.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值