p.p1 { margin: 0; font: 14px “Yuanti SC Light”; color: rgba(0, 0, 0, 1); background-color: rgba(255, 255, 255, 1) }
p.p2 { margin: 0; font: 14px “Yuanti SC Light”; color: rgba(0, 0, 0, 1); background-color: rgba(255, 255, 255, 1); min-height: 20px }
p.p3 { margin: 0; font: 14px “Yuanti SC”; color: rgba(0, 0, 0, 1); background-color: rgba(255, 255, 255, 1) }
p.p4 { margin: 0; font: 14px “Yuanti SC”; color: rgba(0, 0, 0, 1); background-color: rgba(255, 255, 255, 1); min-height: 20px }
span.s1 { font: 14px “Yuanti SC” }
p.p1 { margin: 0; font: 14px “Yuanti SC” }

1.数据库的定义

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

p.p1 { margin: 0; font: 14px “Yuanti SC” }

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

p.p1 { margin: 0 0 10px; font: 14px “Yuanti SC” }
p.p2 { margin: 0; font: 14px “Yuanti SC”; color: rgba(50, 51, 51, 1) }
p.p3 { margin: 0 0 10px; font: 14px “Yuanti SC”; min-height: 20px }
p.p4 { margin: 0; font: 14px “Yuanti SC” }
span.s1 { color: rgba(0, 0, 0, 1) }
span.s2 { color: rgba(19, 110, 194, 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

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

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

p.p1 { margin: 0; font: 18px “Yuanti SC” }
p.p2 { margin: 0; font: 18px “Yuanti SC Light”; min-height: 25px }
p.p3 { margin: 0; font: 18px “Yuanti SC Light” }
p.p4 { margin: 0; font: 18px “Yuanti SC Light”; color: rgba(4, 51, 255, 1) }
p.p5 { margin: 0; font: 18px “Yuanti SC Light”; color: rgba(4, 51, 255, 1); min-height: 25px }
p.p6 { margin: 0; font: 18px “Yuanti SC Light”; color: rgba(255, 38, 0, 1) }
span.s1 { color: rgba(0, 0, 0, 1) }
span.s2 { color: rgba(4, 51, 255, 1) }
span.s3 { color: rgba(255, 38, 0, 1) }

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

 

版权声明:本文为StevenHuSir原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/StevenHuSir/p/MySQL_SQL.html