第十四章学习心得
知识点归纳总结:
本章讨论了MySQL关系数据库系统;介绍了MySQL并指出了它的重要性;
MySQL简介
1、Mysql简介
MySQL(MySQL2018)是一个关系数据库系统(Codd1970)。在关系数据库中,数据
存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。
关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。关系数据库系统的标准
查询语言是SQL(结构化查询语言)包括MySOL。
MySQL是一个开源数据库管理系统,由服务器和客户机组成。在将客户机连接到服务器后,用户可向服务器输入SOL命令,以便创建数据库,删除数据库,存储、组织和检索数据库中的数据。MySQL有广泛的应用。除了提供标准的数据库系统服务外,MySQL和PHP(PHP2018)已成为大多数数据管理和在线商务网站的主干网。本章介绍了 MySQL。我们将介绍MySQL的基础知识,包括如何在Linux中安装/配置MySOL,如何使用MySQL创建和管理简单数据库,以及如何在C语言和PHP编程环境中与MySOL交互。
安装与使用MySQL
Ubuntu Linux 可通过以下命令安装
sudo apt-get install mysql-server
mysql_secure_installation
Slackware Linux在Slackware 14.0或更早版本中,可通过以下步骤配置MySQL:
1.设置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.安装所需数据库:MySQL需要一个所需数据库集,用于用户识别等。要安装它们, 可使用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守护进程mysqld。
数据库操作
连接MYSQL服务器:
mysql -u root -p
Enter password:
mysql>
显示数据库:SHOW DATABASES命令可显示MySQL中的当前数据库
新建数据库:CREATE DATABASE dbname 创建一个名为dbname的数据库,如果数据库已经存在,则可以使用IF NOT EXISTS子句对命令限定。
删除数据库:DROP DATABASE dbname 删除已存在的命名数据库,该命令可以用一个可选的IF EXISTS 子句限定。
选择数据库:USE dbname命令选择一个数据库
创建表:CREATE TABLE table_name 命令回在当前数据库中创建一个表;DESCRIBE 命令显示表格式和列属性。
删除表:DROP TABLE table_name 命令删除表
Mysql中的数据类型
数值类型:
INT:整数(4字节),TINYINT:(1字节)S,MALLINT:(2字节)等。
FLOAT:浮动指针数。
字符串类型:
CHAR(size):固定长度字符串,长度为1~255字符。
VARCHAR(size):可变长度字符串,但不能使用任何空格。
TEXT:可变长度的字符串。
日期和时间类型:
DATE:日期格式为YYYYMM-DD。
TIME:以HHMMSS格式保存时间.
Mysql中的数据操作
插入行:
要在表中添加行,可使用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命令用于添加、删除或修改当前表中的列。它还用于添加和删除当前表中的各种约束条件。
修改表名
如需修改表名,可使用以下命令:
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中,可使用连接操作在多个表中检索数据。连接操作有4种不同的类型。
(INNER)JOIN tablel,table2:检索两个表中共有的项。
LEFT JOIN tablel,table2:检索表1中的项以及两个表中共有的项。
RIGHT JOIN tablel,table2:检索表2中的项以及两个表中共有的项。
OUTER JOIN tabell, table2:检索两个表中非共有以及没有用的项。
对于正则集运算,MySQL中的连接操作可以解释如下。+表示两个集合的并集,^表示两个集合的交集。则有
(INNER) JOIN t1, t2 = t1 ^ t2
LEFT JOIN t1, t2 m t1 + (t1 ^ t2)
RIGHT JOIN t1, t2 = t2 +(t1 ^ t2)
OUTER JOIN t1, t2 = t1 + t2;
学习收获
1)数据库操作:
1、查看数据库:
>SHOW DATABASES;
2、创建数据库:
>CREATE DATABASE db_name; //db_name为数据库名
3、使用数据库:
>USE db_name;
4、删除数据库:
>DROP DATABASE db_name;
2)创建表:
1、创建表:
>CREATE TABLE table_name(
>id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, //id值,无符号、非空、递增——唯一性,可做主键。
>name VARCHAR(60) NOT NULL
>score TINYINT UNSIGNED NOT NULL DEFAULT 0, //设置默认列值
>PRIMARY KEY(id)
>)ENGINE=InnoDB //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索
>DEFAULT charset=utf8; //设置默认的编码,防止数据库中文乱码
如果有条件的创建数据表还可以使用 >CREATE TABLE IF NOT EXISTS tb_name(........
2、复制表:
>CREATE TABLE tb_name2 SELECT * FROM tb_name;
或者部分复制:
>CREATE TABLE tb_name2 SELECT id,name FROM tb_name;
3、创建临时表:
>CREATE TEMPORARY TABLE tb_name(这里和创建普通表一样);
4、查看数据库中可用的表:
>SHOW TABLES;
5、查看表的结构:
>DESCRIBE tb_name;
也可以使用:
>SHOW COLUMNS in tb_name; //from也可以
6、删除表:
>DROP [ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......];
实例:
>DROP TABLE IF EXISTS tb_name;
7、表重命名:
>RENAME TABLE name_old TO name_new;
还可以使用:
>ALTER TABLE name_old RENAME name_new;
实践截图
Linux登录mysql