MYSQL数据库,在虚拟主机里,是与PHPMYADMIN无缝集成的,在数据库管理页面,可以直接点击进入,在云服务器上,操作稍微有些不同,PHPMYADMIN快捷方式放在桌面上,需要输入数据库账号才能进入。
在虚拟主机里,MYSQL自带的MYSQLDump,可以实现SQL导入导出,非常适合用于虚拟主机单个站点,数据库只有单个表前缀的,若是虚拟主机安装有多个站点,子站点或目录站,在数据库里有多个表前缀,这种方式就有些力不从心了,SQL导出备份大概率会出错,数据库也将是不完整的。
其实SQL导出的文件格式,并非MYSQL数据库的原生格式,databases目录里的文件才是,使用MyISAM引擎创建的数据库,每张表将会产生3个文件,文件的名字以表名称开始,扩展名就是文件类型:frm文件存储表定义、数据文件的扩展名为.MYD(MYData)、索引文件的扩展名时.MYI(MYIndex),这种备份方式才是最安全的,数据库也是完整的。
MYSQL数据库的全文搜索,是在数据库的全部表里搜索,操作起来多有不便,一个很好的辅助搜索方式,就是导出整个数据库到本地,然后使用文本代码编辑工具打开,比如notepad++,而后就能随心所欲的全文搜索了。
MYSQL支持多种数据库存储引擎,最为常见的只有两种,MyISAM(发音为 “my-z[ei]m”),InnoDB(发音为 “in-no-db”)。InnoDB是事务型数据库的首选引擎,主要用于高性能的大型数据库站点上,占用的数据库空间也是很大的,MyISAM是非事务型数据库,主要用于绝大多数中小站点,占用的数据库空间远远小于InnoDB,虽然InnoDB是默认的MYSQL引擎,但是我们使用更多的却是MyISAM,有时候需要根据业务的特点,在这两个引擎之间进行转换。但是不需要在整个数据库中,使用同一种存储引擎,针对具体的业务要求,可以对每一张表使用不同的存储引擎。
一、MYSQL数据库常用SQL语句命令,在MYSQL数据库里执行通过,MYSQL5.7版本
1、MYSQL查询语句SELECT,这是最为常用的,以下举例说明:
SELECT * FROM students;查询students表中所有记录,所有字段的值都显示出来。
SELECT id,name,age FROM students;查询students表中所有记录,但是只显示id,name,age三个字段的值。
SELECT * from students WHERE sex=‘男’ and age>20;条件查询,查询性别是男,并且年龄大于20岁的学生记录。
2、MYSQL表重命名语句ALTER,以下两种SQL语句都是有效的,第一种SQL命令似乎更加常用一些。
ALTER TABLE old_table_name RENAME TO new_table_name;将旧表( old_table_name),重新命名为新表( new_table_name)
RENAME TABLE old_table_name TO new_table_name;将旧表( old_table_name),重新命名为新表( new_table_name)
3、MYSQL插入语句INSERT,用于向表中插入新的行记录,与DELETE是正好对应的,唯一不同的是,一个是搞建设,一个是搞破坏。
INSERT INTO students(sex,age) VALUES(‘男’,20);向students表中插入新的一行记录,字段sex赋值为男,age赋值为20
4、MYSQL修改语句UPDATE,共有两个常用命令,以下举例说明
UPDATE students SET education =‘大学’ WHERE age>20;students表中年龄大于20的学生记录,字段education全部赋值为“大学”,若是取消WHERE语句,则为所有记录的字段education赋值“大学”
UPDATE students SET education = REPLACE(education,‘高中’,‘大学’) WHERE age>20;在students表中年龄大于20的学生记录,将Education字段里的“高中”二字,全部替换为“大学”二字。
5、MYSQL删除语句DELETE,与查询语句非常类似,但是仅限删除表中的行记录,而且delete后面没有*号,以下举例说明:
DELETE FROM students WHERE sex=‘男’ and age>20;删除students表中性别是男,并且年龄大于20岁的学生记录,如果取消WHERE语句,则会删除表中所有的学生记录。
6、MYSQL存储引擎语句命令
SHOW ENGINES;查看数据库的全部存储引擎
SHOW TABLE STATUS FROM zzjy;查看数据库zzjy里的全部表信息,其中包括每张表的存储引擎,在第一列显示。
SHOW TABLE STATUS FROM zzjy WHERE ENGINE= “InnoDB”;查看数据库zzjy里表引擎是InnoDB的表
ALTER TABLE students ENGINE=myisam;单张表students转换到myISAM,单张表的存储引擎转换,可以触类旁通,转换任意表到任意存储引擎
ALTER TABLE students ENGINE=InnoDB;单张表students转换到InnoDB
二、MYSQL数据库常用批量操作SQL语句命令
1、MYSQL批量删除指定前缀表,复制以下代码在数据库里执行,dede_是表前缀,替换为你自己的前缀,将会生成全部表前缀删除的SQL语句,在选项里,勾选显示完整内容,二次复制这些SQL语句执行即可。
Select CONCAT( ‘drop table ‘, table_name, ‘;’ ) FROM information_schema.tables Where table_name LIKE ‘dede_%’;
2、MYSQL批量替换数据表前缀,复制以下代码在数据库里执行,zzjy是数据库名称,pre_是替换前的,dede_是替换后的,全部替换为你自己的,将会生成全部表前缀替换的SQL语句,在选项里,勾选显示完整内容,二次复制这些SQL语句执行即可。
Select CONCAT( ‘ALTER TABLE ‘, table_name, ’ RENAME TO ‘, replace(table_name,‘pre_’,‘dede_’),’;’) from information_schema.tables where TABLE_SCHEMA = ‘zzjy’ and table_name LIKE ‘pre_%’;
3、数据库的存储引擎批量转换,复制以下语句到SQL里执行,zzjy是数据库名称,MyISAM是要转换到的目标存储引擎,全部替换为你自己的,将会生成全部表引擎修改的SQL语句,在选项里,勾选显示完整内容,二次复制这些SQL语句执行即可。
USE zzjy; SELECT CONCAT( ‘ALTER TABLE ‘, TABLE_NAME, ’ ENGINE=MyISAM; ’ ) AS sql-commands-for-convert-engine FROM information_schema.TABLES AS t WHERE TABLE_SCHEMA = ‘zzjy’AND TABLE_TYPE = ‘BASE TABLE’
请先
!