纯纯的freshman三天的mysql笔记【1】

 1.注:这是三天的mysql笔记,因为老师让改进小学期做的学生成绩管理工具而学的,其中可能会有少许错误,希望各位不吝勘误。thanks a million!

其实我老听人们说什么学生管理系统,成绩管理系统根本不值得拿出去说,但我这两周就是做的学生成绩管理工具,我还是觉得要是认真做完的话对学生的能力提高还是很有帮助的,当然不仅仅是码子的能力。

    额,居然提示大于8万字符,好吧,那我还是分两篇发吧。

 

2.MySql第一课

1.数据存储的三个阶段:

1.人工管理阶段

2.文件系统阶段(将数据以文件的形式存储在磁盘上)

3.数据库系统阶段

2.数据库泛型

数据库泛型就是指数据库应该遵守的规则,也称作数据库范式。目前关系数据库最常用的四种范式分别是:第一范式1NF,第二范式2NF,第三范式3NF和BNC范式BCNF。

在设计数据库时,数据库需要满足的最低要求的范式是第一范式1NF,第一范式要求表中不能有重复字段,并且每个字段不能再拆分。如果一个数据库连1NF都不能满足,那就不能称为关系数据库了。在1NF的逐次细化下可以细化出2NF,3NF,BCNF。

3.数据库技术

简单的说数据库技术包括三个方面,1是数据库系统,2是sql语言,3是数据访问技术。

4.数据库系统

数据库系统DBS不是简单的指数据库。DBS由数据库、数据库管理系统、应用开发工具组成。

其中数据库就是存放数据的地方,数据库管理系统DBMS就是用来定义数据、管理和维护数据的软件,应用系统是需要使用数据库的软件,而应用开发工具就是用来开发应用系统的。

5.SQL语言

Sql真名结构化查询语言。DBMS就是通过SQL语言来管理数据库中的数据的。Sql语言分为三个部分:1,数据定义语言DDL;2,数据操作语言DML;3,数据控制语言DCL。

6.数据库访问技术

应用系统中程序语言需要使用数据库访问技术来访问数据库。只有使用数据库访问技术和程序中嵌入的sql语句才能起作用,而不同的程序语言访问数据的方式是不一样的。

 

3.MySql第二课

7.MySql数据类型

Mysql的数据类型包括整型、浮点型、定点型、日期和时间类型、字符和二进制数据类型。

8.整型

Tinyint  1B

Smallint     2B

Mediumint 3B

Int 4B

Integer 4B

Bigint 8B

9. .浮点型和定点型

Float(M,D)    4B

Double 8B

Decimal(M,D)[M表示最大长度,D表示小数点后位数] M+2

 

10.日期和时间类型【过得快】

Year 年份 yyyy形式,范围1901到2155,超过范围则为0000

Date 日期

Time 时间

Datetime 日期

Timestamp 时间

11.字符串类型

Char

Varchar

Blob

Text

Enum

Set

Char和varchar类型在创建表时都指定了最大长度,基本形式是:字符串类型(M)。Char类型的茶馆年度是固定的,varchar长度可变。Varchar类型实际占用的空间为字符串的实际长度+1,这样可以有效地节省系统空间。

Text类型是一种特殊的字符串类型。Text只能保存字符数据。Text类型包括tinytext,text,mediumtext,longtext。

Tinytext 0-255B 存储空间+2

Text 0-65535B +2

Mediumtext 0-167772150B +3

Longtext 0-4294967295B +4

ENUM类型又叫枚举类型。在创建表时,enum类型的取值范围就以列表的形式指定了。其基本形式如下:属性名 ENUM('值1','值2','值3','值4',......)。其中“属性名”参数指定字段的名称,“值n”表示参数中表示列表的第n个值,这些值末尾的空格将会被系统直接删除。

Enum类型的值只能去列表的一个元素。其取值列表最多能有65535个值。列表中的每个值都有一个顺序排列的编号。Mysql中存入的就是这个编号,而不是列表中的值。

SET类型基本属性如下:

属性名 SET('值1','值2','值3','值4',......)。其中属性名参数指字段的名称,“值n”表示列表中第n个值,这些值末尾的空格会被系统直接删除。SET类型的值可以取列表中的一个元素或者多个元素的组合。 

12.二进制类型【过】

Binary

Varbinary

Bit

Tinyblob

Blob

Mediumblob

Longblob 

13.数据类型的选择

对于浮点数和定点数,当插入值的精度高于实际定义的精度时系统会自动进行四舍五入处理,其目的是为了使该值的进度达到要求,浮点数进行四舍五入不会报警,定点数会出现报警。

ENUM最多可以有65535个成员,而SET类型最多可以包含64个成员。两者的取值只能在成员列表中选取。Enum类型只能从成员中选择一个,而set类型可以选择多个。因此对于多个值中选取一个,可以用enum类型,例如“性别”;而对于可以选择多个值的字段可以选择set类型,例如“爱好”。

 

4..MySql第三课

14.操作数据库包括创建和删除数据库。

15.创建数据库语法:

Create database 数据库名;

16.查看数据库 

Show databases;

17.删除数据库语法:

Drop database 数据库名;

18.数据库存储引擎指表的类型。数据库的存储引擎决定了表在计算机中的存储方式。使用语句SHOW ENGINES可以查看mysql支持的存储引擎类型。【适合:show engines \G】。使用语句:show variables like 'storage_engine'查看默认的存储引擎。修改存储引擎可以使用安装时的配置工具,或者修改my.ini文件,也可以在图形化管理软件中进行修改。

19.InnoDB存储引擎:

支持自动增长列;支持外键;提供良好的食物管理、崩溃修复和并发控制能力。

缺点是读写效率稍差,占用的数据空间相对较大。

20.MYISAM存储引擎是基于ISAM存储引擎发展而来的。它把表存储成三个文件。

21.MEMORY存储引擎是mysql中一类特殊引擎,其所有数据都放在内存中。

 

5.MySql第五课

22.创建表的语法形式:

Create table 表名(属性名 数据类型【完整性约束条件】,属性名 数据类型【完整性约束条件】,......属性名 数据类型【完整性约束条件】);

创建数据库后使用以下语句选择数据库,并在该数据库里创建表等其他功能:

use 数据库名;

创建表后使用以下语句可以查看表:

Show tables;

也可以使用下面语句详细查看数据库的属性:

Describe 数据库名;

以下表格为创建表时的完整性约束条件:

Primary key

主键,用来标识每个记录。目的是帮助mysql最快查找表的某一条信息。主键必须是唯一的,即表中任意两条记录的主键字段的值不能相同;主键的值也不能为空;主键可以是一个字段也可以是多个字段。

Foreign key

外键,与之联系的某表的主键。外键必须依赖于数据库中已存在的父表的主键,外键可以为空值。外键的作用是建立该表与其父表的关联关系。父表中删除某条信息时,子表中与之对应的信息也必须又相应的改变。

Not null

属性不能为空。设置飞控约束的基本语法如下:属性名 数据类型 NOT NULL

Unique

标识该属性的的值是唯一的,即该字段的值不能重复出现。设置语法如下:

属性名  数据类型 UNIQUE

Auto increment

该属性的值是自动增加的,且该字段必须是主键的一部分。默认情况下该字段的值从1开始自增。设置语法如下:

属性名 数据类型 AUTO_INCREMENT

Default

默认 

 

23.查看表的结构:DESCRIBE 表名;DESC 表名;

24.查看表的详细结构:show create table 表名;

25.修改表名:alter table 旧表名 rename【to】 新表名;

26.修改标段的数据类型:alter talbe 表名 modify 属性名 数据类型;

27.修改字段名:alter talbe 表名 change 旧属性名 新属性名 新的数据类型;

28.增加字段:alter talbe 表名 add 属性名1 数据类型【完整性约束条件】【first|alter 属性名2】,其中first表示第一个位置增加字段。

29.删除字段:alter table 表名 drop 属性名;

30.修改字段的排列位置:alter table 表名 modify 属性名1 数据类型 first|alter 属性名2;

其中first指字段修改到第一个位置,或者字段插入到属性名2之后。

31.更改表的存储引擎:alter table 表名 engine=存储引擎名;

32.删除表的外键约束:alter table 表名 drop foreign key 外键别名;

33.删除表:drop table 表名;

本文出自 “From quantity to quality” 博客,转载请与作者联系!

你可能感兴趣的:(mysql,数据库)