《Unix/Linux系统编程》14章学习笔记
本章重点:MySQL关系数据库系统;MySQL;如何在Linux机器上安装和运行MySQL;如何使用MySQL在命令模式和批处理模式下使用SQL脚本创建和管理数据库;如何将MySQL与C编程相结合;如何将MySQL与PHP集成,通过动态Web页面创建和管理数据库。
MySQL简介
MySQL是一个关系数据库系统,是一个开源数据库管理系统,由服务器和客户机组成。在将客户机连接到服务器后,用户可向服务器输入SQL命令,以便创建数据库,删除数据库,存储、组织和检索数据库中的数据。
安装MySQL
Ubuntu Linux
sudo apt-get install mysql-server
mysql_secure_installation
Slackware Linux
-
设置my.cnf
cp /etc/my-small.cnf /etc/my.cnf
-
安装所需数据库
mysql_install_db
-
设置所需的系统权限
chown -R inysql.mysql /var/lib/mysql
-
通过以下操作使Zetc/rc.d/rc.mysqld可执行:
chmod 7S5 /etc/rc.d/rc.mysqld
使用MySQL
-
连接到服务器
从X-window终端输入MySQL客户机命令mysql,它连接到同一台计算机上默认本地主机上的MySQL服务器
连接到服务器后,即可访问MySQL shell
注意:
- 所有的命令行末尾必须是分号
- MySQL命令行不区分大小写
-
显示数据库
SHOW DATABASES
命令可显示MySQL中的当前数据库 -
新建数据库
CREATE DATABASE dbname
创建一个名为dbname的数据库,如果数据库已经存在,则可以使用IF NOT EXISTS子句对命令限定 -
删除数据库
DROP DATABASE dbname
删除已存在的命名数据库,该命令可以用一个可选的IF EXISTS 子句限定 -
选择数据库
USE dbname
命令选择一个数据库
- 创建表
CREATE TABLE table _ name
命令回在当前数据库中创建一个表
- 删除表
DROP TABLE table_ name
命令可删除表
-
数据类型
- INT:整型(4字节),TINYINT:(1字节),SMALLINT:(2字节)
- FLOAT:浮动指针数
- CHAR:固定长度字符串
- VARCHAR:可变长度字符串,不能使用任何空格
- TEXT:可变长度的字符串
- DATE:日期
- TIME:时间
-
插入行
要在表中添加行,可使用INSERT命名,具有语法形式:
INSERT INTO table_name VLAUES(columnValuel,columnValue2,....);
-
删除行
使用DELETE命令从表中删除行
DELETE FROM table_name;
DELETE FROM table_name WHERE condition;
-
更新表
UPDATE命令用于修改表中的现有记录(列)
`UPDATE table_name SET coll = value1, col2 = value2,…… WHERE condition;`
- 修改表
- 修改表名
`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 COLUNN column_name datatype;`
-
关联表
一个真正的数据库可以能包含多个相互关联的表,使用主键-外键约束条件来定义表关系。在两个表之间创建链接,其中一个表的主键与另一个表的外键相关联
- 一对一关系
- 一对多关系
- 多对多关系
- 自引用关系
-
连接操作
-
MySQL数据库关系图
用数据库关系图来描述表之间的关系非常有用,这类关系图通常称为ERD(实体关系图)或EERD(增强/扩展ERD)
-
MySQL脚本
与普通unix/Linux sh一样,MySQL shell也可以接受和执行脚本文件。MySQL脚本文件的后缀是.sql
C语言MySQL编程
C语言程序与MySQL之间的接口由mysqlclient库中的一系列MySQL C API函数支持
PHP MySQL编程
PHP通常用作Web沾点的前端,它与后端数据库引擎交互,通过动态Web页面在线存储和检索数据。
标签:12,name,mysql,数据库,信息安全,笔记,MySQL,table,TABLE From: https://www.cnblogs.com/laijiayi/p/17867406.html