文件存储不安全、不便于管理查询、不便于程序访问。
数据库是程序和磁盘之间的软件层,帮助用户进行数据管理。数据库实际上是网络服务,通过客户端访问后台的数据库。
mysql -h 127.0.0.1 -P 3306 -u root -p123456
数据库实际上数据库管理程序, 一般一个应用创建一个数据库,一般一个库中有多个表。
MySQL是关系型数据库,数据存储是按行列存储的。通常把一行称为记录,一列称为属性。
最底层是磁盘硬件,往上是存储引擎,存储引擎是系统文件的封装,帮助我们进行文件操作。其上还有分析器,对SQL语句分析翻译成文件操作。
show engines \G;
#1.
create database db_name;
#2.
create database [if not exists] db_name [create_specification [, create_specification] ...]
create_specification:
[default] character set charset_name # 指定数据库采用的字符集
[default] collate set collation_name # 指定数据库字符集的校验规则
create database if not exists `test1` charset=utf8;
create database if not exists `test1` character set utf8;
#数据的存储规则是`utf8`,数据的校验规则就应是`utf8_general_ci`。
#校验规则表示如何看待数据库中的数据,二者应该对应。
show variables like 'character_set_database';
show variables like 'collation_database';
# 显示数据库
show datbases;
# 显示创建语句
show create database `db_name`;
# 删除数据库
drop database `db_name`;
# 查看连接情况
show processlist;
# 备份数据库
mysqldump -P`port` -u `user` -p `passwd` -B `db_name` > `backup_file_path`
# 还原数据库
mysql> source `backup_file_path`
# 创建表
create table `tb_name` {
field1 datatype, # field表示列名,datatype表示列的类型
field1 datatype,
field1 datatype
} [character set 字符集 collate 校验规则 engine 存储引擎];
# 查看表
desc `tb_name`;
# 添加列
alter table `tb_name` add ( field1 datatype [, field2 datatype ...] )
# 删除列
alter table `tb_name` drop ( field1 datatype [, field2 datatype ...] )
# 修改列
alter table `tb_name` modify ( field1 datatype [, field2 datatype ...] )
# 更改表名称
alter table `tb_name_old` rename to `tb_name_new`;
# 更改列名称
alter table `tb_name` change `field_name_old` `field_name_new` datatype;
# 删除表
drop table `tb_name`;