MySQL 简介
1.简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于Oracle旗下产品
2.特点
⽀持多种操作系统,如Linux、Windows、AIX、FreeBSD、HP-UXMacOS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris等 为多种编程语⾔提供了API,如C、C++、Python、Java、Perl、PHP、Eiffel、Ruby等 ⽀持多线程,充分利⽤CPU资源 优化的SQL查询算法,有效地提⾼查询速度 提供多语⾔⽀持,常⻅的编码如GB2312、BIG5、UTF8 提供TCP/IP、ODBC和JDBC等多种数据库连接途 提供⽤于管理、检查、优化数据库操作的管理⼯具 ⼤型的数据库。可以处理拥有上千万条记录的⼤型数据库 ⽀持多种存储引擎 MySQL 软件采⽤了双授权政策,它分为社区版和商业版,由于其体积⼩、速度快、总体拥有成本低,尤其是开放源码这⼀特点,⼀般中⼩型⽹站的开发都选择MySQL作为⽹站数据库 MySQL使⽤标准的SQL数据语⾔形式 Mysql是可以定制的,采⽤了GPL协议,你可以修改源码来开发⾃⼰的Mysql系统 在线DDL更改功能 复制全局事务标识 复制⽆崩溃从机 复制多线程 还有最重要的一点是:开源 免费 不要钱 使⽤范围⼴,跨平台⽀持性好,提供了多种语⾔的调⽤API
RDBMS 术语
1.在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:
数据库: 数据库是一些关联表的集合。 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。 外键:外键用于关联两个表。 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
MySQL 创建数据库
1.我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
2.以下命令简单的演示了创建数据库的过程,数据名为 book:
[root@host]# mysql -u root -p Enter password:111111 # 登录后进入终端 mysql> create DATABASE book;
MySQL 删除数据库
1.使用普通用户登陆 MySQL 服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库,所以我们这边使用 root 用户登录,root 用户拥有最高权限。
在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。
drop 命令删除数据库
1.drop 命令格式:
drop database <数据库名>;
MySQL 创建数据表
1.创建MySQL数据表需要以下信息:
表名
表字段名
定义每个表字段
语法
1.以下为创建MySQL数据表的SQL通用语法:
CREATE TABLE table_name (column_name column_type);
2.以下例子中我们将在 RUNOOB 数据库中创建数据表runoob_tbl:
CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` DATE, PRIMARY KEY ( `runoob_id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.实例解析:
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。
通过命令提示符创建表
1.通过 mysql> 命令窗口可以很简单的创建MySQL数据表。你可以使用 SQL 语句 CREATE TABLE 来创建数据表。
实例
以下为创建数据表 runoob_tbl 实例:
root@host# mysql -u root -p Enter password:111111 mysql> use RUNOOB; Database changed mysql> CREATE TABLE runoob_tbl( -> runoob_id INT NOT NULL AUTO_INCREMENT, -> runoob_title VARCHAR(100) NOT NULL, -> runoob_author VARCHAR(40) NOT NULL, -> submission_date DATE, -> PRIMARY KEY ( runoob_id ) -> )ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.16 sec) mysql>
MySQL 删除数据表
1.MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。
语法
以下为删除MySQL数据表的通用语法:
DROP TABLE table_name ;
在命令提示窗口中删除数据表
在mysql>命令提示窗口中删除数据表SQL语句为 DROP TABLE :
root@host# mysql -u root -p Enter password:111111 mysql> use RUNOOB; Database changed mysql> DROP TABLE runoob_tbl Query OK, 0 rows affected (0.8 sec) mysql>
MySQL 插入数据
1.MySQL 表中使用 INSERT INTO SQL语句来插入数据。你可以通过 mysql> 命令提示窗口中向数据表中插入数据
通过命令提示窗口插入数据
2.以下我们将使用 SQL INSERT INTO 语句向 MySQL 数据表 runoob_tbl 插入数据
root@host# mysql -u root -p password; Enter password:111111 mysql> use RUNOOB; Database changed mysql> INSERT INTO runoob_tbl -> (runoob_title, runoob_author, submission_date) -> VALUES -> ("学习 python", "教程", NOW()); Query OK, 1 rows affected, 1 warnings (0.01 sec) mysql> INSERT INTO runoob_tbl -> (runoob_title, runoob_author, submission_date) -> VALUES -> ("学习 python", "教程", NOW()); Query OK, 1 rows affected, 1 warnings (0.01 sec) mysql> INSERT INTO runoob_tbl -> (runoob_title, runoob_author, submission_date) -> VALUES -> ("python 教程", "RUNOOB.COM", '2016-05-06'); Query OK, 1 rows affected (0.00 sec) mysql>
MySQL 查询数据
1.MySQL 数据库使用SQL SELECT语句来查询数据。你可以通过 mysql> 命令提示窗口中在数据库中查询数据
通过命令提示符获取数据
2.以下实例我们将通过 SQL SELECT 命令来获取 MySQL 数据表 runoob_tbl 的数据:
读取数据表:
select * from runoob_tbl;