《Unix/Linux系统编程》第14章学习笔记
本章重点:MySQL关系数据库系统;MySQL;如何在Linux机器上安装和运行MySQL;如何使用MySQL在命令模式和批处理模式下使用SQL脚本创建和管理数据库;如何将MySQL与C编程相结合;如何将MySQL与PHP集成,通过动态Web页面创建和管理数据库。
MySQL简介
MySQL是一个开源的关系数据库管理系统,包含服务器和客户端。用户可以通过客户端连接到服务器,然后使用SQL命令进行数据库的创建、删除以及数据的存储、组织和检索。
安装MySQL
Ubuntu Linux
-
安装MySQL
sudo apt-get install mysql-server
-
配置以获得更好的安全性
mysql_secure_installation
注意:第一次运行时可能需要使用
sudo mysql_secure_installation
来执行。
Slackware Linux
由于实验不采用Slackware Linux,故省略。
设置和启动MySQL
-
设置
my.cnf
cp /etc/my-small.cnf /etc/my.cnf
-
安装所需数据库
mysql_install_db
-
设置系统权限
chown -R mysql.mysql /var/lib/mysql
-
使
/etc/rc.d/rc.mysqld
可执行chmod 755 /etc/rc.d/rc.mysqld
-
手动启动MySQL守护进程
/etc/rc.d/rc.mysqld start
使用MySQL
连接到服务器,通过MySQL客户端命令mysql
:
mysql -u root -p
若第一次运行时报错,使用以下命令修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
连接到服务器后,即可访问MySQL shell。
数据库操作
-
显示数据库
SHOW DATABASES;
-
新建数据库
CREATE DATABASE dbname;
-
删除数据库
DROP DATABASE dbname;
-
选择数据库
USE dbname;
表操作
-
创建表
CREATE TABLE [IF NOT EXISTS] tableName ( columnName columnType columnAttribute, PRIMARY KEY(columnName), FOREIGN KEY (columnName) REFERENCES tableName (columnName) );
-
描述表结构
DESCRIBE tableName;
-
删除表
DROP TABLE tableName;
数据类型
-
数值类型
- INT
- TINYINT
- SMALLINT
- FLOAT
-
字符串类型
- CHAR
- VARCHAR
- TEXT
-
日期和时间类型
- DATE
- TIME
数据操作
-
插入行
INSERT INTO tableName VALUES (value1, value2, ...);
-
删除行
DELETE FROM tableName WHERE condition;
-
更新表
UPDATE tableName SET col1 = value1, col2 = value2, ... WHERE condition;
-
修改表
ALTER TABLE tableName RENAME TO new_name; ALTER TABLE tableName ADD columnName datatype; ALTER TABLE tableName DROP columnName; ALTER TABLE tableName ALTER COLUMN columnName datatype;
关联表
在数据库中,可以通过主键-外键约束条件定义表之间的关系:
- 一对一关系
- 一对多关系
- 多对多关系
- 自引用关系
连接操作
使用主键-外键约束条件创建表之间的关系。
MySQL脚本
MySQL shell可以执行以.sql
为后缀的脚本文件。
C语言MySQL编程
通过mysqlclient库中的MySQL C API函数实现C语言程序与MySQL的接口。
PHP MySQL编程
PHP通常用于Web前端,与MySQL交互,通过动态Web页面进行在线数据存储和检索。
以上为对《Unix/Linux系统编程》第14章内容的学习笔记,包括MySQL的安装、基本操作、表操作、数据类型、数据操作等方面的内容。