JAVA与SQLServer数据库

发布网友 发布时间:2022-04-23 15:11

我来回答

2个回答

懂视网 时间:2022-05-02 20:23

在计算机世界,每一个字符都有编码的东西技术分享图片unicode码的特点:用两个字节表示一个字符(可以是英文字符,汉字)。
big5支持繁体;iso-8859-1编码:支持欧洲文字编码;gb2312支持中文汉字;gbk可以支持更多的汉字;技术分享图片邮件服务器,国际性的软件会涉及多种编码的问题,不同国家的文字,是否支持文字;
技术分享图片char最大值能存8000个字符,能存4000个汉字;非unicode编码,用两个字节 表示一个汉字;
char定长,会补全;技术分享图片char(100)  表中aa后面会有98个空格;
varchar  变长;技术分享图片varchcar中数据库会自动回收剩下的空间;
为什么还要char?在这样情况下应当使用到char:假设要设计一个数据库 ,这个数据库有一个字段是学号,6位,定长;定长应该毫不犹豫的选用char,因为char的查询速度很快,varchar数据库中需要一个个匹配,查询速度和效率比较慢;
技术分享图片
SQLserver帮助文档:技术分享图片
技术分享图片
字符超过了8000个,可以考虑用text或者ntext;尽可能使用Unicode编码,ntext;
Unicode / 非Unicode 编码Unicode编码的速度会更快;技术分享图片nchar /nvarchar 和前面的最大区别是Unicode编码;Unicode编码无论是单个字母还是 汉字都占两个字节;不确定大小,不超过4000字符,有可能有汉字:nchar;能用nchar就不用char;
技术分享图片
技术分享图片
技术分享图片
bit: 0-1技术分享图片慎用bit
------------------------------

表的管理--表名和列的命名规则

1、必需以字母,_开头

2、长度不能超过128个字符

3、不要使用sql server的保留字

4、只能使用如下字符A-Z,a-z,0-9,$,#,_等

表的管理--支持的数据类型

字符型

char 定长 最大8000字符(非unicode编码)

char(10)‘小韩‘前四个字符放‘小韩‘,后添6个空格补全

varchar变长 最大8000字符(非unicode编码)

varchar(10)‘小寒‘sql server分配四个字符,这样可以节省空间

ntext可变长度Unicode数据的最大长度为2的30次方-1(1,073,741,823)个字符

text可变长度非Unicode数据的最大长度为2的31次方-1(2,147,483,7)个字符

区别:

1、text是字节格式存储英文的,也可以存中文但有时候会显示成乱码

2、ntext是多字节格式存储unicode的,也就是存储各种文字用的。

在什么时候使用char型而不使用varchar,在知道字段定长固定时就使用char

字符型

nchar 定长 最大4000字符(unicode编码)

nchar(10)‘小韩‘前四个字符放‘小韩‘,后添6个空格补全

nvarchar 变长 最大4000字符(unicode编码)

nvarchar(10)‘小寒‘sql server分配四个字符,这样可以节省空间

特别说明:

1、一般带有汉字的字段用nvarchar,全英文或符号的用varchar,因为nvarchar为unicode字符集,该类型的字段无论是单个字母还是单个汉字都占两个字节,而varchar,字母占一个字节,汉字占两个,nvarchar处理汉字或其它unicode字符集的速度要比varchar字段快。

2、如果有一些特殊字符在nvarchar中没有的,如日文的某些名片,那当然只能选合适的代码页用varchar了,而且这些特有语言特有的字符转换到nvarchar会消失

表的管理--支持的数据类型

数字型

1、bit 范围 0到1

2、int 范围 负的2的31次方到正的 2的31次方-1

3、bigint 范围 负的2的63次方到正的 2的63次方-1

4、float 存放小数,不推荐使用

5、numeric 小数

强烈建议 如果要去存放小数最好使用numeric











来自为知笔记(Wiz)

JAVA入门到精通-第57讲-SQLserver数据类型

标签:繁体   消失   targe   get   符号   语言   inf   unicode   gb2312   

热心网友 时间:2022-05-02 17:31

如果编程风格跟阁下不同,请摘取有用的...
(需要驱动的JAR包 地址我就不在提供了 网上有)
1、
public final class ProUtil//这是一个终态工具类不能被继承{
private static Connection conn=null;
private Connect()//私有的构造函数,对象不能被new出来{}
public static Connection getConnection()//返回一个连接对象{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
[conn=new Connection(); 这里需不需要new一下 我也不敢确定,我现在都是用中间件来连数据库的,很少用JDBC]
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=;DatabaseName=qian");
return conn;
}
}
2、
如果求和不用SUM的话 我就只有把数据都读出来再加咯
得到COL1的值 用subString截取字符串 得到第一个字符 A、B
然后用 like 进行模糊查询 分别得到所有以 A、B开头的COL2数据 并保存在LIST里面 然后对LIST进行循环+ 就可以得到所有以COL1首字符开头的记录的COL2的和了
3、跟2问差不多 就是把subString 的参数改一下就行了

希望对你有帮助

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com