Linux下操作mysql,包括索引建立备份库表以及基本操作

1、连接数据库

# 格式: mysql -h主机地址 -u用户名 -p用户密码
$ mysql -uroot -p

2、查询所有的库

mysql> show databases; 

3、进入数据库

mysql> use 数据库名;

4、创建数据库以及设置数据库编码

mysql> create database 数据库名 character set utf8;

5、查询数据库创建信息

mysql> show create database 数据库名;

6、删除数据库(慎用)

drop database 数据库名;

7、查询所有的表

mysql> show tables;

8、查询表创建信息

mysql> show create table 表名;

9、MySQL创建表

create table 表名(
 字段名 类型(长度) 约束,
 字段名 类型(长度) 约束
);

例如:
mysql> CREATE TABLE IF NOT EXISTS `test`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `name` VARCHAR(100) NOT NULL,
   `card` VARCHAR(40) NOT NULL,
   `create_time` DATE,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

MySQL支持以下约束:

※  主键约束 :primary key

※  唯一性约束:unique key

※  外键约束:foreign key

※  非空约束:not null

※  默认值约束:default

10、删除表

mysql> drop table 表名;

11、索引相关

1、索引介绍
1.1、索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据。对于索引,会保存在额外的文件中。
1.2、索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可。
2、索引选取
2.1、越小的数据类型通常更好
2.2、简单的数据类型更好:整型数据比起字符,处理开销更小,因为字符串的比较更复杂。
2.3、尽量避免NULL:应该指定列为NOT NULL

1、在MySQL中创建表的时候,可以直接创建索引。基本的语法格式如下:

CREATE TABLE 表名(字段名 数据类型 [完整性约束条件],
                  [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY
                  [索引名](字段名1 [(长度)] [ASC | DESC])
);
UNIQUE:可选。表示索引为唯一性索引。
FULLTEXT;可选。表示索引为全文索引。
SPATIAL:可选。表示索引为空间索引。
INDEX和KEY:用于指定字段为索引,两者选择其中之一就可以了,作用是一样的。
索引名:可选。给创建的索引取一个新名称。
字段名1:指定索引对应的字段的名称,该字段必须是前面定义好的字段。
长度:可选。指索引的长度,必须是字符串类型才可以使用。
ASC:可选。表示升序排列。
DESC:可选。表示降序排列。

2、添加索引
mysql> ALTER TABLE 表名 ADD INDEX index_name ( `column` ) ;

3、删除索引
mysql> DROP INDEX indexName ON 表名; 

12、数据库备份与还原

1、数据库备份
$ mysqldump -uroot -p123456 -P3306 数据库名 > bakfile.sql
2、数据库还原
$ mysql  -uroot -p123456 -P3306 数据库名  < bakfile.sql
或直接运行sql文件:
mysql> source bakfile.sql

13、表备份

13.1、备份成文件
备份MySQL数据库某个(些)表。此例备份table1表和table2表。备份到linux主机的/home下
$ mysqldump -h127.0.0.1 -uroot -p123456 数据库名 table1 table2 > /home/bakfile.sql
13.2、创建新表备份
# 备份表结构
CRETE TABLE 表名B LIKE 表名A;
# 备份表结构和数据
CREATE TABLE 表名B SELECT * FROM 表名A;

14、查询结果输出到指定文件,之后的查询结果不再显示,直接输出到文件,覆盖之前的内容

mysql> pager cat > /home/test.txt;
PAGER set to 'cat >/home/test.txt'
mysql> select * from user;
5 rows in set (0.00 sec)

你可能感兴趣的:(Linux下操作mysql,包括索引建立备份库表以及基本操作)