①System.Data  →
DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint,DataColumnMapping,DataTableMapping
②System.Data.Coummon     → 各种数据访问类的基类和接口
③System.Data.SqlClient   → 对Sql Server进行操作的数据访问类
  主要有:   a) SqlConnection            → 数据库连接器
            b) SqlCommand               → 数据库命名对象
            c) SqlCommandBuilder        → 生存SQL命令
            d) SqlDataReader            → 数据读取器
            e) SqlDataAdapter           → 数据适配器,填充DataSet
            f) SqlParameter             → 为存储过程定义参数
            g) SqlTransaction           → 数据库事物

前一篇博客关于SQL Server on
Linux的安装,地址:,现在测试把Windows平台下的一个数据库迁移到Linux平台下。

概念

  • 单行函数:针对sql语句影响的每一行都进行处理,并针对这一行返回一个结果sql影响多少行就返回多少个结果
  • 组函数 :对sql语句影响的所有行进行综合处理,最终返回一个结果无论sql语句影响多少行都只返回一个结果(组函数会忽略空值)

一、SqlConnection(连接对象)

 

对字符串处理的函数

  1.连接字符串

1. 环境

Windows: Microsoft SQL Server 2008 R2 (SP3) – 10.50.6000.34 (X64)
Linux: CentOS 7.4,SQL Server 2017 (RC2) – 14.0.900.75 (X64)

 

dual表说明

假设一张表有100w条数据,测试单行函数,会返回100w条数据,这样返回会占屏幕,很麻烦所以系统提供一个测试表,dual(单行单列的表)

select * from dual;

  图片 1

可以用它进行单行函数的测试(也可以自己再建一个单行单列的表)

    基本语法:数据源(Data Source)+数据库名称(Initial
Catalog)+用户名(User ID)+密码(Password)(这种方式比较安全)!

2. 在Windows下创建备份

在Windows下使用SSMS完整备份数据库

BACKUP DATABASE db1 TO DISK = 'D:\sql_bak\db1\db1.bak'
WITH
COMPRESSION, INIT, SKIP, NAME = 'full_backup',STATS = 1
GO

code-1: 备份数据库

 

upper(par1)  对字符串变大写

    推荐文章 :SQL Server
连接字符串和身份验证,你必须知道的ADO.NET(三)
连接字符串,你小觑了吗?,SQL
Server
2008连接字符串写法大全,连接字符串有很多的写法,最保险的写法可以借助“SqlConnectionStringBuilder”类,它提供了全面的连接字符串的属性,以至于减少出错率(相关属性查MSDN) 
代码:

3. 复制备份文件到Liunx

把备份文件复制到Linux,如放到/tmp/下。可以用FTP,或rz等工具。

演示:

 select first_name, upper(first_name) from s_emp where id=1;

影响了一行的情况(id为1的只有一个):

图片 2

 

select first_name, upper(first_name) from s_emp where id<1;

一行都没有影响的情况(id小于1的不存在):

图片 3

 

select first_name, upper(first_name) from s_emp where id>1;

影响多行的情况(id大于1的有24个):

图片 4

SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder()
 {
     DataSource = "",
     InitialCatalog = "",
     UserID = "",
     Password = ""
 };
SqlConnection connection = new SqlConnection(connectionStringBuilder.ToString());

4. 在Linux下还原数据库

使用终端(如Xshell)连接到Linux。默认数据文件目录在/var/opt/mssql/data/下,如果要指定数据目录的话,可创建自定义目录并赋予相应权限。

mkdir -p /data/mssql_data
chown -R mssql:mssql /data/mssql_data

code-2: 创建目录并修改权限

使用sqlcmd连接到数据库

sqlcmd -S localhost -U sa

code-3: 连接到数据库

 

RESTORE DATABASE db1 FROM DISK = '/tmp/db1.bak'
WITH
MOVE 'db1' TO '/data/mssql_data/db1.mdf',
MOVE 'db1_log' TO '/data/mssql_data/db1_log.ldf',
STATS = 1, REPLACE, RECOVERY
GO

code-4: 还原数据库

 

注意:不能复制并粘贴整个多行命令一次,只能复制每个行后按 enter
键。最后以GO结束,回车后执行。

当然,也可以把上面的还原数据库的命令写到一个文件,再使用sqlcmd执行脚本方式来还原数据库。

sqlcmd -S localhost -U sa -i '/data/mssql_data/restore_db.txt'

code-5: 执行脚本文件还原数据库

lower(par1)  对字符串变小写

详细资料:

5. 查询验证

在Linux下的sqlcmd查询:

图片 5

 Figure-1: sqlcmd下的查询

 

图片 6

 

 Figure-2: SSMS下db1数据库的属性(Files)

 

 

在Windows的SSMS连接到Linux下的数据库,发现数据库文件的路径不是Linux的正斜杠,而是Windows的反斜杠;Compatibility
level也无法修改。

图片 7

 Figure-2: SSMS下db1数据库的属性(Options)

 

 

图片 8

 

Figure-2: SSMS下的查询

 

演示:测试lower函数:

select lower('HELLO') from dual;

图片 9

6. 参考

 

initcap(par1) 对每个单词的首字母变大写

演示:测试initcap函数

select initcap('one world one dream') from dual;

图片 10

 oncat函数(用的少,一般用||)

oncat(par1  varchar2,par2)//把类型写后面  连接字符串

发表评论

电子邮件地址不会被公开。 必填项已用*标注