数据库 SQL server(一)

  • 1.使用文件保存数据存在几个缺点:
    1、文件的安全性问题;
    2、文件不利于查询和对数据的管理;
    3、文件不利于存放海量数据
    4、文件在程序中控制不方便。
  • 数据库的定义
    (1)数据库是按照数据结构来组织、存储和管理数据的仓库
    (2)数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有的数据均能按一种公用的和可控制的方式进行。
  • 2.数据库的基本结构
    1、物理数据层
    它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据的原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。
    2、概念数据层
    它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。
    3、逻辑数据层
    它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。
    数据库不同层次之间的联系是通过映射进行转换的。
  • 3.数据库的基本特点
    1、实现数据共享
    数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
    2、减少数据的冗余度
    同文件系统比,数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性
    3、数据实现集中控制
    文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
    4、数据一致性和可维护性,以确保数据的安全性和可靠性。
    5、故障恢复
  • 4.数据库选择:
    1、成本;2、功能;3、并发性要求;4、安全性;
  • 5.SQL
    Structured Query Language 结构化查询语言;SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
    SQL语言包含4个部分:
    数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
    数据操作语言(DML),例如:INSERT、UPDATE、DELETE语句。
    数据查询语言(DQL),例如:SELECT语句。
    数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。

  • 6.数据类型

    • 字符型
      char 定长 最大8000字符(非unicode编码)
      char(10)’小韩’前四个字符放’小韩’,后添6个空格补全
      varchar 变长 最大8000字符(非unicode编码) 节省空间
      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,比如学号
      特别说明:
      带有汉字的字段用nvarchar,全英文或符号的用varchar
      unicode:单个字母还是单个汉字都占两个字节(用两个字节表示一个字符)
      varchar:字母占一个字节,汉字占两个字节(非unicode)
      nvarchar处理汉字或其它unicode字符集的速度要比varchar字段快。
    • 数字型
      1、bit 范围 0到1
      2、int 范围 负的2的31次方到正的 2的31次方-1
      3、bigint 范围 负的2的63次方到正的 2的63次方-1
      4、float 存放小数,不推荐使用
      5、numeric 小数
      强烈建议 如果存放小数最好使用numeric
    • 日期类型
      datetime(表示日期)
      timestamp(时间戳)
      一般情况下 用datetime表示日期
      –sql server为我们提供一个专门的时间函数
      getdate()
  • 7.注意:
    如果在select语句中同时包含有group by,having,ovrder by那么他们的顺序是group by,having,order by
    分面查询:

//eg:请显示第5个到第10个入职的雇员信息(按照入职的时间先后顺序查找)
//分析:1、显示第1个到第4个入职的雇员
select top 4 * from emp order by hiredate
//top后的数表示要取出几条记录
select top 6 * from emp 
where empno not in(select top 4 empno from emp order by hiredate) 
order by hiredate

删除掉一张表重复记录

  • 1、把cat表的记录distinct后的结果,放到临时表中
    select distinct * into #temp from cat
  • 2、把cat表的记录清空
    delete from cat
  • 3、把临时表中的数据信息加入到cat表中
    insert into cat select * from #temp
  • 4、删除临时表
    drop table #temp

约束包括
not null、unique,primary key,foreign key和check五种
default使用(默认值)

猜你喜欢

转载自blog.csdn.net/mys_mys/article/details/81355969