我是靠谱客的博主 火星上高跟鞋,这篇文章主要介绍MySQL数据库常用命令_常用SQL语句及命令_MySQL常用语句一、常用的 SQL 语句二、常用的命令,现在分享给大家,希望可以做个参考。

文章目录

  • 一、常用的 SQL 语句
    • (一)查看当前登录用户
    • (二)查看当前数据库
    • (三)如何查看全部用户?
    • (四)创建数据库
    • (五)选择要操作的数据库
    • (六)创建表
    • (七)查看表的结构
    • (八)往表中插入记录
    • (九)执行 SQL 脚本文件
    • (十)删除表
    • (十一)清空表
    • (十二)更新表中数据
    • (十三)修改 root 密码
    • (十四)修改字段属性
    • (十五)修改字段名
  • 二、常用的命令
    • (一)查看 MySQL 状态
      • 1.使用命令 status 查看状态
      • 2.使用命令 s 查看状态
    • (二)查看全部数据库
    • (三)查看当前数据库中当前用户权限下的全部表
    • (四)查看/设置字符编码
      • 1.查看 MySQL 的详细编码
      • 2.查看某个数据库的编码
      • 3.设置当前会话中的数据库字符编码
      • 4.设置全局的数据库编码
      • 5.设置永久的字符编码
        • (1)永久修改某个数据库的字符编码
        • (2)永久修改某个表的字符编码
        • (3)永久修改某个表某个字段的字符编码
    • (五)查看建库/建表的语句

一、常用的 SQL 语句

(一)查看当前登录用户

mysql> select user();

(二)查看当前数据库

mysql> select database();

(三)如何查看全部用户?

在Mysql中其实有一个内置且名为mysql的数据库,这个数据库中存储的是Mysql的一些数据,比如用户、权限信息、存储过程等,我们可以通过如下简单的查询语句来显示所有的用户

mysql> SELECT User, Host FROM mysql.user;

(四)创建数据库

mysql> create database if not exists db_name character set utf8;
mysql> CREATE DATABASE IF NOT EXISTS db_name default charset utf8 COLLATE utf8_general_ci;

(五)选择要操作的数据库

mysql> use mydb;

按回车键出现 Database changed 时说明操作成功!

(六)创建表

mysql> CREATE TABLE t_employee (
  id bigint(20) unsigned DEFAULT NULL,
  project_name varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '项目名称',
  start_date date DEFAULT NULL COMMENT '项目开始时间',
  end_date date DEFAULT NULL COMMENT '项目结束时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

mysql> CREATE TABLE emp_1 (
	id INT ( 11 ) ZEROFILL PRIMARY KEY auto_increment,
	NAME VARCHAR ( 30 ) NOT NULL,
	salary DECIMAL ( 13, 2 ) NOT NULL,
	hiredate date NOT NULL,
	last_login TIMESTAMP NOT NULL,
dept_id INT ( 11 ) ZEROFILL NOT NULL);

(七)查看表的结构

mysql> describe mytable; -- 可以缩写成 desc mytable
mysql> show full columns from mytable; -- 查看表字段的完整信息

(八)往表中插入记录

mysql> INSERT INTO `td_dictionary` VALUES (1, 'UPLOAD_IMAGES', 'AVATAR_PATH', 'upload/avatar', NULL, NULL);

(九)执行 SQL 脚本文件

mysql>use database;
mysql>source d:td_dictionary.sql;

文件 td_dictionary.sql 内容如下:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for td_dictionary
-- ----------------------------
DROP TABLE IF EXISTS `td_dictionary`;
CREATE TABLE `td_dictionary` (
  `dict_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '字典ID',
  `dict_group` varchar(100) DEFAULT NULL COMMENT '分组编码',
  `dict_code` varchar(100) DEFAULT NULL COMMENT '字典编码',
  `dict_value` varchar(100) DEFAULT NULL COMMENT '字典值',
  `dict_remark` varchar(1000) DEFAULT NULL COMMENT '字典说明',
  `dict_order` smallint(6) DEFAULT NULL COMMENT '排序',
  PRIMARY KEY (`dict_id`)
) ENGINE=InnoDB AUTO_INCREMENT=126 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of td_dictionary
-- ----------------------------
BEGIN; -- 事务的开始
INSERT INTO `td_dictionary` VALUES (1, 'UPLOAD_IMAGES', 'AVATAR_PATH', 'upload/avatar', NULL, NULL);
INSERT INTO `td_dictionary` VALUES (2, 'UPLOAD_IMAGES', 'UPLOAD_PATH', 'upload/images', NULL, NULL);
INSERT INTO `td_dictionary` VALUES (3, 'UPLOAD_IMAGES', 'IMAGE_SIZE', '10485760', NULL, NULL);
INSERT INTO `td_dictionary` VALUES (4, 'UPLOAD_IMAGES', 'AVATAR_MIN_WIDTH', '0', NULL, NULL);
INSERT INTO `td_dictionary` VALUES (5, 'UPLOAD_IMAGES', 'AVATAR_MAX_WIDTH', '0', NULL, NULL);
INSERT INTO `td_dictionary` VALUES (6, 'UPLOAD_IMAGES', 'AVATAR_MIN_HEIGHT', '0', NULL, NULL);
INSERT INTO `td_dictionary` VALUES (7, 'UPLOAD_IMAGES', 'AVATAR_MAX_HEIGHT', '0', NULL, NULL);
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

(十)删除表

mysql> drop table mytable; -- 表结构和数据都删除

(十一)清空表

使用 delete 命令删除:

mysql> delete from mytable; -- 在提交之前可以回滚

使用 truncate 命令删除:

mysql> truncate table mytable; -- 删除数据,保留表结构,不能回滚

(十二)更新表中数据

mysql> update MYTABLE set sex="f" where name='hyq';

(十三)修改 root 密码

mysql> UPDATE mysql.user SET password='新密码' WHERE User='root';
mysql> FLUSH PRIVILEGES;

(十四)修改字段属性

将字段 id 设为 int 类型,显示位数 11,不足前面补零,并且自增长:

alter table t_project modify id int(11) zerofill auto_increment;

(十五)修改字段名

# MySQL修改字段名、类型、长度
alter table emp_yyy change job jobs varchar(50);
alter table emp_yyy change column job jobs varchar(50);

二、常用的命令

(一)查看 MySQL 状态

1.使用命令 status 查看状态

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using  EditLine wrapper

Connection id:		128333
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.7.31 MySQL Community Server (GPL)
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8mb4
Db     characterset:	utf8mb4
Client characterset:	utf8mb4
Conn.  characterset:	utf8mb4
UNIX socket:		/var/lib/mysql/mysql.sock
Uptime:			122 days 22 hours 57 min 30 sec

Threads: 31  Questions: 5033410  Slow queries: 0  Opens: 10640  Flush tables: 1  Open tables: 1996  Queries per second avg: 0.473
--------------

2.使用命令 s 查看状态

mysql> s
--------------
mysql  Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using  EditLine wrapper

Connection id:		128333
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.7.31 MySQL Community Server (GPL)
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8mb4
Db     characterset:	utf8mb4
Client characterset:	utf8mb4
Conn.  characterset:	utf8mb4
UNIX socket:		/var/lib/mysql/mysql.sock
Uptime:			122 days 22 hours 57 min 20 sec

Threads: 31  Questions: 5033397  Slow queries: 0  Opens: 10640  Flush tables: 1  Open tables: 1996  Queries per second avg: 0.473
--------------

(二)查看全部数据库

mysql> show databases;

(三)查看当前数据库中当前用户权限下的全部表

mysql> show tables;

(四)查看/设置字符编码

1.查看 MySQL 的详细编码

输入命令:show variables like '%char%'

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

2.查看某个数据库的编码

查看数据库 production 的编码

mysql> show create database production;
+------------+---------------------------------------------------------------------------------------------------+
| Database   | Create Database                                                                                   |
+------------+---------------------------------------------------------------------------------------------------+
| production | CREATE DATABASE `production` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ |
+------------+---------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

3.设置当前会话中的数据库字符编码

设置当前窗口的数据库字符编码,这是基于会话session级别的设置,关闭当前窗口也就是关闭当前会话,再次打开窗口后字符编码会恢复成原来的。

我们看下当前数据库的编码是:

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

我们使用命令 set,一个一个来设置。如上所示我们看到 database、server 是 utf8mb4,现在我们改成 gbk :

mysql> set character_set_database=gbk;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> set character_set_server=gbk;
Query OK, 0 rows affected (0.00 sec)

改完之后我查看下:

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | gbk                        |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | gbk                        |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

我们还可以是关键字 names 来批量修改,命运语句格式如下:

SET NAMES 'charset_name' [COLLATE 'collation_name'];

执行上面的命令语相当于执行下面 3 条命令语句:

SET character_set_client = charset_name; 
SET character_set_results = charset_name; 
SET character_set_connection = charset_name;

我执行看看:

mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | gbk                        |
| character_set_connection | gbk                        |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | gbk                        |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

此时创建数据库,默认编码就是 gbk 了。

但是我们退出数据库连接,再重新连接数据库,再查看数据库的编码就会发现又恢复原来的了:

mysql> exit;
Bye
[root@htlwk0001host ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 128374
Server version: 5.7.31 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

4.设置全局的数据库编码

当重启 MySQL 服务的时候,编码依然会变为原来的字符编码。

设置全局的数据库编码命令如下:


mysql> set global character_set_database=gbk;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> set global character_set_server=gbk;
Query OK, 0 rows affected (0.00 sec)

查看下有没有变化呢?结果意外吧?惊喜吧?

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

其实已经设置成功了,你要断开连接再重新连接数据库,你就可以看到变化了。

此时你创建表、数据库默认的就是 gbk 字符编码,而且你断开数据库连接再重新连接数据库,创建的表、数据库等对象,默认字符编码就是 gbk,有兴趣的自己操作试下,我这里就不试了。

但是我们重启 MySQL 数据库的时候,编码又会恢复成原来的 utf8mb4。

5.设置永久的字符编码

需要在配置文件中修改数据库的字符编码,编辑文件 /etc/my.cnf,如下:

[mysqld]
character-set-server=gbk
[client]
default-character-set=gbk
[mysql]
default-character-set=gbk

然后重启数据库即可

(1)永久修改某个数据库的字符编码

命令语句如下:

ALTER DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collation_name]

我们执行看看,先看下数据库 test 当前的字符编码如下:

mysql> show create database test;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)

把字符编码改成 gbk,如下语句:

mysql> alter database test character set gbk;
Query OK, 1 row affected (0.00 sec)

看看结果:

mysql> show create database test;
+----------+--------------------------------------------------------------+
| Database | Create Database                                              |
+----------+--------------------------------------------------------------+
| test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)

已经成功改成 gbk了!

(2)永久修改某个表的字符编码

命令语句格式如下:

ALTER TABLE tbl_name [[DEFAULT] CHARACTER SET charset_name] [COLLATE collation_name]

(3)永久修改某个表某个字段的字符编码

命令语句格式如下:

ALTER TABLE tbl_name MODIFY col_name {CHAR | VARCHAR | TEXT} (col_length) [CHARACTER SET charset_name] [COLLATE collation_name]

例如:

alter table tf_user modify user_name varchar(30) character set utf8 collate utf8_swedish_ci;

(五)查看建库/建表的语句

show create table project G; #  G 用来格式化显示信息
show create database test G

最后

以上就是火星上高跟鞋最近收集整理的关于MySQL数据库常用命令_常用SQL语句及命令_MySQL常用语句一、常用的 SQL 语句二、常用的命令的全部内容,更多相关MySQL数据库常用命令_常用SQL语句及命令_MySQL常用语句一、常用的内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部