关于Mysql数据库的知识总结(1)

来源:互联网 发布:网络构架 编辑:程序博客网 时间:2024/06/16 17:41

1、数据库的发展阶段:

人工管理阶段----->文件系统管理阶段----->数据库系统阶段

1)人工管理阶段:容易丢失,数据重复、冗余,查阅和使用比较困难,维护成本高

2)文件系统管理阶段:易于存储,处理速度加快,数据形式丰富

3)数据库系统阶段:易于维护海量数据,更快的运算,保证数据的安全性,使用编程语言管理数据


2、数据库设置主键时,一般不和业务有相关性,主键为空和主键值重复会失去实体完整性

3、结构化查询语言SQL:用于储存数据以及查询、更新和管理关系数据库系统

 分类:

         1)数据定义语言(DDL):create、alter、drop

         2)数据操纵语言(DML):insert 、delete、update、select

         3)数据控制语言(DCL):grant、revoke、deny

4、Mysql数据类型

     1)整数类型:Bit、Tiny int(1个字节)、SMALL(2个字节)、MEDIUMINT(3个字节)、INT(4个字节)、BIGINT(8个字节)

     2)浮点数类型:FLOAT(4个字节)、DOUBLE(8个字节)、DECIMAL

     3)字符串类型:CHAR(最多255个字符)、VARCHAR、TINY TEXT、TEXT、MEDIUMTEXT、LONGTEXT、TINY BLOB、BLOB等

     4)日期类型:Date、DateTime、TimeStamp、Time、Year

     5)其他数据类型:Binary、VarBinaary、Enum、Set等。

5、char 和varchar的区别

     1):char(n)若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此

     2):char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。

     3):char类型的字符串检索速度要比varchar类型快。


6、varchar和Text的区别:

      1):varchar可指定ntext不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255)text是实际字符数+2个字节。

      2):text类型不能有默认值,varchar类型有默认值

      3):varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。


7、二进制数据(_Blob)

      1):_BLOB_text存储方式不同,_TEXT以文本方式存储,英文存储区分大小写,而_Blob是以二进制方式存储,不分大小写。

       2):._BLOB存储的数据只能整体读出。

       3):._TEXT可以指定字符集,_BLO不用指定字符集。


8、数据类型的属性:NULL、NOT NULL、DEFAULT、PRIMARY、AUTO_INCREMENT、UNSIGNED


9、E-R图

      1)长方形:实体,一般为名词

      2)椭圆:属性,一般为名词

      3)菱形:关系,一般是动词


10、三大范式

      1)1NF:如果每列都是不可分割的最小数据单元,即每列都不可在分割,则满足第一范式。

      2)2NF:在满足第一范式的基础上,并且除了主键以外的其他列,都完全依赖该主键,则满足第二范式,即每个表只描述一件事情。

      3)3NF:在满足第二范式的基础上,并且除了主键外的其他列都不传递依赖于主键列,则满足第三范式,即表中不存在冗余。

原创粉丝点击