0
点赞
收藏
分享

微信扫一扫

MySQL的常用操作命令整理

一. MySQL服务操作:


启动MySQL服务:


net start mysql


停止MySQL服务:


net stop mysql


进入MySQL数据库:


mysql -h 主机地址 -u用户名 -p用户密码

MySQL的常用操作命令整理_mysql

退出MySQL操作:


quit;


刷新数据库:


flush privileges;


创建数据库用户:


一次可以创建多个数据库用户,如:


CREATE USER 用户1 identified BY "密码1" , 用户2 IDENTIFIED BY "密码2";


或者:


grant select on 数据库.* to 用户名@登录主机 identified by "密码";


更改MySQL用户密码:


mysqladmin -u用户名 -p旧密码 password 新密码


或者:


update user set password=password("新密码") where user="用户名";


用户的权限控制:


库,表级的权限控制 : 将某个库中的某个表的控制权赋予某个用户:


Grant all ON db_name.table_name TO user_name [ indentified by "password" ];


设置用户登录IP限制:


grant all privileges on 数据库.* to 用户名@主机地址 identified by "密码" with grant option;


例如:


// 设置root用户可在本地访问所有的数据库:


grant all privileges on *.* to root@localhost identified by "1234567890" with grant option;


// 设置root用户可在任何IP地址访问mydatabase数据库:


grant all privileges on mydatabase.* to root@"%" identified by "1234567890" with grant option;


删除用户登录IP授权:


revoke all privileges on 数据库.* from 用户名@"%";


或者:


delete from user where user="root" and host="%";


删除SQL用户:


delete from user where User="用户名" and Host="主机地址";


二. 数据库操作:


列出数据库:


show databases;


使用名为database_name的数据库:


use database_name;


创建名为database_name的数据库:


create database database_name;


删除一个名为database_name的数据库:


drop database database_name;


三. 表操作:


列出所有表:


show tables;


创建一个名为table_name的新表:


create table table_name;


或者:


create table table_name (字段1 数据类型 , 字段2 数据类型);


删除表table_name:


drop table table_name;


显示表table_name的数据结构:


describe table_name;


或:


show columns from table_name;


向表table_name中添加数据:


Insert into table_name [(字段1 , 字段2 , ….)] values (值1 , 值2 , …..);


更新某一个字段的数据:


Update table_name set 字段名="新值" [, 字段2 ="新值" , …..][where id=id_num] [order by 字段 顺序];


例 : update mytable set username="lisi" where id=1; 。


将表table_name中的记录清空:


delete from table_name; // 删除整个表中的信息


delete from table_name where 条件语句 ; // 删除表中指定条件的语句


显示表table_name的记录:


select * from table_name;


修改表名:


alter table table_name rename to new_table_name;


四. 修改表结构:


把某个字段设为主键:


alter table table_name add primary key (col_name);


删除主键的定义:


alter table table_name drop primary key (col_name);


增加字段,并设置字段类型:


alter table table_name add col_name varchar(20);


删除字段:


alter table table_name drop col_name;


修改字段属性:


alter table table_name modify col_name varchar(40) not null;


修改字段名:


alter table table_name change old_col_name new_col_name varchar(40); // 必须为当前字段指定数据类型等属性,否则不能修改


用已存在的表来建新表,但不包含旧表的数据:


create table new_table_name like old_table_name;


增加主键,外键,约束,索引等:


约束(主键: Primary key 、唯一性: Unique 、非空: Not Null );


自动增张: auto_increment ;


外键: Foreign key 。 与reference table_name(col_name列名)配合使用,建表时单独使用。


删除多个表中有关联的数据:设置 foreign key 为 set null 。


五. 数据的备份与恢复:


在当前的数据库上执行外部的SQL脚本:


mysql


指定数据库执行外部SQL脚本:


mysql [表名]


数据传入:


load data local infile "[文件名]" into table [表名];


备份数据库:


mysqldump -h 主机地址 -u 用户名 -p 数据库名 > dbname_backup.sql


恢复数据库:


mysqladmin -h 主机地址 -u 用户名 -p create 新数据库名


mysqldump -h 主机地址 -u 用户名 -p 新数据库名


卸出建表指令:


mysqladmin -u 用户名 -p -d 数据库名 > a.sql


卸出插入数据的sql命令,不包含建表命令:


mysqladmin -u 用户名 -p -t 数据库名 > a.sql


卸出数据,不包含sql命令:


mysqldump -T 卸出数据的目录 phptest 指定卸出的数据表


其中,只有指定了 -T 参数才可以卸出纯文本文件。如果不指定卸出的数据表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行;另一个为.txt文件,只包含数据,且没有sql指令。


六. 查看数据库信息:


查看数据库版本号:


select version();


查看当前的user:


select user();


查看当前操作的数据库名:


mysql> select database();



举报

相关推荐

0 条评论