MySQL[1] 是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
存储引擎:
MysqL基本语法:
MySql语法
一 数据库操作
1.创建数据库 :
CREATE DATABASE test1;
删除数据库?
DROP DATABASE test1;
2.查看以存在数据库
show DATABASES;
3.使用数据库:
USE test1;
4.查看表
show TABLES;
5.查看数据库引擎
show ENGINES ;
-- 二 表操作
1.创建表 使用 CREATE TABLE
CREATE TABLE users(
id INT PRIMARY KEY NOT NULL,
name VARCHAR(20) DEFAULT 'saber',
birth DATE ,
CONSTRAINT c_fk FOREIGN KEY (stu_id,stu_name)
REFERENCES test2(stu_id,stu_name)
);
2.删除表
drop TABLE users;
3.查看表结构
DESC users;
4.查看表详细结构语句
SHOW CREATE TABLE users;
-- 修改表
1.修改表名
ALTER TABLE users1 RENAME users;
2.修改字段的类型
ALTER TABLE users MODIFY name CHAR(10) DEFAULT 'saber';
3.修改字段名
ALTER TABLE users CHANGE name u_name VARCHAR(20) DEFAULT 'saber';
4.增加字段
ALTER TABLE users ADD phone VARCHAR(11) NOT NULL;
5.在指定位置增加字段
ALTER TABLE users ADD addr VARCHAR(100) FIRST | AFTER phone;
6.删除字段
ALTER TABLE users DROP addr;
7.修改字段的排列位置
ALTER TABLE users MODIFY phone VARCHAR(11) AFTER u_name | FIRST;
8.更改表的存储引擎/查看表的引擎和编码用 SHOW CREATE TABLE users;
ALTER TABLE users ENGINE = 'MyISAM';
9.删除外键约束
ALTER TABLE users DROP FOREIGN KEY 外键别名
-- 删除表
1.删除没有被关联的普通表
DROP TABLE users;
2.删除被关联的父表
先删除外键约束,在删除表
</pre><h3 id="4-" style="font-family:'Microsoft Yahei'; font-weight:500; line-height:2em; color:rgb(51,51,51); margin:25px 0px 20px; font-size:21px"></h3><h3 id="3-" style="font-family:'Microsoft Yahei'; font-weight:500; line-height:2em; color:rgb(51,51,51); margin:25px 0px 20px; font-size:21px">--导入</h3><p style="margin-top:0px; margin-bottom:10px; font-size:14px; font-family:'Microsoft Yahei'; line-height:2em; color:rgb(51,51,51)">导入操作,可以把一个文件里的数据保存进一张表。导入语句格式为:</p><pre style="overflow:auto; font-family:Menlo,Monaco,Consolas,'Courier New',monospace; font-size:13px; padding:9.5px; margin-top:0px; margin-bottom:10px; line-height:1.42857; word-break:break-all; word-wrap:break-word; color:rgb(51,51,51); border:1px solid rgb(204,204,204); background-color:rgb(245,245,245)"><code class="hljs sql" style="font-family:Menlo,Monaco,Consolas,'Courier New',monospace;font-size:undefined; padding:0.5em; color:rgb(204,204,204); white-space:pre-wrap; word-break:break-all; display:block; overflow-x:auto; background:rgb(45,45,45)"><span class="hljs-operator" style=""><span class="hljs-keyword" style="color:rgb(204,153,204)">LOAD</span> <span class="hljs-keyword" style="color:rgb(204,153,204)">DATA</span> <span class="hljs-keyword" style="color:rgb(204,153,204)">INFILE</span> <span class="hljs-string" style="color:rgb(153,204,153)">'文件路径'</span> <span class="hljs-keyword" style="color:rgb(204,153,204)">INTO</span> <span class="hljs-keyword" style="color:rgb(204,153,204)">TABLE</span> 表名字;</span></code>
--导出
导出与导入是相反的过程,是把数据库某个表中的数据保存到一个文件之中。导出语句基本格式为:
SELECT 列1,列2 INTO OUTFILE '文件路径和文件名' FROM 表名字;
注意:语句中 “文件路径” 之下不能已经有同名文件。
现在我们把整个employee表的数据导出到 /tmp 目录下,导出文件命名为 out.txt 具体语句为:
SELECT * INTO OUTFILE '/tmp/out.txt' FROM employee;
备份
数据库中的数据或许十分重要,出于安全性考虑,在数据库的使用中,应该注意使用备份功能。
备份与导出的区别:导出的文件只是保存数据库中的数据;而备份,则是把数据库的结构,包括数据、约束、索引、视图等全部另存为一个文件。
mysqldump是MySQL用于备份数据库的实用程序。它主要产生一个SQL脚本文件,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。
使用mysqldump备份的语句:
mysqldump -u root 数据库名>备份文件名; #备份整个数据库
mysqldump -u root 数据库名 表名字>备份文件名; #备份整个表
恢复
用备份文件恢复数据库,其实我们早就使用过了。在本次实验的开始,我们使用过这样一条命令:
source /tmp/SQL6/MySQL-06.sql
这就是一条恢复语句,它把MySQL-06.sql文件中保存的mysql_shiyan数据库恢复。
还有另一种方式恢复数据库,但是在这之前我们先使用命令新建一个空的数据库 test:
mysql -u root #因为在上一步已经退出了MySQL,现在需要重新登录
CREATE DATABASE test; #新建一个名为test的数据库
再次 Ctrl+Z 退出MySQL,然后输入语句进行恢复,把刚才备份的 bak.sql 恢复到 test 数据库:
mysql -u root test < bak.sql