• 数据库SQL Server2012笔记(二)——表的管理


    1、表名和列的命名规则

    1)必须字母、下划线开头
    2)长度不能超过128个字符
    3)不要使用sql server 保留字
    4)只能使用字符:A~Z,a~z,0~9,$,#,_等。

    2、常用编码
    1)Unicode码:可表示英文字母和汉字,用两个字节i宝石一个字符(英文、汉字)。
    2)非Unicode码:用一个字节表示一个英文字母,两个字节表示一个汉字。
    3)big5
    4)ISO-8859-1:欧。
    5)GB2312:国标码(针对中国汉字)。
    6)GBK:可以支持更多的汉字。

    3、支持的数据类型
    1)字符型
    • char  定长,最大8000字符(非Unicode编码)。eg: char(10):若字符不够,自动补全为“空格”。
    • varchar 可变长度,最大8000字符(非Unicode编码)。eg: char(10):节省空间,按需分配。
    注意:若字段长度确定,选择char,查询效率高。
    • ntext  可变长度,Unicode编码,最大长度为2^30-1。
    • text  可变长度,非Unicode编码,最大长度2^31-1.
    区别:
    • ntext  多字节格式  存储  Unicode,即存储各种蚊子用。
    • text       字节格式  存储  英文,也可存储中文,但有时显示乱码。
    • nchar  定长,最大4000字符。(Unicode编码 )
    • nvarchar  变长,最大4000字符(Unicode编码 )
    特别说明:
    • 一般,带有汉字的字段用nvarchar,全英文或符号选择varchar。因为nvarchar为unicode字符集,无论汉字或字母均占两个字节;varchar,字母占一个字节,汉字占两个字节。
    • nvarchar处理汉字比varchar块。
    • 特殊字符用varchar。
    2)数字型(范围)
    • bit  0~1
    • int  4个字节
    • bigint  8个字节
    • float  小数,不推荐使用
    • numeric  小数:若存放小数,建议使用numeric
    3)日期类型
    • datatime(表示日期):可表示到ms级。
    • timestamp(时间戳)
    sql  server提供专门的时间函数getdate()

    4)图片
    • image保存图片,但用的比较少。
    • 一般用路径保存图片,在软件公司往往使用图片服务器和图床技术。
    • 对图片有安全要求时,可以考虑放入数据库,但图片不要太大。
    5)视频
    • binary字段可存放,但往往将视频文件保存在文件服务器上,sql server中只保留文件路径,存取效率高。

    3、添加数据
    1)主键必须赋值,且不能为空。主键可修改,但不能和已有重复。
    2)所有字段都插入: 
         insert  into  xxx  value(x,x,x)
    3)插入部分字段,需要在表名后指端字段列表:
         insert  into  xxx  (字段1,字段2,...)  values  (xx,xx,...)
    4)修改一个字段:
         update  表名  set  字段名=‘新值’  where  字段名=‘值’
    5)修改多个字段
    6)修改含有NULL值的语句:
         update  表名  set  字段名=‘新值’ where  字段名  is  null

    4、删除数据
    1)删除全部数据:
         delete from 表名
    2)删除指定数据:
         delete from 表名  where  字段名=‘值’ and/or  字段名=‘值’

    5、表的查询
    1)主键创建:
         create  table  表名(字段名  类型  primary key)
    2)外键创建:
         create  table  表名(字段名  类型  foreign key  references  外表名(外键名))
    注:
    • 外键只能指向主键
    • 外键和主键的数据类型一致
    3)查询所有列:
         select  *  from  表名  where  条件
    4)查询指定列:
         select  字段1,字段2  from  表名  where  条件
    5)取消重复行:
         select  distinct  字段  from  表名  where  条件(distinct只能消除完全一样的行,保留一行)
    6)使用算数表达式,使用列的别名,别名可加引号,也可不加,且不区分单双引号:
         select  表达式  [别名]  from  表名
    注:处理字段值为“NULL”的问题:isnull(字段名,0)
    7)使用where语句
    • 查找关于日期,条件加单引号。eg: select  *  from  表名  where  hiredate>'1982-1-1'
    • between的使用:select  *  from  表名  where  sal  between  2000  and  5000
    注:between——>=and<=(包括等于)
    8)使用like操作符(模糊查询
    • %:表示0~多个字符
    • _:表示单个字符
    • eg:  select  *  from  表名  where  字段名  like  条件
    9)在where条件中用in
         eg: select   *  from  表名  where  字段名 (值1,值2,值3)
    10)使用is  null操作符
    11)使用逻辑操作符号
    12)使用order  by语句默认升序:
    • 默认升序 
                    select   *  from  表名  order  by  字段名  (asc升序/desc降序)
    • 多个标准排序:
                    select   *  from  表名  order  by  字段名 1 (asc升序/desc降序),字段名 2 (asc升序/desc降序)
    13)使用列的别名排序
          select   *  from  表名  order  by  别名
    14)分页查询
  • 相关阅读:
    16. InOrder
    15. BddStyle: given-willReturn、OneLiner风格
    12. atLeastOnce、atLeast、atMost、never、only、verifyNoMoreInteractions、verifyZeroInteractions
    11. verify验证方法调用
    sqlserver数据文件变更位置
    生产上的sqlserver数据库误删或者操作不当的补救措施
    linux centos7 安装配置jdk
    linux centos7 mysql5.7 设置端口以及远程访问
    linux centos7 安装mysq5.7步骤总结
    关于Netty的那点事
  • 原文地址:https://www.cnblogs.com/huhewei/p/6750002.html
Copyright © 2020-2023  润新知