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

[关键字]用[ ]包起来

SQLserver数据类型:

非unicode编码:

在计算机世界,每一个字符都有编码的东西

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,647)个字符

区别:

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)

原文地址:https://www.cnblogs.com/xuxaut-558/p/10035710.html

时间: 2024-08-29 13:52:18

JAVA入门到精通-第57讲-SQLserver数据类型的相关文章

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

float查询的时候精度很奇怪,不建议用来声明小数: float (3) 精度:小数和整数的位数加起来的位数: 精度:20  小数位数:2 numeric (10, 2) datetime可以表示到毫秒级的:后面可以不带任何参数: --getdate(  ) 得到当前的时间: 时,分,秒,毫秒: 在程序中去拿到时间,JAVA专有的日期转换格式去转换: image图片其实很少用: 软件公司里面如何保存图片? 在数据库中保存图片的路径: 用图片服务器或者图床技术来解决图片的显示: 后面连接数据库群:

JAVA入门到精通-第59讲-sqlServer基本查询

sqlServer基本查询 dept/emp表: MGR:直接上级的编号 HIREDATE:入职日期 COMM:奖金 DEPTNO:部门编号   创建dept表 创建emp表 deptno 是外键,foreign key refercnce dept (deptno) reference 引用: 针对外键: dept: emp: select查询: *能不用则不用:对资源是种浪费: 整个数据带过来是很大的: distinct 区别: distinct只会抛弃完全一样的: select disti

JAVA入门到精通-第60讲-sqlServer基本查询

--批量查询 这样查询,效率比较低下: in 关键字,批量查询: select * from emp where  empno  in (123,  345,  800) is null --使用逻辑操作符 --order by 排序 asc   升序:默认是升序: desc 降序: order  by 可以根据不同的字段排序: order by deptno ,  sal  desc 使用别名进行排序: 实际上是种浪费,对字段取个别名,对别名进行排序: --分页查询 结果太多,不分页显示不方便

JAVA入门到精通-第94讲-山寨QQ项目8-好友在线提示

遇到的问题: 现在每登录一个人,后面的人是能看到前面的登录的人的: 但是,前面的人看不到后面的人登录: //后面每登录一个人,有责任去通知前面登录的人他已经上线了: 通知了完以后,需要更改好友在线的情况: //不让同一个账号反复登录 //如果 好友不在线,则不能聊天 ================================ [ManageQqChat.java] /** * 这是一个管理用户聊天界面的类 */ package com.qq.client.tools; import jav

JAVA入门到精通-第72讲-学生管理系统4-model 2模式(1)

删除.查询.添加.修改: -修改: 每个字段都可能修改: //给?赋值 //在prepareStatement语句后面赋值才好用 //修改完了,更新数据 目前为止,已经完成了增删改查-Model1模式 最大特点: 界面和业务逻辑操作是放在一起的: 优点:简单,开发方便: 缺点:代码复用性不高: 中大型项目可读性差,可维护性不高: 前台后端混杂在一起的: 比如:"数据库密码换了, 所有涉及到数据库的地方都需要发生变化" =================================

JAVA入门到精通-第31讲-常见组件

面板组件-Jpanel  一个JFrame,多个JPanel: JPanel默认是流布局:FlowLayout:  通过JPanel达到复杂布局的目的:  可以认为是网格布局,有3个JPanel:2个Label:2个按钮: 一个密码框和一个文本输入框:   最终展现出来的还是靠JFrame展现的  网格布局好点,3个JPanel,用流布局,控件往里加: ButtonGroup按钮组:一组里面只能选择一个:    对单选框管理,就是把它加入到ButtonGroup里面: 单选框也是一个个放进JPa

JAVA入门到精通-第70讲-学生管理系统2-增删改

-完成一个mini版本学生管理系统 jude软件:很好使的,安装一下就可以用了: -学生管理系统的添加 .修改.删除.上下页分页 ---------------------------------------------- 上面是一个流布局,JPanel 下面是一个流布局,JPanel 中间是Border布局,边界布局,CENTER JTextField jtf; 先加JLable--->Jtf文本域->JButton按钮 ------------------------- mis 系统:信息

JAVA入门到精通-第33讲-绘图技术.坦克大战1

    用的是Access数据库,安全性不够好,性能也不够强大:   躲在这里,坦克很少过来,做了一个随机数: 把得分的记录保存在数据库里面: SQLServer2005中型数据库:    (x,y)坐标:     800x600:     表示计算机屏幕上的每一行由800个点组成,共有600行:   共有480000个像素:   java绘图技术:   绘图一般在JPane上画: 覆盖JPanel的paintat方法 Graphics是一个图形画笔类,绘图的重要类,可以理解为一只画笔 supe

JAVA入门到精通-第32讲-swing编程实战

 JBorderLayout,左边是JList,拆分窗格: 图片是放在JLabel上的,图片的地址写好就行:  在相关项目下面建立一个文件夹Folder,放置图片:或者复制粘贴:   拆分:水平拆分?垂直拆分?    拆分之后把jList和jl1这两个组件放进去: 可以伸缩:  在窗口左上角出现自己的图标? Border布局: 多行文本框带滚动条,聊天窗口可滚动:   加入QQ左上角图标:      转成图片,getImage; Border布局很有用, CENTER会被自动挤满:  QQ号码.