1数据库:用来管理和存储数据的仓库
2数据库的优点:
①可存储大量数据 ②方便检索 ③保持数据一致性、完整性 ④安全,可共享 ⑤通过组合分析,可产生新数据
3 常见的数据库:
Mysql:
MySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。
与其他数据库管理系统相比,MySQL具有以下优势:
(1)MySQL是一个关系数据库管理系统。
(2)MySQL是开源的。
(3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。
(4)MySQL服务器工作在客户/服务器或嵌入系统中。
(5)有大量的MySQL软件可以使用。
Sql Server:
SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。
目前最新版本是SQL Server 2005,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。
SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。而且,由于其易操作性及其友好的操作界面,深受广大用户的喜爱
Oracle:
提起数据库,第一个想到的公司,一般都会是Oracle(甲骨文)。该公司成立于1977年,最初是一家专门开发数据库的公司。Oracle在数据库领域一直处于领先地位。 1984年,首先将关系数据库转到了桌面计算机上。然后,Oracle5率先推出了分布式数据库、客户/服务器结构等崭新的概念。Oracle 6首创行锁定模式以及对称多处理计算机的支持……最新的Oracle 8主要增加了对象技术,成为关系—对象数据库系统。目前,Oracle产品覆盖了大、中、小型机等几十种机型,Oracle数据库成为世界上使用最广泛的关系数据系统之一。
Oracle数据库产品具有以下优良特性。
(1)兼容性
Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与IBM SQL/DS、DB2、INGRES、IDMS/R等兼容。
(2)可移植性
Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上不同的大、中、小型机上;可在VMS、DOS、UNIX、Windows等多种操作系统下工作。
(3)可联结性
Oracle能与多种通讯网络相连,支持各种协议(TCP/IP、DECnet、LU6.2等)。
(4)高生产率
Oracle产品提供了多种开发工具,能极大地方便用户进行进一步的开发。
(5)开放性
Oracle良好的兼容性、可移植性、可连接性和高生产率使Oracle RDBMS具有良好的开放性。
Sybase:
1984年,Mark B. Hiffman和Robert Epstern创建了Sybase公司,并在1987年推出了Sybase数据库产品。Sybase主要有三种版本:一是UNIX操作系统下运行的版本; 二是Novell Netware环境下运行的版本;三是Windows NT环境下运行的版本。对UNIX操作系统,目前应用最广泛的是SYBASE 10及SYABSE 11 for SCO UNIX。
Sybase数据库的特点:
(1)它是基于客户/服务器体系结构的数据库。
(2)它是真正开放的数据库。
(3)它是一种高性能的数据库。
DB2:
DB2是内嵌于IBM的AS/400系统上的数据库管理系统,直接由硬件支持。它支持标准的SQL语言,具有与异种数据库相连的GATEWAY。因此它具有速度快、可靠性好的优点。但是,只有硬件平台选择了IBM的AS/400,才能选择使用DB2数据库管理系统。
DB2能在所有主流平台上运行(包括Windows),最适于海量数据。
DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上都用DB2数据库服务器,而国内到1997年约占5%。
除此之外,还有微软的 Access数据库、FoxPro数据库等。既然现在有这么多的数据库系统,那么在游戏编程时应该选择什么样的数据库呢?首要的原则就是根据实际需要,另一方面还要考虑游戏开发预算。现在常用的数据库有:SQL Server、My SQL、Oracle、FoxPro。其中MySQL是一个完全免费的数据库系统,其功能也具备了标准数据库的功能,因此,在独立制作时,建议使用。 Oracle虽然功能强劲,但它毕竟是为商业用途而存在的,目前很少在游戏中使用到。
注:mysql :中小型数据库、关系型应用
4 安装数据库:安装详情(附博客网址);
5 开启mysql服务:net start mysql
关闭mysql服务:net stop mysql
6 在Dos环境下启动mysql:mysql –u root –p 退出:exit;
7 mysql 是一种多用户,多数据库的关系型应用数据库
数据库:DataBase,以二维表的方式存储各类数据信息,并将对应表放置在数据库中。
8 数据类型:
字符:char(字符数据大小个数)不可变字符 / varchar(数据大小) 可变字符 / text
数字:float / double int
日期:date / time / datetime / timestamp
9 约束条件
主键约束:primary key -- 标识所有记录唯一性的标志,所对应数据 不能为空,且不能重复
非空约束:not null -- 该字段信息必须填写,不能使用null进行填充
唯一约束:unique -- 该字段信息不能有重复信息
外键约束:foreign key -- 在从表中引用主表中数据信息
检查约束:check -- 检查当前输入输入有效性
默认值: default -- 用户没有填加数据时,采用默认值进行填充
10 查看当前所有数据库
show databases;
11 创建数据库
create database 数据库名;(create database day_01;)
12 删除数据库
drop database 数据库名称;(drop database day_01;)
13 选择数据库
use 数据库名称;
14 mysql 语法要求
①SQL语句可以单行或多行书写,以分号结尾;
② 可以用空格和缩进增强语句的可读性;
③ 关键字不区分大小写,建议用大写;
15 SQL 分类
DDL:数据定义语言 例如:创建表,创建库,删除表,删除库,修改表结构
DML:数据操作语言 例如:给表中添加信息,删除信息,修改信息
DCL :数据控制语言 例如:给用户授权
DQL :数据查询语言 例如:对表中信息进行筛选,左外连接,右外连接,子查询,聚合查询….
16 DDL分类
创建数据库:create database 数据库名;
查询数据库:show databases;
删除数据库:drop database 数据库名;
切换数据库:use 数据库名;
查询当前数据库中表格:show tables;
创建表格:
create table 表名(
字段名称1 数据类型 约束条件,
字段名称2 数据类型 约束条件,
);
举例:
#学生表中:编号 姓名 年龄 性别 出生日期 身份证号 出生地 奖学金 create table student( id int, name varchar(10), age int(3), sex enum('男','女'), birthday date, idcard char(18), address varchar(50), bonues decimal(7,2) );
查看表结构:desc 表名称;
添加数据:
insert into student(id,name,age,sex,birthday,idcard,address,bonues) values(2,’张三’,23,’女’,’1999-2-2’,’1111111111111’,’北京’,500);
查看表数据:
select * from 数据库名称;(查看全部表格数据)
select 字段名1,字段名2,……
select id,name from student;(查看部分数据)
17 常用基本操作
修改表结构,给表中添加列:
语法:
alter table 表名 add 列名 列的类型;
举例:给学生表中添加班级列
alter table student add classes int;
修改表中字段的类型:
语法:alter table 表名 modify 列名 列的新类型;
举例:修改学生表中出生日期字段的类型,改成时间戳
alter table student modify birthday timestamp;
修改表结构,更改列名
语法:alter table 表名 change 旧列名 新列名 新列名的类型;
举例:把学生表中的sex列的名字改成gender
alter table student change sex gender enum('男','女');
修改表的结构,删除列
语法:alter table 表名 drop 列名;
举例:删除学生表中地址列
alter table student drop address;
修改表的名字:
语法:
alter table 表名 rename to 新表名;
or
rename table 旧表名 to 新表名;
举例:把学生表的名字改成stu
alter table student rename to stu;
or
rename table stu to stus;
删除表:
drop table 表名;
举例:
drop table tab1;