600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > MySQL数据库常用命令_常用SQL语句及命令_MySQL常用语句

MySQL数据库常用命令_常用SQL语句及命令_MySQL常用语句

时间:2019-05-01 04:53:42

相关推荐

MySQL数据库常用命令_常用SQL语句及命令_MySQL常用语句

文章目录

一、常用的 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> describe mytable; -- 可以缩写成 desc mytablemysql> 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 wrapperConnection id:128333Current database:Current user:root@localhostSSL:Not in useCurrent pager:stdoutUsing outfile:''Using delimiter:;Server version:5.7.31 MySQL Community Server (GPL)Protocol version:10Connection:Localhost via UNIX socketServer characterset:utf8mb4Dbcharacterset:utf8mb4Client characterset:utf8mb4Conn. characterset:utf8mb4UNIX socket:/var/lib/mysql/mysql.sockUptime:122 days 22 hours 57 min 30 secThreads: 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 wrapperConnection id:128333Current database:Current user:root@localhostSSL:Not in useCurrent pager:stdoutUsing outfile:''Using delimiter:;Server version:5.7.31 MySQL Community Server (GPL)Protocol version:10Connection:Localhost via UNIX socketServer characterset:utf8mb4Dbcharacterset:utf8mb4Client characterset:utf8mb4Conn. characterset:utf8mb4UNIX socket:/var/lib/mysql/mysql.sockUptime:122 days 22 hours 57 min 20 secThreads: 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 -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 128374Server version: 5.7.31 MySQL Community Server (GPL)Copyright (c) 2000, , Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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/f,如下:

[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;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。