前言
MySQL
是一个关系型数据库管理系统,在web
应用方面,MySQL
是最好的关系型数据库管理系统应用软件之一。
MySQL
是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样增加了速度和提高了灵活性。
MySQL
所使用的sql
语言是用于访问数据库的最常用标准化语言,由于其体积小,速度快,总体拥有成本低,开放源码,一般中小型网站的开发选择MySQL
作为网站数据库。
应用环境
和其他的大型数据库例如Oracle
,DB2
,SQL Server
等相比,MySQL
也有自己的不足,但是这也没有减少它受欢迎的程度,对于一般的个人使用者和中小型企业来说,MySQL
提供的功能是绰绰有余。
Linux
作为操作系统,Apache
或Nginx
作为Web
服务器,MySQL
作为数据库,PHP/Perl/Python
作为服务器端脚本解释器。
应用架构
单点(Single)
,适合小规模应用
复制(Replication)
,适合中小规模应用
集群(Cluster)
,适合大规模应用
索引功能
从理论上来说,完全可以为数据表里的每个字段分别建一个索引,但MySQL
把同一个数据表里的索引总数限制为16
个。
-
InnoDB
数据表的索引 -
限制
索引类别
-
普通索引,普通索引(由关键字
KEY
或INDEX
定义的索引)的任务是加快对数据的访问速度。 -
索引,普通索引允许被索引的数据列包含重复的值。
-
主索引,必须为主键字段创建一个索引,这个索引就是所谓的“主索引”。
-
外键索引,如果为某个外键字段定义了一个外键约束条件,
MySQL
就会定义一个内部索引来帮助自己以最有效率的方式去管理和使用外键约束条件。 -
复合索引,索引可以覆盖多个数据列,如像
INDEX
(columnA, columnB
) 索引。这种索引的特点是MySQL
可以有选择地使用一个这样的索引。
初学基础
连接 MySQL,格式:
mysql -h 主机地址 -u 用户名 -p 用户密码
连接到本机上的MySQL
,首先打开DOS
窗口,进入目录mysqlbin
,输入mysql -uroot -p
,回车后提示你输密码。
连接远程主机上的MySQL
,远程主机的IP
,和用户名 root,密码。
命令:mysql -h远程主机ip -uroot -p密码
退出mysql
命名:exit
回车,但是注意,想要成功连接到远程主机,需要在远程主机打开mysql
远程访问权限。
mysql 和 sqlite 的区别
mysql
是web
世界中使用最广泛的数据库服务器。mysql
是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite
。
SQLite
的特点是轻量级,可嵌入,但不能承受高并发访问,适合桌面和移动应用。
把数据库默认的编码全部改为
UTF-8
MySQL 的配置文件默认存放在/etc/my.cnf
或者/etc/mysql/my.cnf
:
代码如下:
[client]
default-character-set = utf8
[mysqld]
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8generalci
重启mysql
后,可以通过mysql
的客户端命令行检查编码。
$ mysql -u root -p
复习必备
MySQL 数据库管理方法,掌握数据库的初始化,创建,查看,和删除方法。学习数据表管理方法,掌握数据表的创建,查看,修改和删除方法。
用户账户的管理,用户的创建,与删除,用户权限的授予与回收,用户密码的设置与更改方法。
目录复习
为了方便查看学习,我做了思维导图,如下图所示:
mysql 数据库管理
数据库进行初始化
初始化数据库,在安装好mysql
数据库后,不要直接启动,需要对数据库进行初始化。
初始化的过程
-
创建元数据表
-
数据目录
-
创建 root 用户
mysql 提供数据库命令:
mysql --initialize
进行初始化
-
按
windows+r
组合键,可以打开“运行”窗口,在该窗口输入cmd
按enter
键,打开命令行。 -
使用
cd
命令进入mysql
目录。 -
执行
bin\mysqld --initialize
命令,进行初始化。
初始化完成后,可以启动数据库,启动数据库有两种方式。
-
利用
windows
服务器管理界面启动; -
利用
mysql
命令启动。
利用mysql
命令方式启动数据库:
-
按
windows+r
组合键,打开窗口,进入命令行; -
使用
cd
命令进入mysql
目录; -
输入
bin\mysqld
,启动mysql
服务。
启动数据库
使用bin\mysql -u root -p
命令进入mysql
操作环境中。
服务图片,开启数据库:
创建数据库
我们来创建一个数据库,create database
语句。
语法格式如下:
create database [db_name];
创建一个名为web
的数据库:
create database web;
在数据库创建好后,mysql
的data
目录下会自动生成一个名为web
的目录,该数据库的数据会存储于该目录下。
在mysql
中可以支持运行多个数据库,所以我们可以创建多个数据库。
查看数据库
数据库创建好后,使用show
语句查看当前mysql
中有哪些数据库。
show databases;
删除数据库
使用drop
语句删除数据库,语法格式如下:
drop database db_name;
删除创建的web
数据库,命令如下:
drop database web
删除数据库是一个不可逆的操作。
mysql 数据表管理
创建数据表使用create table
语句,语法格式如下。
user 数据库名;
create table 表名 (字段名 类型(长度),字段名 类型(长度));
创建表语句:
-
明确数据表的结构;
-
名字段的名称;
-
类型;
-
长度等。
查看数据表
查看表分:
-
查看数据库中包含哪些表
-
查看某个表的具体结构
使用的语句有show
语句和describe
语句。
-
使用
show
语句可以查看数据库中有哪些表。
show tables
-
使用
describe
语句可以查看某个表的具体结构,查看组成表的各字段的信息。
describe 库名.表名;
使用
describe
语句可以查看表的各个字段名称,类型,长度,是否非空,是否有主键,默认值以及备注等信息。
修改数据表
可以修改表名,字段名,字段类型等表结构,可使用alter
语句来实现修改操作。
修改表名
修改表名的语句:
alter table 旧表名 rename 新表名;
修改数据表student
改变为student1
。
alter table student rename student1
修改字段名
修改字段名的语法格式如下:
alter table 表名 change 旧属性名 新属性名 新数据类型;
alter table student1 change name s_anme varchar(50);
修改字段类型
修改字段类型的语法格式:
alter table 表名 modify 属性名 数据类型;
alter table student1 modify name varchar(32);
增加字段
增加字段的语法格式如下:
alter table 表名 add 属性名 数据类型;
alter table student1 add sex char(1);
删除字段
删除字段语句:
alter table 表名 drop 属性名;
示例:
alter table student1 drop sex;
删除数据表
使用drop
语句删除数据库中的表。
use 数据库名;
drop 表名;
或者是
drop table 数据库名.表名;
删除某个数据中的某个表:
use test;
drop table student;
或者是
drop table test.student;
mysql 用户管理
mysql
提供了一套完善的数据库用户以及权限管理系统。