桂林一枝花 发表于 2015-8-16 15:12:58

SQL基础【花花教程】

本帖最后由 桂林一枝花 于 2015-8-16 15:12 编辑

      今天来讲讲sql基础。程序猿也是挺悲催的,,找一份程序猿工作又要学后台C#代码,还要学sql数据库。还尼玛要会前端代码。。还要略懂PS切片。还要测试。大公司分工很详细。。但是又有好多普通人能进大公司。。现在讲讲重点。
       我现在建数据库除了int varchar datetime 三个基本类型。大小通吃。对数据库的更多的类型基本不用。。因为做的都是小项目,几万人的注册量和访问量而已。小公司也不管。只要程序不出错就行。但是我是处女座,有一种洁癖一样。想追求完美应用到项目中去,也可以提升自己的实力。
首先来讲讲sql的数据类型:
       1.bit存储数据 0 和 1 。对应C#类型的bool类型;
       2.tinyint 存储数据0到255 对应C#类型的byte类型;

       具体看下面表格
SQL类型C#类型
bitbool
tinyintbyte
smallintshort
intint
bigintlong
realfloat
floatdouble
moneydecimal
datetimeDateTime
charstring
varcharstring
ncharstring
nvarcharstring
textstring
ntextstring
imagebyte[]
binarybyte[]




               最后讲讲一个比较重要的知识点。我都我的老师误导了几年。到现在才知道真相。。到处翻阅网上帖子也没百度到。
            varchar(20)存储变长数据,但存储效率没有CHAR高, 我指定varchar(20) 可以存储20个英文字符或者10个汉字 我老师说当数据超过设置的大小时会自动变长
最大到800。我竟然信了。。。。今天来测试一下:如果插入超过20个英文字符或者10个汉字。sql插入语句根本就执行不了会报错了。。下面会截图
            在来讲讲这四个的区别:
            char: CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。      varchar: 存储变长数据,但存储效率没有CHAR高,如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么"+1"呢?这一个字节用于保存实际使用了多大的长度。
            nchar 和nvarchar:数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。
            

char,varchar最多8000个英文,4000个汉字
nchar,nvarchar可存储4000个字符,无论英文还是汉字



桂林一枝花 发表于 2015-8-16 15:20:14

一楼留给自己。。。。。。。。。。。。。:P:P:P

huangyouwei 发表于 2015-8-16 22:18:08

弄个教程就好了

ibcadmin 发表于 2015-8-17 09:20:07

{:3_47:}

aba920867823 发表于 2015-12-23 15:33:51

;P

Amy尾巴 发表于 2016-6-29 09:46:38

插入进去没啊。。。

xs89 发表于 2016-8-22 12:13:25

我是花花。。。。。

cmccant 发表于 2017-1-26 08:47:52

谢谢分享
页: [1]
查看完整版本: SQL基础【花花教程】