shell 环境下MySQL的基本操作指令总结

一、对数据库的基本操作 
show databases;                      //列出数据库
use database_name;               //使用database_name数据库
create database data_name;   //创建名为data_name的数据库
drop database data_name;     //删除一个名为data_name的数据库:
use dbname; status                 //查看数据库dbname的详细信息

alter database db_name CHARACTER SET utf8;  //修改数据库编码

show variables like '%dir%';    // 查看MySQL相关存放目录

二、对表的基本操作
show tables //列出所有表

创建一个名为tab_name的新表
create table tab_name( 
  id int(10) not null auto_increment primary key, 
  name varchar(40), 
  pwd varchar(40) 
) charset=gb2312;

eg: 

CREATE TABLE `test` (

  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

//id自增的时候从7开始(表示前面已经有6行数据了)

eg:

CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1

drop table tab_name   //删除名为tab_name的数据表 
describe tab_name     //显示名为tab_name的表的数据结构 
show columns from tab_name   //同上 
delete from tab_name;    //删除表所有数据,不会重置自增的ID
TRUNCATE TABLE `db_name`.`tab_name`;    //截断表重置自增的id为0
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

 例如:UPDATE `mydb`.`mytable` SET `myname` = 'xst' WHERE `id` = '3';

INSERT INTO 表名称 VALUES (值1, 值2,....)

(1)INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

例如:INSERT INTO `mydb`.`mytable` (`id`,`name`) VALUES ('1','aa');

(2) INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) on duplicate key update field=values(field);    //field是字段名称,如果插入是,主键已经重复,则更新给出字段。

例如:insert into report.user_live (date,pid,osid,level) values('2017-07-26','3','0','2') on duplicate key update level = values(level);   //插入这行数字时,主键是(date,pid,osid)复合主键,并且该主键的数据已经存在且唯一,此时出入多一行数据,则键非主键level字段更新到对应的唯一主键对应的记录中。

SHOW TABLE STATUS WHERE Name = 'table_name';    //查看表的详细信息:

三、修改表结构
ALTER TABLE tab_name ADD PRIMARY KEY (col_name);                      //设置主键
col_name ALTER TABLE tab_name DROP PRIMARY KEY (col_name);   //删除主键
Alter table tab_name add col_name varchar(20);   //新增字段
alter table tab_name drop col_name;                    //删除字段

alter table tab_name modify col_name varchar(40) not null;   //修改字段属性,若加上not null则要求原字段下没有数据  
alter table tab_name rename to new_tab_name;      //修改表名
alter table tab_name change old_col new_col varchar(40);     //修改字段名,必须为当前字段指定数据类型等属性,否则不能修改 
create table new_tab_name like old_tab_name;     //用一个已存在的表来建新表,但不包含旧表的数据

ALTER TABLE `db_name`.`tab_name` ADD INDEX `index_name` (`col_name`);   //新增索引

ALTER TABLE `db_name`.`tab_name` ADD INDEX `index_name` (`id`, `name`);  //新增组合索引

CREATE  TABLE  table1  LIKE  table2;     //创建表table1复制表table2的结果

INSERT  INTO  table1  SELECT  *  FROM  table2;        //往表table1插入表table2的数据

CREATE TABLE newadmin AS ( SELECT username, password FROM admin );      //创建一个表复制另一个表的一些字段

四、用户与用户权限管理

1、赋予用户权限

方法一:先创建用户再赋予权限:

USE `mysql`;

CREATE USER 'backend'@'%' IDENTIFIED BY 'Back123end'; //用户名backend,密码Back123end

FLUSH PRIVILEGES;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/97c6ad077c4660fd7ede2868a336c00f.html