MySQL数据库详解

1.数据库的定义

数据库是存储数据的工具,并允许以某种方式创建,阅读,更新,和删除数据。

关系数据库:包含行和列的表。每一行均保存了有关特定实体的相关数据。每一列表示有关实体的一条信息。

常用关系型数据库

Oracle:跨平台,多层次网络计算,支持多重工业标准,处理海量数据,性能优

DB2: IBM公司

Microsoft sqlServer:只能运行在windows平台,C/S结构可以使用ADO,OLEDB,ODBC连接,由于其易操作性及其友好的操作界面,深受广大用户的喜爱

MySql:mySql是开源的,是一个快速的、可靠的和易于使用的数据库服务器,MySQL服务器工作在客户/服务器或嵌入系统中

LAMP:Linux+Apache+MySql+PHP

一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台

 选择标准

首要的原则就是根据实际需要,另 一方面还要考虑游戏开发预算。现在常用的数据库有:SQL Server、My SQL、Oracle。其中MySQL是一个完全免费的数据库系统,其功能也具备了标准数据库的功能,因此,在独立制作时,建议使用。 Oracle虽然功能强劲,但它毕竟是为商业用途而存在的,目前很少在游戏中使用到。

2.数据库应遵守的范式:(规范)

第一范式

   1.每列必须有唯一的名称

   2.行和列的次序无关紧要

   3:每一列有单独的数据类型

   4:不允许包含相同值的行

  5:每一列包含一个单值

  6:列不能包含重复的组

第二范式

   1:符合第一范式

   2:所有的非键值字段依赖于所有的键值字段

 

不符合第二范式的例子: 表:学号, 姓名, 年龄, 课程名称, 成绩, 学分; 这个表明显说明了两个事务:学生信息, 课程信息; 存在问题: 数据冗余,每条记录都含有相同信息; 删除异常:删除所有学生成绩,就把课程信息全删除了; 插入异常:学生未选课,无法记录进数据库; 更新异常:调整课程学分,所有行都调整。 

 

修正: 学生:Student(学号, 姓名, 年龄); 课程:Course(课程名称, 学分); 选课关系:SelectCourse(学号, 课程名称, 成绩)。 

 

第三范式

   符合2NF

   他不能包含传递相关性(指一个非键值字段的值依赖于另一个非键值的字段)

不符合第三范式的例子: 学号, 姓名, 年龄, 所在学院, 学院联系电话,关键字为单一关键字"学号"; 存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话) 存在问题: 数据冗余:有重复值; 更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况 删除异常 修正: 学生:(学号, 姓名, 年龄, 所在学院); 学院:(学院, 地点, 电话)。

3.常用的SQL语句

 

1,创建表

CREATE 创建

TABLE 表

PRIMARY KEY主键 (标志符 身份证)打完人名后自动生成

AUTOINCREMENT自动增长

 

NOT NULL 非空

UNIQUE 唯一的

一般不写

 

 

CREATE TABLE Teacher1 (teacher_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, teacher_name TEXT,teacher_sex BOOLEAN)

[说明 表里有多少列 每列有多少行 3列 ]

 

CREATE TABLE Teacher2 (teacher_id INTEGER PRIMARY KEY AUTOINCREMENT, teacher_name TEXT,teacher_sex BOOLEAN)

 

2, 删除表

DROP 丢弃 扔到

 

DROP TABLE Teacher1

 

3,给表添加列

ALTER 改变 修改

 

ALTER TABLE Teacher2 ADD teacher_age INTEGER

 

4,插入数据

 

INSERT INTO Teacher VALUES(1,'zhangsan',1)

INSERT INTO Students (name,sex)VALUES('zhangsan',0)

 

5,查询数据

SELECT 查询

* 全部

FROM

 

SELECT * FROM Students

SELECT * FROM Students WHERE number<10

SELECT * FROM Students WHERE number<10 OR sex=1

SELECT * FROM Students WHERE number<10 AND number>5

 

like 匹配

SELECT * FROM Students WHERE name like 'zhang%'

SELECT * FROM Students WHERE name like 'zhang_'

 

LIMIT 限制

从第六条开始 往后的15条

SELECT * FROM Students LIMIT 5,15

 

6,修改数据

UPDATE 更新

set 设置

 

UPDATE Students set name='lisi',sex=1 where number < 10 AND number>5

 

7,删除数据

DELETE 删除

 

DELETE FROM Students WHERE number > 25

 

原文地址:https://www.cnblogs.com/StevenHuSir/p/MySQL_SQL.html