发布网友 发布时间: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
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 的参数改一下就行了
希望对你有帮助