- 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使用(默认值)
- 8.其余参考MySQL
MySQL(一)