函数:https://blog.csdn.net/sinat_38899493/article/details/78710482
导入导出
导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名,如
./mysqldump -u root -p userinfo > /home/appadmin/data/infobak.sql
创建数据库
CREATE DATABASE IF NOT EXISTS aux_business DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
更新密码
update mysql.user set password=password('ACr8X*2G') where user='root';
创建用户
CREATE USER 'appadm'@'%' IDENTIFIED BY 'sdPlcOjULIefds0RqjYzCi8';
select host,user from mysql.user;
授权
grant all privileges on *.* to root@'%' identified by 'ACr8X*2G';
grant all privileges on *auxmeeting.* to 'aux'@'%'identified by 'aux999' with grant option;
grant select,insert,update,delete on test.* to appadm@"localhost" identified by "123456";
grant alter on test.* to appadmuser@"localhost" identified by "123456";
grant lock tables on appadm.* to appadmuser@'localhost';
grant drop on appadm.* to appadmuser@'localhost';
grant drop on appadm.* to appadmuser@'%';
flush privileges;
show
1. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称。
2. show databases; -- 显示mysql中所有数据库的名称。
3. show columns from table_name from database_name; 或show columns from database_name.table_name; -- 显示表中列名称。
4. show grants for user_name; -- 显示一个用户的权限,显示结果类似于grant 命令。
5. show index from table_name; -- 显示表的索引。
6. show status; -- 显示一些系统特定资源的信息,例如,正在运行的线程数量。
7. show variables; -- 显示系统变量的名称和值。
8. show processlist; -- 显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。
9. show table status; -- 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间。
10. show privileges; -- 显示服务器所支持的不同权限。
11. show create database database_name; -- 显示create database 语句是否能够创建指定的数据库。
12. show create table table_name; -- 显示create database 语句是否能够创建指定的数据库。
13. show engines; -- 显示安装以后可用的存储引擎和默认引擎。
14. show innodb status; -- 显示innoDB存储引擎的状态。
15. show logs; -- 显示BDB存储引擎的日志。
16. show warnings; -- 显示最后一个执行的语句所产生的错误、警告和通知。
17. show errors; -- 只显示最后一个执行语句所产生的错误。
18. show [storage] engines; --显示安装后的可用存储引擎和默认引擎。
创建表
create table person(id int not null auto_increment,
name varchar(8),
birthday datetime,
constraint pk__person primary key(id));
增删改查
INSERT INTO student(id,name,grade) VALUES (1,'zhangshan',98);
INSERT INTO student SET id=4,name='zhaoliu',grade=72;
INSERT INTO student VALUES (5,‘lilei’,99),(6,'hanmeimei',87),(8,'poly',76);
TRUNCATE TABLE student;
UPDATE student SET name=‘caocao’,grade=50 WHERE id=1;
DELETE FROM student WHERE id=7;
1.修改表名
alter table test_a rename to sys_app;
2.修改表注释
alter table sys_application comment '系统信息表';
3、添加字段
ALTER TABLE card_apply ADD (qr_fileid VARCHAR (64) COMMENT '二维码文件id',manager_add_time INT (11) UNSIGNED DEFAULT '0' COMMENT '升级为经理的时间')
4、修改字段
alter table sys_application modify column app_name varchar(20) COMMENT '应用的名称';
4、
增加主键
alter table t_app add aid int(5) not null ,add primary key (aid);
alter table t_app add aid int(5) not null auto_increment ,add primary key (aid);
修改
alter table t_app modify column aid int(5) auto_increment ;
alter table t_app change name app_name varchar(20) not null;
在某个字段后增加字段
alter table `t_app` add column gateway_id int not null default 0 AFTER `aid`; #(在哪个字段后面添加)
调整字段顺序
alter table t_app change gateway_id gateway_id int not null after aid ; #(注意gateway_id出现了2次)
删除字段
alter table t_app drop aid;
索引
1、主键索引 PRIMARY KEY
2、唯一索引 UNIQUE
ALTER TABLE user ADD UNIQUE (name);
ALTER TABLE user ADD UNIQUE (name,age);--创建唯一组合索引
3、普通索引 INDEX
ALTER TABLE user ADD INDEX index_name (name);
4、组合索引 INDEX
ALTER TABLE user ADD INDEX index_name(name, age);
5、全文索引 FULLTEXT
ALTER TABLE user ADD FULLTEXT (remark);
索引设计的原则
适合索引的列是出现在where子句中的列,或者连接子句中指定的列
基数较小的类,索引效果较差,没有必要在此列建立索引
使用短索引,如果对长字符串列进行索引,应该指定一个前缀长度,这样能够节省大量索引空间
不要过度索引。索引需要额外的磁盘空间,并降低写操作的性能。在修改表内容的时候,索引会进行更新甚至重构,索引列越多,这个时间就会越长。所以只保持需要的索引有利于查询即可。
通过SHOW STATUS LIKE 'Handler_read%';查看索引的使用情况:
网友评论