美文网首页
mysql常见操作

mysql常见操作

作者: 掖莯圷 | 来源:发表于2018-12-18 15:40 被阅读0次

    函数: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%';查看索引的使用情况:

    相关文章

      网友评论

          本文标题:mysql常见操作

          本文链接:https://www.haomeiwen.com/subject/cmxqkqtx.html