MYSQL基础教程
上链接:https://blog.csdn.net/hjz0713/article/details/128651918前言
这是大活,我将一口气写完所有教程。阅读时请注意休息。
@TOC
MySQL简介
https://img-blog.csdnimg.cn/833462a52ca8488bbcc8ca35b9d2bddc.jpeg MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
在教程中,我会让大家快速掌握 MySQL 的基本知识,并轻松使用 MySQL 数据库。
什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:
[*]数据以表格的形式出现
[*]每行为各种记录名称
[*]每列为记录名称所对应的数据域
[*]许多的行和列组成一张表单若干的表单组成database
RDBMS 术语
在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:
[*]数据库: 数据库是一些关联表的集合。
[*]数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
[*]列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
[*]行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
[*]冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
[*]主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
[*]外键:外键用于关联两个表。
[*]复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
[*]索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格: https://img-blog.csdnimg.cn/d449da131171441ba69d4d9446d97a27.jpeg
[*]表头(header): 每一列的名称;
[*]列(col): 具有相同数据类型的数据的集合;
[*]行(row): 每一行用来描述某条记录的具体信息;
[*]值(value): 行的具体信息, 每个值必须与该列的数据类型相同;键(key): 键的值在当前列中具有唯一性。
MySQL数据库
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
[*]MySQL 是开源的,属于 Oracle 旗下产品。
[*]MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
[*]MySQL 使用标准的 SQL 数据语言形式。
[*]MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
[*]MySQL 对 PHP 有很好的支持,PHP 是很适合用于 Web 程序开发。
[*]MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。
MySQL 安装
所有平台的 MySQL 下载地址为: MySQL 。 挑选你需要的 MySQL Community Server 版本及对应的平台。
Linux/UNIX 上安装 MySQL
Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址
[*]MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。
[*]MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。
[*]MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。
[*]MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。MySQL-bench - MySQL数据库服务器的基准和性能测试工具。
安装前,我们可以检测系统是否自带安装 MySQL:
rpm -qa | grep mysql
如果你系统有安装,那可以选择进行卸载:
[*]rpm -e mysql // 普通删除模式rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
安装 MySQL:
接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源包,下载地址为:https://dev.mysql.com/downloads/repo/yum/
https://img-blog.csdnimg.cn/d4e07fe916974cae9c84417bdca42a6b.png
[*]wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
[*]rpm -ivh mysql-community-release-el7-5.noarch.rpm
[*]yum updateyum install mysql-server
权限设置:
chown -R mysql:mysql /var/lib/mysql/
初始化 MySQL:
mysqld --initialize
启动 MySQL:
systemctl start mysqld
查看 MySQL 运行状态:
systemctl status mysqld
注意:如果我们是第一次启动 mysql 服务,mysql 服务器首先会进行初始化的配置。
此外,你也可以使用 MariaDB 代替,MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
yum install mariadb-server mariadb
mariadb数据库的相关命令是:
[*]systemctl start mariadb#启动MariaDB
[*]systemctl stop mariadb#停止MariaDB
[*]systemctl restart mariadb#重启MariaDBsystemctl enable mariadb#设置开机启动
验证 MySQL 安装
在成功安装 MySQL 后,一些基础表会表初始化,在服务器启动后,你可以通过简单的测试来验证 MySQL 是否工作正常。
使用 mysqladmin 工具来获取服务器状态:
使用 mysqladmin 命令来检查服务器的版本, 在 linux 上该二进制文件位于 /usr/bin 目录,在 Windows 上该二进制文件位于C:\mysql\bin 。
# mysqladmin --version
linux上该命令将输出以下结果,该结果基于你的系统信息:
mysqladminVer 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386
如果以上命令执行后未输出任何信息,说明你的Mysql未安装成功。
使用 MySQL Client(Mysql客户端) 执行简单的SQL命令
你可以在 MySQL Client(Mysql客户端) 使用 mysql 命令连接到 MySQL 服务器上,默认情况下 MySQL 服务器的登录密码为空,所以本实例不需要输入密码。
命令如下:
# mysql
以上命令执行后会输出 mysql>提示符,这说明你已经成功连接到Mysql服务器上,你可以在 mysql> 提示符执行SQL命令:
[*]mysql> SHOW DATABASES;
[*]+----------+
[*]| Database |
[*]+----------+
[*]| mysql |
[*]| test |
[*]+----------+2 rows in set (0.13 sec)
Mysql安装后需要做的
Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:
# mysqladmin -u root password "new_password";
现在你可以通过以下命令来连接到Mysql服务器:
[*]# mysql -u root -pEnter password:*******
注意:在输入密码时,密码不会显示,你正确输入即可。
Windows 上安装 MySQL
Windows 上安装 MySQL 相对来说会较为简单,最新版本可以在 MySQL 下载 中下载 https://img-blog.csdnimg.cn/7753803ed9f640f19a7e9f1afe16899b.png
https://img-blog.csdnimg.cn/62d2404fc1624071aec9d33801acf528.png 下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:\web\mysql-8.0.11 下。
接下来我们需要配置下 MySQL 的配置文件
打开刚刚解压的文件夹 D:\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:
[*]
[*]# 设置mysql客户端默认字符集
[*]default-character-set=utf8
[*]
[*]
[*]# 设置3306端口
[*]port = 3306
[*]# 设置mysql的安装目录
[*]basedir=D:\\mysql-8.0.11
[*]# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
[*]# datadir=D:\\sqldata
[*]# 允许最大连接数
[*]max_connections=20
[*]# 服务端使用的字符集默认为8比特编码的latin1字符集
[*]character-set-server=utf8
[*]# 创建新表时将使用的默认存储引擎default-storage-engine=INNODB
接下来我们来启动下 MySQL 数据库:
以管理员身份打开 cmd 命令行工具,切换目录:
cd D\mysql-8.0.11\bin
初始化数据库:
mysqld --initialize --console
执行完成后,会输出 root 用户的初始默认密码,如:
[*]...
[*]2018-04-20T02:35:05.464644Z 5 A temporary password is generated for root@localhost: APWCY5ws&hjQ...
APWCY5ws&hjQ 就是初始密码,后续登录需要用到,你也可以在登陆后修改密码。
输入以下安装命令:
mysqld install
启动输入以下命令即可:
net start mysql
注意: 在 5.7 需要初始化 data 目录:
cd C:\web\mysql-8.0.11\bin
mysqld --initialize-insecure
初始化后再运行 net start mysql 即可启动 mysql。
登录 MySQL
当 MySQL 服务已经运行时, 我们可以通过 MySQL 自带的客户端工具登录到 MySQL 数据库中, 首先打开命令提示符, 输入以下格式的命名:
mysql -h 主机名 -u 用户名 -p
参数说明:
[*]-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
[*]-u : 登录的用户名;-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可:
mysql -u root -p
按回车确认, 如果安装正确且 MySQL 正在运行, 会得到以下响应:
Enter password:
若密码存在, 输入密码登录, 不存在则直接按回车登录。登录成功后你将会看到 Welcome to the MySQL monitor... 的提示语。
然后命令提示符会一直以 mysql> 加一个闪烁的光标等待命令的输入, 输入 exit 或 quit 退出登录。
MySQL 管理
启动及关闭 MySQL 服务器
Windows 系统下
在 Windows 系统下,打开命令窗口(cmd),进入 MySQL 安装目录的 bin 目录。
启动:
[*]cd c:/mysql/binmysqld --console
关闭:
[*]cd c:/mysql/binmysqladmin -uroot shutdown
Linux 系统下 首先,我们需要通过以下命令来检查MySQL服务器是否启动:
ps -ef | grep mysqld
如果MySql已经启动,以上命令将输出mysql进程列表, 如果mysql未启动,你可以使用以下命令来启动mysql服务器:
[*]root@host# cd /usr/bin./mysqld_safe &
如果你想关闭目前运行的 MySQL 服务器, 你可以执行以下命令:
[*]root@host# cd /usr/bin
[*]./mysqladmin -u root -p shutdownEnter password: ******
MySQL 用户设置
如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可。
以下为添加用户的实例,用户名为guest,密码为guest123,并授权用户可进行 SELECT, INSERT 和 UPDATE操作权限:
[*]root@host# mysql -u root -p
[*]Enter password:*******
[*]mysql> use mysql;
[*]Database changed
[*]
[*]mysql> INSERT INTO user
[*] (host, user, password,
[*] select_priv, insert_priv, update_priv)
[*] VALUES ('localhost', 'guest',
[*] PASSWORD('guest123'), 'Y', 'Y', 'Y');
[*]Query OK, 1 row affected (0.20 sec)
[*]
[*]mysql> FLUSH PRIVILEGES;
[*]Query OK, 1 row affected (0.01 sec)
[*]
[*]mysql> SELECT host, user, password FROM user WHERE user = 'guest';
[*]+-----------+---------+------------------+
[*]| host | user | password |
[*]+-----------+---------+------------------+
[*]| localhost | guest | 6f8c114b58f2ce9e |
[*]+-----------+---------+------------------+1 row in set (0.00 sec)
在添加用户时,请注意使用MySQL提供的 PASSWORD() 函数来对密码进行加密。 你可以在以上实例看到用户密码加密后为: 6f8c114b58f2ce9e.
注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string。
注意:password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替。
注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。
如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。
你可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 'Y' 即可,用户权限列表如下:
[*]Select_priv
[*]Insert_priv
[*]Update_priv
[*]Delete_priv
[*]Create_priv
[*]Drop_priv
[*]Reload_priv
[*]Shutdown_priv
[*]Process_priv
[*]File_priv
[*]Grant_priv
[*]References_priv
[*]Index_privAlter_priv
另外一种添加用户的方法为通过SQL的 GRANT 命令,以下命令会给指定数据库TUTORIALS添加用户 zara ,密码为 zara123 。
[*]root@host# mysql -u root -p
[*]Enter password:*******
[*]mysql> use mysql;
[*]Database changed
[*]
[*]mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
[*] -> ON TUTORIALS.*
[*] -> TO 'zara'@'localhost' -> IDENTIFIED BY 'zara123';
以上命令会在mysql数据库中的user表创建一条用户信息记录。
注意: MySQL 的SQL语句以分号 ( ; ) 作为结束标识。
/etc/my.cnf 文件配置
一般情况下,你不需要修改该配置文件,该文件默认配置如下:
[*]
[*]datadir=/var/lib/mysql
[*]socket=/var/lib/mysql/mysql.sock
[*]
[*]
[*]user=mysql
[*]basedir=/var/lib
[*]
[*]
[*]err-log=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
在配置文件中,你可以指定不同的错误日志文件存放的目录,一般你不需要改动这些配置。
管理MySQL的命令
以下列出了使用Mysql数据库过程中常用的命令:
[*]USE 数据库名 :
选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。
[*]mysql> use Runoob;
[*]Database changed
SHOW DATABASES:
列出 MySQL 数据库管理系统的数据库列表。
[*]mysql> SHOW DATABASES;
[*]+--------------------+
[*]| Database |
[*]+--------------------+
[*]| information_schema |
[*]| RUNOOB |
[*]| cdcol |
[*]| mysql |
[*]| onethink |
[*]| performance_schema |
[*]| phpmyadmin |
[*]| test |
[*]| wecenter |
[*]| wordpress |
[*]+--------------------+10 rows in set (0.02 sec)
SHOW TABLES:
显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
```
mysql> use RUNOOB;
Database changed
mysql> SHOW TABLES;
+------------------+ | Tables_in_runoob | +------------------+ | employee_tbl | | runoob_tbl | | tcount_tbl | +------------------+ 3 rows in set (0.00 sec)
[*]- SHOW COLUMNS FROM 数据表:显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
mysql> SHOW COLUMNS FROM runoob_tbl; +-----------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+---------+-------+ | runoob_id | int(11) | NO | PRI | NULL | | | runoob_title | varchar(255) | YES| | NULL | | | runoob_author | varchar(255) | YES| | NULL | | | submission_date | date | YES| | NULL | | +-----------------+--------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
[*]- SHOW INDEX FROM 数据表:显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
mysql> SHOW INDEX FROM runoob_tbl; +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | runoob_tbl | 0 | PRIMARY| 1 | runoob_id | A | 2 | NULL | NULL | | BTREE | | | +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 1 row in set (0.00 sec)
[*]- SHOW TABLE STATUS \G:该命令将输出Mysql数据库管理系统的性能及统计信息。
mysql> SHOW TABLE STATUSFROM RUNOOB; # 显示数据库 RUNOOB 中所有表的信息
mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'; # 表名以runoob开头的表的信息 mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'\G; # 加上 \G,查询结果按列打印
[*]
[*]# MySQL PHP 语法
[*]MySQL 可应用于多种语言,包括 PERL, C, C++, JAVA 和 PHP,在这些语言中,MySQL 在 PHP 的 web 开发中是应用最广泛。
[*]
[*]在本教程中我们大部分实例都采用了 PHP 语言。如果你想了解 MySQL 在 PHP 中的应用,可以访问我们的 PHP 中使用 MySQL 介绍。
[*]
[*]PHP 提供了多种方式来访问和操作 MySQL 数据库记录。:
[*]
[*]PHP MySQL 函数格式如下:
[*]`
[*]mysqli_function(value,value,...);`以上格式中 function部分描述了mysql函数的功能,如
mysqli_connect($connect); mysqli_query($connect,"SQL 语句"); mysqli_fetch_array() mysqli_close()
以下实例展示了PHP调用mysql函数的语法:
<?php
$retval = mysqli_function(value, );
if( !$retval )
{
die ( "相关错误信息" );
}
// 其他 MySQL 或 PHP 语句
?>
[*]/---当前你大约读了10000字了,请注意休息一下---/
[*]
[*]# MySQL 连接
[*]### 使用mysql二进制方式连接
[*]您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。
[*]
[*]### 实例以下是从命令行中连接mysql服务器的简单实例:
# mysql -u root -p Enter password:**
[*]在登录成功后会出现 mysql> 命令提示窗口,你可以在上面执行任何 SQL 语句。
[*]以上命令执行后,登录成功输出结果如下:
Welcome to the MySQL monitor.Commands end with ; or \g. Your MySQL connection id is 2854760 to server version: 5.0.9
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
[*]在以上实例中,我们使用了root用户登录到mysql服务器,当然你也可以使用其他mysql用户登录。
[*]
[*]如果用户权限足够,任何用户都可以在mysql的命令提示窗口中进行SQL操作。
[*]退出 mysql> 命令提示窗口可以使用 exit 命令,如下所示:
mysql> exit Bye
[*]使用 PHP 脚本连接 MySQL
[*]PHP 提供了 mysqli_connect() 函数来连接数据库。
[*]
[*]该函数有 6 个参数,在成功链接到 MySQL 后返回连接标识,失败返回 FALSE 。
[*]语法
mysqli_connect(host, username, password, dbname,port, socket);
[*]参数说明:
[*]host 可选。规定主机名或 IP 地址。
[*]username 可选。规定 MySQL 用户名。
[*]password 可选。规定 MySQL 密码。
[*]dbname 可选。规定默认使用的数据库。
[*]port 可选。规定尝试连接到 MySQL 服务器的端口号。
[*]socket 可选。规定 socket 或要使用的已命名 pipe。
[*]
[*]你可以使用 PHP 的 mysqli_close() 函数来断开与 MySQL 数据库的链接。
[*]
[*]该函数只有一个参数为 mysqli_connect() 函数创建连接成功后返回的 MySQL 连接标识符。
[*]### 语法
bool mysqli_close ( mysqli $link )
[*]本函数关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier,则关闭上一个打开的连接。
[*]
[*]提示:通常不需要使用 mysqli_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。
[*]
[*]### 实例你可以尝试以下实例来连接到你的 MySQL 服务器:
<?php
$dbhost = 'localhost';// mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysqli_error());
}
echo '数据库连接成功!';
mysqli_close($conn);
?>
[*]# MySQL 创建数据库我们可以在登陆 MySQL 服务后,使用 `create` 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
[*]以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB:
# mysql -u root -p
Enter password:**# 登录后进入终端
mysql> create DATABASE RUNOOB;
[*]### 使用 mysqladmin 创建数据库
[*]使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库。
[*]
[*]所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库。
[*]以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB:
# mysqladmin -u root -p create RUNOOB Enter password:**
[*]以上命令执行成功后会创建 MySQL 数据库 RUNOOB。
[*]
[*]### 使用 PHP脚本 创建数据库
[*]PHP 使用 mysqli_query 函数来创建或者删除 MySQL 数据库。
[*]
[*]该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。
[*]
[*]语法
[*]`
[*]mysqli_query(connection,query,resultmode);
[*]
[*]参数
[*]connection 必需。规定要使用的 MySQL 连接。
[*]query 必需,规定查询字符串。
[*]resultmode
[*]可选。一个常量。可以是下列值中的任意一个:
[*]
[*]MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)
[*]MYSQLI_STORE_RESULT(默认)
[*]### 实例以下实例演示了使用PHP来创建一个数据库:
<?php
$dbhost = 'localhost';// mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接错误: ' . mysqli_error($conn));
}
echo '连接成功<br />';
$sql = 'CREATE DATABASE RUNOOB';
$retval = mysqli_query($conn,$sql );
if(! $retval )
{
die('创建数据库失败: ' . mysqli_error($conn));
}
echo "数据库 RUNOOB 创建成功\n";
mysqli_close($conn);
?>
[*]# MySQL 删除数据库
[*]使用普通用户登陆 MySQL 服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库,所以我们这边使用 root 用户登录,root 用户拥有最高权限。
[*]
[*]在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。
[*]
[*]drop 命令删除数据库
[*]drop 命令格式:
[*]`
[*]drop database <数据库名>;
[*]`
[*]例如删除名为 RUNOOB 的数据库:
[*]`
[*]mysql> drop database RUNOOB;
[*]`
[*]使用 mysqladmin 删除数据库
[*]你也可以使用 mysql mysqladmin 命令在终端来执行删除命令。
[*]以下实例删除数据库 RUNOOB(该数据库在前一章节已创建):
# mysqladmin -u root -p drop RUNOOB Enter password:**
执行以上删除数据库命令后,会出现一个提示框,来确认是否真的删除数据库:
Dropping the database is potentially a very bad thing to do. Any data stored in the database will be destroyed.
Do you really want to drop the 'RUNOOB' database y Database "RUNOOB" dropped
[*]### 使用PHP脚本删除数据库
[*]PHP使用 mysqli_query 函数来创建或者删除 MySQL 数据库。
[*]
[*]该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。
[*]
[*]### 语法
[*]mysqli_query(connection,query,resultmode);
[*]参数描述
[*]connection 必需。规定要使用的 MySQL 连接。
[*]query 必需,规定查询字符串。
[*]resultmode
[*]可选。一个常量。可以是下列值中的任意一个:
[*]
[*]MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)
[*]MYSQLI_STORE_RESULT(默认)
[*]### 实例以下实例演示了使用PHP mysqli_query函数来删除数据库:
<?php
$dbhost = 'localhost';// mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
echo '连接成功<br />';
$sql = 'DROP DATABASE RUNOOB';
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('删除数据库失败: ' . mysqli_error($conn));
}
echo "数据库 RUNOOB 删除成功\n";
mysqli_close($conn);
?>
[*]# MySQL 创建数据表
[*]创建MySQL数据表需要以下信息:
[*]
[*]- 表名
[*]- 表字段名
[*]- 定义每个表字段
[*]
[*]### 语法以下为创建MySQL数据表的SQL通用语法:
CREATE TABLE table_name (column_name column_type); 以下例子中我们将在 RUNOOB 数据库中创建数据表runoob_tbl:
CREATE TABLE IF NOT EXISTS runoob_tbl( runoob_id INT UNSIGNED AUTO_INCREMENT, runoob_title VARCHAR(100) NOT NULL, runoob_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY ( runoob_id ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
[*]### 实例解析:
[*]
[*]如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
[*]AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
[*]PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
[*]ENGINE 设置存储引擎,CHARSET 设置编码。
[*]通过命令提示符创建表
[*]通过 mysql> 命令窗口可以很简单的创建MySQL数据表。你可以使用 SQL 语句 CREATE TABLE 来创建数据表。
[*]
[*]### 实例以下为创建数据表 runoob_tbl 实例:
root@host# mysql -u root -p Enter password:*** mysql> use RUNOOB; Database changed mysql> CREATE TABLE runoob_tbl( -> runoob_id INT NOT NULL AUTO_INCREMENT, -> runoob_title VARCHAR(100) NOT NULL, -> runoob_author VARCHAR(40) NOT NULL, -> submission_date DATE, -> PRIMARY KEY ( runoob_id ) -> )ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.16 sec) mysql>
[*]注意:MySQL命令终止符为分号 `;` 。
[*]
[*]注意:` ->` 是换行符标识,不要复制。
[*]
[*]### 使用PHP脚本创建数据表
[*]你可以使用 PHP 的 mysqli_query() 函数来创建已存在数据库的数据表。
[*]
[*]该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。
[*]
[*]### 语法
[*]mysqli_query(connection,query,resultmode);
[*]参数描述
[*]connection 必需。规定要使用的 MySQL 连接。
[*]query 必需,规定查询字符串。
[*]resultmode
[*]可选。一个常量。可以是下列值中的任意一个:
[*]
[*]MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)
[*]MYSQLI_STORE_RESULT(默认)
[*]###实例以下实例使用了PHP脚本来创建数据表:
<?php
$dbhost = 'localhost';// mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
echo '连接成功<br />';
$sql = "CREATE TABLE runoob_tbl( ".
"runoob_id INT NOT NULL AUTO_INCREMENT, ".
"runoob_title VARCHAR(100) NOT NULL, ".
"runoob_author VARCHAR(40) NOT NULL, ".
"submission_date DATE, ".
"PRIMARY KEY ( runoob_id ))ENGINE=InnoDB DEFAULT CHARSET=utf8; ";
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('数据表创建失败: ' . mysqli_error($conn));
}
echo "数据表创建成功\n";
mysqli_close($conn);
?>
[*]执行成功后,就可以通过命令行查看表结构:
[*]![请添加图片描述](https://img-blog.csdnimg.cn/81dfd1cb22474268b717f457c3c4e277.jpeg)
[*]
[*]# MySQL 删除数据表
[*]MySQL中删除数据表是非常容易操作的,但是你在进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。
[*]
[*]语法
[*]以下为删除MySQL数据表的通用语法:
[*]
[*]DROP TABLE table_name ;
[*]在命令提示窗口中删除数据表
[*]在mysql>命令提示窗口中删除数据表SQL语句为 DROP TABLE :
[*]
[*]### 实例以下实例删除了数据表runoob_tbl:
root@host# mysql -u root -p Enter password:*** mysql> use RUNOOB; Database changed mysql> DROP TABLE runoob_tbl; Query OK, 0 rows affected (0.8 sec) mysql>
[*]### 使用PHP脚本删除数据表
[*]PHP使用 mysqli_query 函数来删除 MySQL 数据表。
[*]
[*]该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。
[*]
[*]### 语法
[*]`
[*]mysqli_query(connection,query,resultmode);
[*]`
[*]参数 描述
[*]connection 必需。规定要使用的 MySQL 连接。
[*]query 必需,规定查询字符串。
[*]resultmode
[*]可选。一个常量。可以是下列值中的任意一个:
[*]
[*]MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)
[*]MYSQLI_STORE_RESULT(默认)
[*]### 实例以下实例使用了PHP脚本删除数据表 runoob_tbl:
<?php
$dbhost = 'localhost';// mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
echo '连接成功<br />';
$sql = "DROP TABLE runoob_tbl";
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('数据表删除失败: ' . mysqli_error($conn));
}
echo "数据表删除成功\n";
mysqli_close($conn);
?>
执行成功后,我们使用以下命令,就看不到 runoob_tbl 表了:
mysql> show tables; Empty set (0.01 sec)
```
结语
MYSQL基础教程已结束。 下一步请移步MYSQL高级教程。 <strike>其实我自己都没全会</strike>
页:
[1]