mysql 命令完全总结 【原创】

mysql 命令完全总结

Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/csxiaoyaojianxian Email: sunjianfeng@csxiaoyao.com QQ: 1724338257

目录导航

  • mysql 命令完全总结
    • 1. 连接mysql
    • 2. 修改密码
    • 3. 用户管理
      • 3.1 新建用户
      • 3.2 用户权限管理
      • 3.3 删除用户
    • 4. 数据库操作
      • 4.1 连接数据库
      • 4.2 显示数据库
      • 4.3 创建数据库
      • 4.4 SELECT操作
      • 4.5 删除数据库
    • 5. 表操作
      • 5.1 创建数据表
      • 5.2 表字段操作
      • 5.3 修改表名
      • 5.4 删除数据表
      • 5.5 索引操作
    • 6. 表数据操作
      • 6.1 表插入数据
      • 6.2 查询表数据
      • 6.3 删除表数据
      • 6.4 修改表数据
    • 7. 导入导出数据库
      • 7.1 导出整个数据库
      • 7.2 导出表
      • 7.3 导出表结构
      • 7.4 带语言参数导出
      • 7.5 导入sql文件
    • 8. 其他问题
      • 8.1 符号 ` 的使用
      • 8.2 自增
    • 9. 常用SQL
      • 9.1 串接字符串 CONCAT 与 AS
      • 9.2 PRIMARY KEY

/*

精心整理关于 mysql 的命令

数据库环境配置见 mysql配置总结.md 常用SQL用法见文件 sql代码总结.md

*/

1. 连接mysql

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

1. 连接本机mysql 终端进入目录 mysql/bin

mysql -u root -p

注意:用户名前可有空格也可没有空格,密码前必须没有空格 2. 连接到远程主机mysql

mysql -h 192.168.0.1 -u root -p19931128;

3. 退出mysql

exit

2. 修改密码

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

mysqladmin -u root password 931128 -- 初始化数据库root无密码
mysqladmin -u root -p931128 password 19931128

3. 用户管理

3.1 新建用户

mysql> insert into mysql.user(Host,User,Password) values('localhost','csxiaoyao',password('000000'));
mysql> update mysql.user set password=password('19931128') where User="csxiaoyao" and Host="localhost";

3.2 用户权限管理

命令:GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 用户名@登录主机 IDENTIFIED BY ‘密码’;

mysql> grant all PRIVILEGES on *.* to root@'%' identified by '19931128';
mysql> grant all on mydb.* to csxiaoyao@localhost identified by '19931128';
mysql> grant select,update on mydb.* to csxiaoyao@localhost identified by '19931128';
mysql> flush privileges;

注意:

  1. select, insert, update, delete, create, drop, index, alter, grant, references, reload, shutdown, process, file共14个权限,可被all privileges或者all代替
  2. 数据库名称.表名称 代替为 . ,表示赋予用户操作服务器上所有数据库所有表的权限
  3. 用户地址可以是 localhost,也可以是ip地址、机器名、域名,'%'表示从任何地址连接
  4. ‘连接口令’ 不能为空

3.3 删除用户

mysql> DELETE FROM mysql.user WHERE User="csxiaoyao" and Host="localhost";
mysql> flush privileges;

4. 数据库操作

4.1 连接数据库

命令: use <数据库名>;

使用USE语句为当前数据库做标记,不会影响访问其它数据库中的表

mysql> USE db1;
mysql> SELECT a_name,e_name FROM author,db2.editor WHERE author.editor_id = db2.editor.editor_id;   

4.2 显示数据库

命令:show databases;

mysql> show databases;

4.3 创建数据库

命令:create database <数据库名>;

mysql> create database sunshine;

4.4 SELECT操作

命令:select database();

mysqlSELECT 命令类似于其他编程语言的 printwrite,可用来显示字符串、数字、数学表达式的结果等 显示mysql的版本

mysql> select version();

显示当前时间

mysql> select now();

显示年月日

mysql> SELECT YEAR(CURRENT_DATE);
mysql> SELECT MONTH(CURRENT_DATE);
mysql> SELECT DAYOFMONTH(CURRENT_DATE);

显示字符串

mysql> SELECT "sunshine";

当计算器用

mysql> select ((4 * 4) / 10 ) + 25; 

4.5 删除数据库

命令:drop database <数据库名>;

mysql> drop database sunshine;
mysql> drop database if exists sunshine;

5. 表操作

5.1 创建数据表

字段名

数字类型

数据宽度

是否为空

是否主键

自动增加

默认值

id

int

4

primary key

auto_increment

name

char

20

sex

int

4

0

address

varchar

50

江苏

birthday

date

degree

double

16, 2

create table sunshine
(
    id int(4) auto_increment not null primary key,
    name char(20) not null,
    sex int(4) not null default 0,
    address varchar(50) default "江苏",
    birthday date,
    degree double(16,2)
); 

注:更多建表操作见附录

5.2 表字段操作

增加字段:

命令:alter table <表名> add <字段> <类型> <其他>; ALTER TABLE table_name ADD field_name field_type;

mysql> alter table sunshine add salary int(4) default 0

修改原字段名称及类型:

命令:ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

删除字段:

mysql> ALTER TABLE table_name DROP field_name;

5.3 修改表名

命令:rename table <原表名> to <新表名>;

mysql> rename table OldTable to NewTable;

注意:不能有活动的事务或对锁定的表操作,须有对原表的 ALTERDROP 权限,和对新表的 CREATEINSERT 权限

5.4 删除数据表

命令:drop table <表名>;

mysql> drop table sunshine; -- 普通删除
mysql> DROP TABLE IF EXISTS `sunshine`; -- 安全删除

5.5 索引操作

加索引

命令:alter table <表名> add index <索引名 (字段名1[,字段名2 …])>;

mysql> alter table sunshine add index name_index1(name);

加主关键字索引

命令:alter table <表名> add primary key <(字段名)>;

mysql> alter table sunshine add primary key(id);

加唯一限制条件索引

命令:alter table <表名> add unique <索引名 (字段名)>;

mysql> alter table sunshine add unique name_index2(cardnumber);

删除索引

命令:alter table <表名> drop index <索引名>;

mysql> alter table sunshine drop index name_index2;

6. 表数据操作

6.1 表插入数据

命令:insert into <表名 [( <字段名1>[,..<字段名n > ])]> values <( 值1 )[, ( 值n )]>;

mysql> insert into sunshine values(1,'Sun',99.99),(2,'Jian',98.99),(3,'Fent', 97.99);

注意:insert into每次只能插入一条记录

6.2 查询表数据

查询所有行

命令:select <字段1,字段2,…> from < 表名 > where < 表达式 >;

mysql> select * from sunshine;

查询前n行数据 LIMIT

mysql> select * from sunshine order by id limit 0,2;

6.3 删除表数据

mysql> DELETE FROM sunshine WHERE name='csxiaoyao';

6.4 修改表数据

命令:update <表名> set <字段> = <新值,…> where <条件>

mysql> update sunshine set name='csxiaoyao' where id=1;

单表UPDATE

命令:UPDATE [LOW_PRIORITY][IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...][WHERE where_definition] [ORDER BY …][LIMIT row_count]

多表UPDATE

命令:UPDATE [LOW_PRIORITY][IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...][WHERE where_definition]

注意:如果指定ORDER BY子句,则按被指定顺序对行更新;LIMIT子句限制被更新行数

7. 导入导出数据库

7.1 导出整个数据库

格式:mysqldump -u用户名 -p密码 数据库名 > 导出文件名.sql

mysqldump -u root -p database_name > outfile_name.sql

注意:命令行下执行,导出文件默认是存在 /usr/local/mysql/bin/ 目录下

7.2 导出表

格式:mysqldump -u用户名 -p密码 数据库名 表名 > 导出文件名.sql

mysqldump -u root -p database_name table_name > outfile_name.sql

7.3 导出表结构

格式:mysqldump -u用户名 -p密码 -d 数据库名 > 导出文件名.sql

mysqldump -u root -p -d –add-drop-table database_name > outfile_name.sql
mysqldump -u root -p -d database_name > outfile_name.sql

注意:-d 如果没有数据,–add-drop-table 在每个create语句前增加一个drop table

7.4 带语言参数导出

mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

7.5 导入sql文件

方法1

格式:mysql -u用户名 -p密码 数据库名 < 导入文件名.sql

mysql -uroot -p < /Users/sunshine/database.sql;

方法2

mysql> set names utf8; # 设置数据库编码
mysql> source /Users/sunshine/database.sql;

8. 其他问题

8.1 符号 ` 的使用

使用 “`” 避免和 mysql 关键字冲突,通常用来指明内容为数据库名、表名、字段名

8.2 自增

mysql 使用 auto_incrementsqlserver 使用 identity(1,1)

9. 常用SQL

9.1 串接字符串 CONCAT 与 AS

mysql> select CONCAT(name, " ", sex) 
     > AS inf 
     > from user
     > where degree > 0; 

9.2 PRIMARY KEY

DROP TABLE IF EXISTS `sun`;
CREATE TABLE `sun` (
  `sn` int(4) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `birthday` date DEFAULT NULL,
  `degree` double(16,2) DEFAULT NULL,
  PRIMARY KEY (`sn`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

【By CS逍遥剑仙】 未经允许不得转载:禅林阆苑 » mysql 命令完全总结 【原创】

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

ORA-00942: table or view does not exist

      在过程,包,函数,触发器中调用Oracle相关动态性能视图时,需要授予适当的权限,否则会收到表和视图不存在的错误提示。即使你可以单独查询这些视图。因...

1412
来自专栏源哥的专栏

oracle中如何删除重复数据

        我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢?         重复的数据可能有这样...

1043
来自专栏IT技术精选文摘

MySQL 有几种Join,其底层实现原理是什么?

mysql只支持一种join算法:Nested-Loop Join(嵌套循环连接),但Nested-Loop Join有三种变种:

3373
来自专栏battcn

MySQL - 常见的三种存储引擎

数据库存储引擎: 是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水...

741
来自专栏weixuqin 的专栏

MySQL 学习笔记(三):完整性和触发器设计

1244
来自专栏农夫安全

注入学习之sqli-labs-3(第二关)

前言 本来是想一个个关卡讲下去,后来自己测试了一下,发现第二、三、四这三关跟第一关,起始原理是一样的,只不过是单引号,双引号,带不带括号的区别,只要我们带入的语...

3386
来自专栏java达人

MySQL 加锁处理分析

背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信...

2395
来自专栏python3

mysql-数据库的操作

nformation_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等

1082
来自专栏蜉蝣禅修之道

Mysql学习笔记(一)创建触发器

3121
来自专栏Java帮帮-微信公众号-技术文章全总结

【数据库】MySQL进阶二、索引简易教程

【数据库】MySQL进阶二、索引简易教程 Mysql索引简易教程 基本概念 索引是指把你设置为索引的字段A的内容储存在一个独立区间S里,里面只...

3559

扫码关注云+社区

领取腾讯云代金券