mysql数据库基本操作
[aaa@qq.com ~]# systemctl start mysqld
[aaa@qq.com ~]# mysql -u root -p123.com
修改密码的话
[aaa@qq.com ~]# mysql -u root -p123.com password 123456 密码从 123.com 改为123456
mysql> show databases;
显示所有数据库
下方为 mysql5.5 自带的四个库
1、mysql默认安装的4个库
information_schema: 保存关于mysql服务器所维护的所有的其他数据库的信息,例如:数据库库名、数据库中的表名
mysql :记录数据库用户、权限、关键字等,mysql自己需要使用的控制和管理信息;
performance_schema: 5.5版本新增的一个库,用于收集服务器性能参数,且该库中所有的表的存储引擎均为performance_schema
test:测试库,所有用户在test库里都拥有root权限(一般不会存储有用的信息在test库里)
2、创建数据库
2.1、创建数据库是在系统磁盘上划分一块区域用于数据的存储和管理,如果管理员在设置权限的时候,为用户创建了数据库则可以直接使用,否则需要自己创建数据库。
创建数据库的语法:CREATE DATABASE database_name ; (每条命令分号结尾)
“database_name”:要创建的数据库的名称,该名称不能与已经存在的数据库重名 一般小写
mysql> CREATE DATABASE test_db; 创建库 名称为 test_db
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| test_db |
+--------------------+
2.2、如何移动到已经创建的数据库里面:USE database_name;
2.3、删除数据库:
删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一起被删除,删除数据库语句和创建相似。
语法:DROP DATABASE database_name;
注意:如果数据库不存在 删除会报错
mysql> USE test_db;
Database changed
mysql> DROP DATABASE test_db;
Query OK, 0 rows affected (0.03 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.01 sec)
你进入database_name时 也可以使用删除数据库 将database_name 删除
3、存储引擎:
3.1、什么是数据库的存储引擎?
数据库的存储引擎是数据库的底层软件组件,数据库管理系统(DBMS)就是依赖存储引擎来对数据表进行创建、查询、更新、和删除操作的。
不同的存储引擎提供了不同的存储机制、索引技巧、锁定水平等功能。现在许多不同的数据库管理系统都支持不同存储引擎。
MySQL的核心j就是存储引擎。
3.2、MySQL的存储引擎:
MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中,不需要所有的表都是用一种引擎,针对具体的需求可以对每一个表使用不同的存储引擎。
MySQL-5.5版本支持的引擎有:InnoDB 、MyISAM 、memory、CSV等引擎。
查看引擎的命令:SHOW ENGINES\G
mysql> SHOW ENGINES\G
*************************** 1. row ***************************
Engine: MyISAM 引擎
Support: YES
Comment: MyISAM storage engine 描述
Transactions: NO 是否支持事务
XA: NO
Savepoints: NO
*************************** 2. row ***************************
Engine: InnoDB
Support: DEFAULT default 默认 表示InnoDB是默认存储引擎
Comment: Supports transactions, row-level locking, and foreign keys 描述:支持事务 行级别锁定 支持外键
Transactions: YES
XA: YES
Savepoints: YES
*************************** 3. row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 4. row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
*************************** 5. row ***************************
Engine: CSV
Support: YES
Comment: CSV storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 6. row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
6 rows in set (0.00 sec)
Engine: PERFORMANCE_SCHEMA
引擎名称
Support: YES
MySQL 是否支持这个引擎
Comment: Performance Schema
MySQL对他的评价
Transactions: NO
是否支持事务
XA: NO
是否支持事务的分布式
Savepoints: NO
事务的保存点
☆☆1、MyISAM引擎的特点:
(1)MyISAM 引擎读取速度较快,占用资源相对较少,不支持事务,不支持外键约束,但支持全文索引;
(2)读写相互阻塞,也会是说读数据的时候不能写数据,写的时候不能读数据;
(3)MyISAM引擎只能缓存索引,不能缓存数据;
(4)MySQL-5.5之前的默认存储引擎;
使用场景:
(1)不需要事务支持的业务,例如银行转账就不适合用MyISAM引擎;
(2)适用于读数据较多的业务,不适用于读写频繁的业务;
(3)并发相对较低的(纯读或者纯写的高并发也可以),数据修改相对较少的业务;
(4)硬件资源比较差的机器可以考虑使用MyISAM引擎
★★2、InnoDB引擎的特点:
(1)事务类数据表的首选引擎,支持事务安全表,支持行级别锁定和外键,从MySQL-5.5版本开始的默认引擎;
(2)具有提交、回滚和崩溃恢复能力的事务安全存储引擎,能处理巨大数据量,性能及效率高;
(3)具有非常高效的缓存特性,既能缓存索引,也能缓存数据,对硬件要求比较高;
(4)使用InnoDB时,将在MySQL数据目录 创建一个名为ibdata1的10M大小的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的5M 大小的日志文件
mysql> SHOW VARIABLES LIKE "datadir";
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| datadir | /usr/local/mysql/data/ |
+---------------+------------------------+
1 row in set (0.00 sec)
[aaa@qq.com ~]# ls /usr/local/mysql/data/
ibdata1 ib_logfile1 localhost.localdomain.pid mysql-bin.000001 mysql-bin.000003 mysql-bin.000005 performance_schema
ib_logfile0 localhost.localdomain.err mysql mysql-bin.000002 mysql-bin.000004 mysql-bin.index test
InnoDB的使用场景:
(1)需要事务支持的业务、高并发的业务;
(2)数据更新较为频繁的业务:比如:BBS、SNS、微博等;
(3)数据一致性要求较高的业务,比如:充值转账、银行卡转账等
3、memory存储引擎的特点:
(1)memory存储引擎将表的数据存储到内存中,为查询和引用其他表数据提供快速访问;
(2)memory存储引擎执行hash和betree索引,不支持BLOB和TEXT列,支持AUTO_INCREMENT列和对可包含NULL值的列的索引;
(3)当不再需要memory表的内容时,应该执行DELETE FROM或TRUNCATE TABLE,或者删除整个表。
DELETE FROM table_name;清空表数据 不清空表空间
TRUNCATE TABLE;清除表数据,同时清空表空间
4、CSV:将数据保存为CSV格式的文件,可以导入到其他数据库中
CSV引擎的特点:
(1)以CSV格式进行数据存储;
(2)所有列必须都是不能为NULL的;
(3)不支持索引;
(4)可以对数据文件进行编辑
5、ARCHIVE :归档,将数据使用zlib进行压缩,被当作仓库使用,一般对他只进行insert(插入)和select(查询)操作,他特别适合长期保存日志文件;
MRG_MYISAM:相当于MyISAM合并版,将多个MyISAM合并为一个
SHOW GLOBAL VARIABLES LIKE ‘%datadir%’; 查询数据存储路径
4、存储引擎的选择
(1)如果要提供提交、回滚和崩溃恢复能力的事务安全能力,并要求实现并发控制,InnoDB是个很好的选择;
(2)如果数据表主要用来插入或者是查询记录,则MyISAM 引擎能提供较高的处理效率;
(3)如果只是临时存放数据,数据量不大,并且不需要j较高的安全性,可以选择将数据保存在内存中的memory引擎,MySQL使用该引擎作为临时表,存放查询的中间结果;
(4)如果只有insert和select操作,可以选择Archive引擎,支持高并发的插入和查询操作,如:记录日志信息