学习笔记12(选做)
本章讨论了 MySQL关系数据库系统;介绍了 MySQ L并指出了它的重要性;展示了如 何在Linux机器上安装和运行MySQL ;演示了如何使用MySQL在命令模式和批处理模式 下使用SQL脚本创建和管理数据库;说明了如何将MySQL与C编程相结合;演示了如何 将MySQL与PHP集成,通过动态Web页面创建和管理数据库。
MySQL
MySQL (MySQL2018 )是一个关系数据库系统(Codd 1970 )c在关系数据库中,数据 存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。 关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。关系数据库系统的标准 查询语言是SQL (结构化查询语言),包括MySQLo
MySQL是一个开源数据库管理系统,由服务器和客户机组成。在将客户机连接到服 务器后,用户可向服务器输入SQL命令,以便创建数据库,删除数据库,存储、组织和检 索数据库中的数据。MySQL有广泛的应用。除了提供标准的数据库系统服务外,MySQL 和PHP (PHP 2018)已成为大多数数据管理和在线商务网站的主干网。本章介绍了 MySQLo我们将介绍MySQL的基础知识,包括如何在Linux中安装/配置MySQL,如 何使用MySQL创建和管理简单数据库,以及如何在C语言和PHP编程环境中与MySQL 交互。
安装 MySQL
对于Ubuntu 16.04及以后版本,通过以下操作安装MySQL:
sudo apt-get install mysql-server
mysql-server包包括一个MySQL服务器和一个客户机。在安装MySQL时,它会询问根用 户密码。用户可以使用与Ubuntu相同的登录密码。安装MySQL后,可通过运行脚本对其 进行配置以获得更好的安全性:
mysqlsecureinstallation
要得到简单和标准的安全设置,读者可以按Y,然后按ENTER,以接受所有问题的默认值。
Slackware Linux预装了 MySQL,但仍然需要配置。否则,Slackware会在MySQL数 据库启动时显示一条错误消息。在Slackware 14.0或更早版本中,可通过以下步骤配置 MySQLo
(I)设置my.cnf : MySQL在启动时加载一个名为my.cnf的配置文件。该文件要在首
次设置MySQL时创建。在/etc目录中,有几个示例my.cnf文件,文件名分别是my-small. cnf. my-large.cnf等。选择所需的版本来创建my.cnf文件,如
cp /etc/my-small.cnf /etc/my.cnf
(2)安装所需数据库:MySQ L需要一个所需数据库集,用于用户识别等。要安装它们, 可使用mysql用户作为超级用户,并使用以下命令安装所需的初始数据库。
mysql_install_db
(3 )设置所需的系统权限:该步骤确保mysql用户拥有mysql系统的所有权。
chown -R inysql.mysql /var/lib/mysql
(4 )通过以下操作使Zetc/rc.d/rc.mysqld可执行:
chmod 7S5 /etc/rc.d/rc.mysqld
这将在后续系统引导上自动启动MySQL守护进程mysqldo
Slackware 14.2 使用 MariaDB 代替 MySQL。除了未绑定到 Oracle 之外,MariaDB 与 My- SQL数据库基本相同。事实上,它仍然使用mysqld作为它的守护进程名。在Slackware 14.2中,MySQL已经有一个默认.cnf文件,所以不再需要第1步。按照上面列出的第2 步到第4步配置MySQL。配置完成后,通过以下操作手动启动MySQL守护进程mysqld:
/etc/rc.d/rc.mysqld -start
使用 MySQL
假设MySQL服务器已经设置好并在Ubuntu或Slackware Linux机器上运行。MySQL 服务器可以设置为支持不同的用户。为简单起见,我们将只假定根用户。为了使用MySQL, 用户必须运行一个MySQL客户机来连接到服务器。MySQL支持来自远程IP主机的客户机 连接。为了简单起见.我们将在同一台机器(即默认本地主机)上运行服务器和客户机。下 面几节介绍如何使用MySQL管理数据库。
连接到MySQL服务器
使用MySQL的第一步是运行MySQL客户机程序。从X-window终端输入MySQL客 户机命令mysql,它连接到同一台计算机上默认本地主机上的MySQL服务器。
mysq:! -u root -p # specify the root user with password
Enter password: # enter the MySQL root user password
mysql > # mysql prompt
・所有的MySQL命令行末尾必须是分号。对于长命令,可在单独行中输入命令短语 (按下ENTER键)。MySQL将会通过-> 符号继续提示更多的输入,直到它看到一个 结束分号。
• MySQL命令行不区分大小写。虽然不是强制要求,但为了清楚和更容易识别,通常 使用大写编写MySQL命令,使用小写编写数据库、表、用户名或文本。
显示数据库
SHOW DATABASES
命令可显示MySQL中的当前数据库。
新建数据库
如果数据库dbname还不存在,那么CREATE DATABASE dbname命令将创建一个名为 dbname的新数据库。如果数据库已经存在,则可以使用可选的IF NOT EXISTS子句对该命 令进行限定,以避免出现错误消息。
mysql> CREATE DATABASE testdb Query OK; 1 row affected (0.02 sec) # mysql response
创建新数据库后,输入SHOW DATABASES以査看结果。
mysql> SHOW DATABASES; + + I Database + + I information_schema | I mysql | I per formance_schema | I test I I testdb I + + 5 rows in set (0.00 sec)
14.3.4删除数据库
DROP DATABASE dbname
会删除已存在的命名数据库。该命令可以用一个可选的IF EXISTS子句限定。注意,DROP操作是不可逆的。一旦数据库被删除,就无法撤销或恢复。 因此,须谨慎使用。
mysql> DROP DATABASE testdb; Query OK; one row affected (0.04 sec) mysql> SHOW DATABASES; + + I Database I info rma t i on_s chema | I mysql I I performance_schema | I test I + + 4 rows in set (0.01 sec)
选择数据库
假设MySQL已经有几个数据库。为了操作特定的数据库,用户必须通过USE dbname 命令选择一个数据库。
修改表
ALTER TABLE
命令用于添加、删除或修改当前表中的列。它还用于添加和删除当前表 中的各种约束条件。
修改表名
如需修改表名,可使用以下命令:
ALTER TABLE table_name RENAME TO new_name;
要在表中添加列,可使用以下命令:
ALTER TABLE table_name ADD column_name datatype;
删除行
可使用以下命令删除列:
ALTER TABLE table_name DROP column_name datatype;
更改/修改行
可使用以下命令修改表中某列的数据类型:
ALTER TABLE table_name ALTER COLUMN column_name datatype;
MySQL可以与多种编程语言配合使用,如C语言、Java和Python等。本节介绍如何
进行C语言MySQL编程。C语言程序与MySQL之间的接口由mysqlclient库中的一系列 MySQL C API 函数(C API 2018a, b)支持。
使用C语言构建MySQL客户机程序
思考以下C程序,它可以打印libmysqlclient库版本。
// client.c file #include <stdio.h> #include <my_global.h> #include <mysql.h> int maln(int argc, char *argc[]) printf("MySQL client version is : %s\n", mysql_get_client_info());
若要编译程序,可输入
gcc client.c -I/usr/include/mysql/ -Imysqlclient
注意,-I选项将包含文件路径指定为/usr/include/mysql, -1选项指定mysqlclient库。 然后,运行a.out。它会打印
MySQL client version is : version_nurober, e.g. 5.5.53
实践内容
登录数据库
显示所有数据库
问题与解决
问题:mysql数据库常用语句有哪些
解决:通过查找网上资料归纳出以下几条重要的mysql语句:
1.show databases; 查看所有的数据库
2.create database test; 创建一个叫test的数据库
3.drop database test;删除一个叫test的数据库
5.show tables; 在选中的数据库之中查看所有的表
4.use test;选中库 ,在建表之前必须要选择数据库
8.drop table 表名; 删除表
6.create table 表名 (字段1 类型, 字段2 类型);
7.desc 表名;查看所在的表的字段
10.show create table 表名; 查看创建表的详细信息
9.show create databases 库名;查看创建库的详细信息