MySQL数据库是存放有组织的数据集合的容器,以系统文件的形式存储在磁盘上,由数据库系统进行管理和维护。
1. MySQL数据库概述
1.2 数据库特点
在 MySQL中,数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的应用程序接口(Application Program Interface,API),用于创建、访问、管理、搜索和复制所保存的数据。
不过,也可以将数据存储在文件中,但是在文件中读写数据的速度相对较慢。所以,现在使用关系数据库管理系统(Relational Database Management System,RDBMS)来存储和管理大数据量。而MySQL 是最流行的关系数据库管理系统,尤其是在Web应用方面,MySQL可以说是最好的RDBMS应用软件之一。
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。关系数据库管理系统具有以下特点,这也是MySQL 数据库具有的特点。
(1)致据以表格的形式出现。
(2)每行为各种记录名称。
(3)每列为记录名称所对应的数据域。
(4)许多的行和列组成一张表单。
(5)若干的表单组成数据库。
1.2数据库对象
MySQL 数据库中的数据在逻辑上被组织成一系列对象,当一个用户连接到数据库后,所看到的是这些逻辑对象,而不是物理的数据库文件。MySQL 中有以下数据库对象。
(1)数据表:数据库中的数据表与我们日常生活中使用的表格类似,由列和行组成。其中,每一列代表一个相同类型的数据。每列又称为一个字段,每列的标题称为字段名;每一行包括
若千列信息,一行数据称为一个元组或一条记录,它是有一定意义的信息组合,代表一个实体或联系;一个数据库表由一条或多条记录组成,没有记录的表称为空表。
(2)主键:每个表中通常都有一个主关键字,用于唯一标识一条记录。主键是唯一的,用户可以使用主键来查询数据。
(3)外键:用于关联两个表。
(4)复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
(5)索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,类似于书籍的目录。
(6)视图:视图看上去同表相似,具有一组命名的字段和数据项,但它其实是一个虚拟的表,在数据库中并不实际存在。视图是由查询数据库表或其他视图产生的,它限制了用户能看
到和修改的数据。由此可见,视图可以用来控制用户对数据的访问,并能简化数据的显示,即通过视图只显示那些需要的数据信息。
(7)默认值:默认值是当在表中创建列或插入数据时,为没有指定具体值的列或列数据项赋予事先设定好的值。
(8)约束:是数据库实施数据一致性和数据完整性的方法,或者说是一套机制,包括主键约束、外键约束、唯一性约束、默认值约束和非空约束。
(9)规则:用来限制数据表中字段的有限范围,以确保列中数据完整性的一种方式。(10)触发器:一种特殊的存储过程,与表格或某些操作相关联,当用户对数据进行插入、
修改、删除或对数据库表进行建立、修改、删除时激活,并自动执行。
(11)存储过程:一组经过编译的可以重复使用的 T-SQL 代码的组合,它是经过编译存储到数据库中的,所以运行速度要比执行相同的SQL语句块快。
MySQL为关系数据库,这种所谓的“关系”可以理解为“表格”的概念,一个关系数据库由一个或数个表格组成。
(1)表头(header):每一列的名称。
(2)列(col):具有相同数据类型的数据的集合。
(3)行(row):每一行用来描述某条记录的具体信息。
(4)值(value):行的具体信息,每个值必须与该列的数据类型相同。
(5)键(key):键的值在当前列中具有唯一性。
1.3 系统数据库
MySQL包含了information schema、mysql、performance_schema、sakila、sys和 world 6个系统数据库。在创建任何数据库之前,用户可以使用命令来查看系统数据库,具体的方法为:在“命令提示符”窗口中登录到MySOL数据库,然后输入如下命令:
show databases;
(1) information_schema:这个数据库保存了mysql服务器所有数据库的信息,比如数据库的名、数据库的表、访问权限、数据库表的数据类型、数据库索引的信息等。该数据库是一个虚拟数据库,物理上并不存在,在查询数据后,从其他数据库获取相应的信息。
(2) mysql:这个数据库是MySQL的核心数据库,类似于SQL Server中的master表,主要负责存储数据库的用户、权限设置、关键字等,还有mysql自己需要使用的控制和管理信息。例如,可以使用mysql 数据库中的mysql.user表来修改root用户的密码。
(3) performance_schema:这个数据库主要用于收集数据库服务器性能参数,并且数据库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCESCHEMA 的表的。
(4) sakila:这个数据库最初由MySQLAB文档团队的前成员Mike Hillyer开发,旨在提供可用于书籍、教程、文章、样本等示例的标准模式。sakila示例数据库还用于突出MySQL 的最新功能,如视图、存储过程和触发器。
(5 ) sys:这个数据库所有的数据源来自 performance_schema 数据库。目标是把performance schema数据库的复杂度降低,让数据库管理员(DBA)能更好地阅读这个库里的内容,从而让数据库管理员更快地了解数据库的运行情况。
(6) world:这个数据库是MySOL提供的示例数据库,包括3个数据表,分别是city城市表、country国家表、countrylanguage国家语言表。
2. 创建数据库
默认情况下,只有系统管理员和具有创建数据库角色的登录账
的拥有者,才可以创建数
据库。在MySQL 中,root用户拥有最高权限,因此使用root用户登录MySOL 数据库后,就可以创建数据库了。
2.1 使用 CREATE DATABASE语句创建
在MySQL中,SQL提供了创建数据库的语句 CREATE DATABASE,其基本语法格式如下
CREATE DATABASE mybase;
主要参数为mybase:为要创建的数据库的名称,该名称不能与已经存在的数据库重名。
2.2 使用mysqladmin命令创建
使用mysqladmin命令创建数据库 book,输入语句如下:
mysqladmin -u root -p create book
Enter password:******
2.2 使用php脚本创建
使用PHP中的mysqli_query函数可以创建或者删除 MySQL 数据库。该函数有两个参数,在执行成功时返回 TRUE,否则返回FALSE。其语法格式如下:
mysqli query(connection,query, resultmode);
主要参数介绍如下:
GLon;query, resultmode);
主要参数介绍如下。
connection:必需。规定要使用的MySQL连接。
query:必需。规定查询字符串。
resultmode:可选。一个常量。可以是 MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)和MYSQLI_STORE_RESULT(默认)任意一个。
N_ULI (默认)任意一个。
使用PHP创建数据库 mymaster,输入语句如下:
$dbhost = 'localhost:3306';
//MySQL服务器主机地址
$dbuser = 'root';
// MySQL用户名
$dbpass - 'zZ19801212371...';
11 MySQL用户名密码
$conn = mysqli_connect ($dbhost,$dbuser,$dbpass);if(!$conn )
die('连接错误:'. mysqli_error ($conn));
echo'连接成功<br />';
$sql = 'CREATE DATABASE RUNOOB';
$retval = mysqli_query (Sconn,$sql );if(! $retval )
die('创建数据库失败:' . mysqli_error ($conn));
echo"数据库 RUNOOB创建成功\n";
mysqli_close ($conn) ;
3. 选择与查看数据库
当连接到 MySQL 数据库后,可能有多个可以操作的数据库,这时就需要选择要操作的数据库了。当选择完成后,还可以查看数据库的相关信息。
3.1 从命令提示窗口中选择
在mysql>提示窗口中可以很简单地选择特定的数据库。使用SOL命令中的USE语句可以选择指定的数据库。语法格式如下:
use database_name;
主要参数为database_name:要选择的数据库名称。
3.2 使用 PHP脚本选择
PHP提供了函数mysqli_select_db来选取一个数据库。函数在执行成功后返回TRUE,否则返回 FALSE。语法格式如下:
mysqli_select_db (connection, dbname);
主要参数介绍如下。
connection:必需。规定要使用的MySQL 连接。
dbname:必需。规定要使用的默认数据库。
// MySQL服务器主机地址
$dbhost = 'localhost: 3306';
$dbuser = 'root';
// MySQL用户名
$dbpass ='Ty0408';
// MySQL用户名密码
$conn = mysqli_connect ($dbhost,$dbuser, $dbpass);if( ! $conn )
{
die('连接失败:'.mysqli_error ($conn));
}
echo '连接成功’;
mysqli_select_db ($conn, 'mybase' );mysqli_close ($conn) ;
?>
注意:所有的数据库名、表名、表字段都是区分大小写的,所以在使用 SQL命令时需要输入正确的名称。
3.3 使用命令查看数据库
在控制台输入
show databases;
4. 删除数据库
删除数据库是将已经存在的数据库从磁盘空间中清除,
4.1 使用drop语句删除
在MySOL数据库中,可以使用DROP语句删除数据库,其基本语法格式如下:
DROP DATABASE database_name;
主要参数为 database name:是要删除的数据库名称,加果指定数据库名不存在,则删除出错。
4.2 使用mysqladmin命令删除
使用mysqladmin命令删除数据库book,输入如下命令:
mysqladmin -u root -p drop book
4.3 使用php脚本删除
使用 PHP 中的mysqli_query函数可以删除 MySQL 数据库。该函数有两个参数,在执行成功时返回TRUE,否则返回FALSE。其语法格式如下:
mysqli_query(connection, query, resultmode);
主要参数介绍如下
connection:必需。规定要使用的MySQL连接。
query:必需。规定查询字符串。
resultmode:可选。一个常量,可以是 MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)和MYSQLI_STORE_RESULT(默认)中的任意一个值。
$dbhost ='localhost : 3306';
1/ MySQL服务器主机地址
$dbuser ='root';
// MySQL用户名
$dbpass ='zZ19801212371...';
// MySQL用户名密码
$conn - mysqli_connect ($dbhost,$dbuser,$dbpass);if(!$conn )
die('连接失败:',mysqli_error($conn));
echo'连接成功<br />';
$sql = ' DROP DATABASE RUNOOB';
$retval = mysqli_guery( $conn,$sql );if(! Sretval)
{
die('删除数据库失败:'.mysqli_error($conn));
}
echo "数据库删除成功\n"
mysqli_close($conn);