设为首页 收藏本站
查看: 4550|回复: 0

[经验分享] MySQL常用命令大全

[复制链接]

尚未签到

发表于 2018-10-7 12:19:28 | 显示全部楼层 |阅读模式
  MySQL 常用命令大全
  1. mysql:连接数据库
  mysql 命令用户连接数据库。
  mysql 命令格式: mysql -h 主机地址 -u 用户名 -p 用户密码
  1) 连接到本机上的 MYSQL
  首先打开 DOS 窗口,然后进入目录 mysql\bin,再键入命令 mysql -u root -p,回车后提示你
  输密码。
  注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密
  码。
  如果刚安装好 MYSQL,超级用户 root 是没有密码的,故直接回车即可进入到 MYSQL 中了,
  MYSQL 的提示符是: mysql>
  2) 连接到远程主机上的 MYSQL
  假设远程主机的 IP 为: 110.110.110.110,用户名为 root,密码为 abcd123。则键入以下命令:
  mysql -h110.110.110.110 -u root -p 123;(注: u 与 root 之间可以不用加空格,其它也一样)
  3) 退出 MYSQL 命令
  exit (回车)
  2. mysqladmin:修改用户密码
  mysqladmin 命令用于修改用户密码。
  mysqladmin 命令格式: mysqladmin -u 用户名 -p 旧密码 password 新密码
  1) 给 root 加个密码 ab12
  首先在 DOS 下进入目录 mysql\bin,然后键入以下命令:
  mysqladmin -u root -password ab12
  注:因为开始时 root 没有密码,所以-p 旧密码一项就可以省略了。
  2) 再将 root 的密码改为 djg345
  mysqladmin -u root -p ab12 password djg345
  3. grant on:新增用户
  grant on 命令用于增加新用户并控制其权限。

  grant on 命令格式: grant select on 数据库.* to 用户名@登录主机>  1) 增加一个用户 test1,密码为 abc,让他可以在任何主机上登录,并对所有数据库有查询、
  插入、修改、删除的权限。首先用 root 用户连入 MYSQL,然后键入以下命令:

  grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]”>  但增加的用户是十分危险的,你想如某个人知道 test1 的密码,那么他就可以在 internet 上
  的任何一台电脑上登录你的 mysql 数据库并对你的数据可以为所欲为了,解决办法如下。
  2) 增加一个用户 test2 密码为 abc,让他只可以在 localhost 上登录,并可以对数据库 mydb
  进行查询、插入、修改、删除的操作(localhost 指本地主机,即 MYSQL 数据库所在的那台主
  机),这样用户即使用知道 test2 的密码,他也无法从 internet 上直接访问数据库,只能通过
  MYSQL 主机上的 web 页来访问了。

  grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email]>  “abc”;
  如果你不想 test2 有密码,可以再打一个命令将密码消掉。

  grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email]>  4. create:创建数据库
  create 命令用于创建数据库。
  create 命令格式: create database ;
  注意:创建数据库之前要先连接 Mysql 服务器。
  1) 建立一个名为 xhkdb 的数据库:
  mysql> create database xhkdb;
  2) 创建数据库并分配用户:
  a: CREATE DATABASE 数据库名;
  b: GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO

  数据库名@localhost>  c:SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');
  依次执行 3 个命令完成数据库创建。
  注意:中文 “密码”和“数据库”是户自己需要设置的。
  5. show databases:显示数据库
  show databases 命令用于显示所有数据库。
  show databases 命令格式: show databases; (注意:最后有个 s)
  例如: mysql> show databases;
  6. drop database:删除数据库
  drop 命令用于删除数据库。
  drop 命令格式: drop database ;
  例如,删除名为 xhkdb 的数据库:
  mysql> drop database xhkdb;
  [例子 1] 删除一个已经确定存在的数据库:
  mysql> drop database drop_database;
  Query OK, 0 rows affected (0.00 sec)
  [例子 2] 删除一个不确定存在的数据库:
  mysql> drop database drop_database;
  ERROR 1008 (HY000): Can't drop database 'drop_database'; database doesn't exist
  // 发生错误,不能删除'drop_database'数据库,该数据库不存在。
  mysql> drop database if exists drop_database;
  Query OK, 0 rows affected, 1 warning (0.00 sec)
  //产生一个警告说明此数据库不存在
  mysql> create database drop_database; // 创建一个数据库
  Query OK, 1 row affected (0.00 sec)
  mysql> drop database if exists drop_database; // if exists 判断数据库是否存在,不存在也不产生错误
  Query OK, 0 rows affected (0.00 sec)
  7. use:使用数据库
  use 命令可以让我们来使用数据库。
  use 命令格式: use ;
  例如,如果 xhkdb 数据库存在,尝试存取它:
  mysql> use xhkdb;
  屏幕提示: Database changed
  1) use 语句可以通告 MySQL 把 db_name 数据库作为默认(当前)数据库使用,用于后续语
  句。该数据库保持为默认数据库,直到语段的结尾,或者直到出现下一个不同的 use 语句:
  mysql> USE db1;
  mysql> SELECT COUNT(*) FROM mytable; # selects from db1.mytable
  mysql> USE db2;
  mysql> SELECT COUNT(*) FROM mytable; # selects from db2.mytable
  2) 使用 USE 语句为一个特定的当前的数据库做标记,不会阻碍您访问其它数据库中的表。下
  面的例子可以从 db1 数据库访问 author 表,并从 db2 数据库访问 editor 表:
  mysql> USE db1;
  mysql> SELECT author_name,editor_name FROM author,db2.editor
  -> WHERE author.editor_id = db2.editor.editor_id;
  use 语句被设立出来,用于与 Sybase 相兼容。
  有些网友问到,连接以后怎么退出。其实,不用退出来, use 数据库后,使用 show databases
  就能查询所有数据库,如果想跳到其他数据库,用
  use 其他数据库名字就可以了。
  8. select:当前连接的数据库
  select 命令表示当前选择(连接)的数据库。
  select 命令格式: mysql> select database();
  MySQL 中 SELECT 命令类似于其他编程语言里的 print 或者 write,你可以用它来显示一个字
  符串、数字、数学表达式的结果等等。如何使用 MySQL 中 SELECT 命令的特殊功能呢?
  1) 显示 MYSQL 的版本
  mysql> select version();
  +-----------------------+
  | version() |
  +-----------------------+
  | 6.0.4-alpha-community |
  +-----------------------+
  1 row in set (0.02 sec)
  2) 显示当前时间
  mysql> select now();
  +---------------------+
  | now() |
  +---------------------+
  | 2009-09-15 22:35:32 |
  +---------------------+
  1 row in set (0.04 sec)
  3) 显示年月日
  SELECT DAYOFMONTH(CURRENT_DATE);
  +--------------------------+
  | DAYOFMONTH(CURRENT_DATE) |
  +--------------------------+
  | 15 |
  +--------------------------+
  1 row in set (0.01 sec)
  SELECT MONTH(CURRENT_DATE);
  +---------------------+
  | MONTH(CURRENT_DATE) |
  +---------------------+
  | 9 |
  +---------------------+
  1 row in set (0.00 sec)
  SELECT YEAR(CURRENT_DATE);
  +--------------------+
  | YEAR(CURRENT_DATE) |
  +--------------------+
  | 2009 |
  +--------------------+
  1 row in set (0.00 sec)
  4) 显示字符串
  mysql> SELECT "welecome to my blog!";
  +----------------------+
  | welecome to my blog! |
  +----------------------+
  | welecome to my blog! |
  +----------------------+
  1 row in set (0.00 sec)
  5) 当计算器用
  select ((4 * 4) / 10 ) + 25;
  +----------------------+
  | ((4 * 4) / 10 ) + 25 |
  +----------------------+
  | 26.60 |
  +----------------------+
  1 row in set (0.00 sec)
  6) 串接字符串
  select CONCAT(f_name, " ", l_name)
  AS Name
  from employee_data

  where>  +---------------+
  | Name |
  +---------------+
  | Monica Sehgal |
  | Hal Simlai |
  | Joseph Irvine |
  +---------------+
  3 rows in set (0.00 sec)
  注意:这里用到 CONCAT()函数,用来把字符串串接起来。另外,我们还用到以前学到的 AS
  给结果列'CONCAT(f_name, " ", l_name)'起了个假名。
  9. create table:创建数据表
  数据表属于数据库,在创建数据表之前,应该使用语句“USE ”指定操作是在哪
  个数据库中进行,如果没有选择数据库,会抛出“No database selected”的错误。
  创建数据表的语句为 CREATE TABLE,语法规则如下:
  CREATE TABLE
  (
  字段名 1,数据类型 [列级别约束条件] [默认值],
  字段名 2,数据类型 [列级别约束条件] [默认值],
  [表级别约束条件]
  );
  使用 CREATE TABLE 创建表时,必须指定以下信息:

  (1)要创建的表的名称,不区分大小写,不能使用 SQL 语言中的关键字,如 DROP、>  INSERT 等。
  (2)数据表中每一个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开。
  创建员工表 tb_emp1,结构如下表所示。
  表 tb_emp1 表结构
字段名称 数据类型 备注id INT(11) 员工编号name VARCHAR(25) 员工名称deptId INT(11) 所在部门编号salary FLOAT 工资  首先创建数据库, SQL 语句如下:
  CREATE DATABASE test_db;
  选择创建表的数据库, SQL 语句如下:
  USE test_db;
  创建 tb_emp1 表, SQL 语句为:
  CREATE TABLE tb_emp1
  (
  id INT(11),
  name VARCHAR(25),
  deptId INT(11),
  salary FLOAT
  );
  语句执行后,便创建了一个名称为 tb_emp1 的数据表,使用 SHOW TABLES;语句查看数据
  表是否创建成功, SQL 语句如下:
  mysql> SHOW TABLES;
  +-----------------------+
  | Tables_in_ test_db |
  +----------------------+
  | tb_emp1 |
  +----------------------+
  1 row in set (0.00 sec)
  可以看到, test_db 数据库中已经有了数据表 tb_tmp1,数据表创建成功。
  10. desc:获取表结构
  在 MySQL 中,查看表结构可以使用 DESCRIBE 和 SHOW CREATE TABLE 语句。
  DESCRIBE/DESC 语句可以查看表的字段信息,其中包括:字段名、字段数据类型、是否为主
  键、是否有默认值等。语法规则如下:
  DESCRIBE 表名;
  或者简写为:
  DESC 表名;
  SHOW CREATE TABLE 语句可以用来显示创建表时的 CREATE TABLE 语句,语法格式
  如下:
  SHOW CREATE TABLE ;
  使用 SHOW CREATE TABLE 语句,不仅可以查看表创建时候的详细语句,而且还可以查
  看存储引擎和字符编码。
  如果不加’\G’参数,显示的结果可能非常混乱,加上参数’\G’之后,可使显示结果更加直观,
  易于查看。
  使用 SHOW CREATE TABLE 查看表 tb_emp1 的详细信息, SQL 语句如下:
  mysql> SHOW CREATE TABLE tb_emp1;
  11. drop table:删除数据表
  在 MySQL 中,使用 DROP TABLE 可以一次删除一个或多个没有被其他表关联的数据表。语
  法格式如下:
  DROP TABLE [IF EXISTS]表 1, 表 2, . . . 表 n;
  其中“表 n”指要删除的表的名称,后面可以同时删除多个表,只需将要删除的表名依次写在
  后面,相互之间用逗号隔开即可。如果要删除的数据表不存在,则 MySQL 会提示一条错误信息,
  “ERROR 1051 (42S02): Unknown table '表名'”。参数“IF EXISTS”用于在删除前判断删除的表是
  否存在,加上该参数后,再删除表的时候,如果表不存在, SQL 语句可以顺利执行,但是会发出
  警告(warning)。
  在前面的例子中,已经创建了名为 tb_dept2 的数据表。如果没有,读者可输入语句,创建该
  表, SQL 语句如例 4.8 所示。下面使用删除语句将该表删除。
  删除数据表 tb_dept2, SQL 语句如下:
  DROP TABLE IF EXISTS tb_dept2;
  12. insert into:向表中插入数据
  INSERT INTO 语句用于向表格中插入新的行。
  语法如下:
  INSERT INTO 表名称 VALUES (值 1, 值 2,....)
  我们也可以指定所要插入数据的列:
  INSERT INTO table_name (列 1, 列 2,...) VALUES (值 1, 值 2,....)
  【例】创建数据表 tmp3,定义数据类型为 YEAR 的字段 y,向表中插入值 2010, ’2010’, SQL
  语句如下:
  首先创建表 tmp3:
  CREATE TABLE tmp3( y YEAR );
  向表中插入数据:
  mysql> INSERT INTO tmp3 values(2010),('2010');
  13. select from:查询表中数据
  MySQL 从数据表中查询数据的基本语句为 SELECT 语句。 SELECT 语句的基本格式是:
  SELECT
  {* | }
  [
  FROM ,...
  [WHERE
  [GROUP BY ]
  [HAVING  [{ }...]]
  [ORDER BY ]
  [LIMIT [,] ]
  ]
  SELECT [字段 1,字段 2,…,字段 n]
  FROM [表或视图]
  WHERE [查询条件];
  其中,各条子句的含义如下:
  {* | }包含星号通配符选字段列表,表示查询的字段,其中字段列至少包含一个字
  段名称,如果要查询多个字段,多个字段之间用逗号隔开,最后一个字段后不要加逗号。
  FROM ,...,表 1 和表 2 表示查询数据的来源,可以是单个或者多个。
  WHERE 子句是可选项,如果选择该项, 将限定查询行必须满足的查询条件。
  GROUP BY ,该子句告诉 MySQL 如何显示查询出来的数据,并按照指定的字段分
  组。
  [ORDER BY ],该子句告诉 MySQL 按什么样的顺序显示查询出来的数据,可以进行
  的排序有:升序(ASC)、降序(DESC)。
  [LIMIT [,] ],该子句告诉 MySQL 每次显示查询出来的数据条数。
  14. delete from:删除记录
  从数据表中删除数据使用 DELETE 语句, DELETE 语句允许 WHERE 子句指定删除条件。
  DELETE 语句基本语法格式如下:
  DELETE FROM table_name [WHERE ];
  table_name 指定要执行删除操作的表;“[WHERE ]”为可选参数,指定删除条件,
  如果没有 WHERE 子句, DELETE 语句将删除表中的所有记录。

  【例】在 person 表中,删除>
  mysql> DELETE FROM person WHERE>  Query OK, 1 row affected (0.02 sec)
  15. update set:修改表中的数据
  MySQL 中使用 UPDATE 语句更新表中的记录,可以更新特定的行或者同时更新所有的行。
  基本语法结构如下:
  UPDATE table_name
  SET column_name1 = value1,column_name2=value2,……,column_namen=valuen
  WHERE (condition);
  column_name1,column_name2,……,column_namen 为 指 定 更 新 的 字 段 的 名 称 ; value1,
  value2,……valuen 为相对应的指定字段的更新值; condition 指定更新的记录需要满足的条件。更新
  多个列时,每个“列-值”对之间用逗号隔开,最后一列之后不需要逗号。

  【例】在 person 表中,更新>  LiMing, SQL 语句如下:

  UPDATE person SET age = 15, name=’LiMing’ WHERE>
  16.>  添加字段的语法格式如下:
  ALTER TABLE  ADD  
  [约束条件] [FIRST | AFTER 已存在字段名];
  新字段名为需要添加的字段的名称;“FIRST”为可选参数,其作用是将新添加的字段设置为
  表的第一个字段;“AFTER”为可选参数,其作用是将新添加的字段添加到指定的“已存在字段
  名”的后面。
  【例】在数据表 tb_dept1 中添加一个没有完整性约束的 INT 类型的字段 managerId(部门经理
  编号), SQL 语句如下:
  ALTER TABLE tb_dept1 ADD managerId INT(10);
  17. rename:修改表名

  MySQL 是通过>  ALTER TABLE  RENAME [TO] ;
  其中 TO 为可选参数,使用与否均不影响结果。
  【例】将数据表 tb_dept3 改名为 tb_deptment3, SQL 语句如下:
  ALTER TABLE tb_dept3 RENAME tb_deptment3;
  18. mysqldump:备份数据库
  mysqldump 备份数据库语句的基本语法格式如下:
  mysqldump –u user –h host –ppassword dbname[tbname, [tbname...]]> filename.sql
  user 表示用户名称; host 表示登录用户的主机名称; password 为登录密码; dbname 为需要备
  份的数据库名称; tbname 为 dbname 数据库中需要备份的数据表,可以指定多个需要备份的表;右
  箭头符号“>”告诉 mysqldump 将备份数据表的定义和数据写入备份文件; filename.sql 为备份文件
  的名称。
  【例】使用 mysqldump 命令备份数据库中的所有表,执行过程如下:
  打开操作系统命令行输入窗口,输入备份命令如下:
  C:\ >mysqldump -u root -p booksdb > C:/backup/booksdb_20130301.sql
  Enter password: **
  输入密码之后, MySQL 便对数据库进行了备份,在 C:\backup 文件夹下面查看刚才备份过的文件。
  19. mysql 和 source: 还原数据库
  对于已经备份的包含 CREATE、 INSERT 语句的文本文件,可以使用 mysql 命令导入到数据库
  中。
  备份的 sql 文件中包含 CREATE、 INSERT 语句(有时也会有 DROP 语句)。 mysql 命令可以
  直接执行文件中的这些语句。其语法如下:
  mysql –u user –p [dbname] < filename.sql
  user 是执行 backup.sql 中语句的用户名; -p 表示输入用户密码; dbname 是数据库名。如果
  filename.sql 文件为 mysqldump 工具创建的包含创建数据库语句的文件,执行的时候不需要指定数
  据库名。
  【例 1】使用 mysql 命令将 C:\backup\booksdb_20130301.sql 文件中的备份导入到数据库中,输
  入语句如下:
  mysql –u root –p booksDB < C:/backup/booksdb_20130301.sql
  执行该语句前,必须先在 MySQL 服务器中创建 booksDB 数据库,如果不存在恢复过程将会
  出错。命令执行成功之后 booksdb_20130301.sql 文件中的语句就会在指定的数据库中恢复以前的
  表。
  如果已经登录 MySQL 服务器,还可以使用 source 命令导入 sql 文件。 source 语句语法如下:
  source filename
  【 例 2 】 使 用 root 用 户 登 录 到 服 务 器 , 然 后 使 用 source 导 入 本 地 的 备 份 文 件
  booksdb_20110101.sql,输入语句如下:
  --选择要恢复到的数据库
  mysql> use booksDB;
  Database changed
  --使用 source 命令导入备份文件
  mysql> source C:\backup\booksDB_20130301.sql
  命令执行后,会列出备份文件 booksDB_20130301.sql 中每一条语句的执行结果。 source 命令
  执行成功后, booksDB_20130301.sql 中的语句会全部导入到现有数据库中。
  20. mysqlhotcopy: 快速恢复数据库
  mysqlhotcopy 备份后的文件也可以用来恢复数据库,在 MySQL 服务器停止运行时,将备份的
  数据库文件复制到 MySQL 存放数据的位置(MySQL 的 data 文件夹),重新启动 MySQL 服务即
  可。如果以根用户执行该操作,必须指定数据库文件的所有者,输入语句如下:
  chown -R mysql.mysql /var/lib/mysql/dbname
  【例】从 mysqlhotcopy 复制的备份恢复数据库,输入语句如下:
  cp -R /usr/backup/test usr/local/mysql/data
  执行完该语句,重启服务器, MySQL 将恢复到备份状态。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-614328-1-1.html 上篇帖子: PHP系列(十一)PHP操作mysql(i)数据库 下篇帖子: 初识MySQL之——SQL语言基础
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表