MySQL数据库常用命令_常用SQL语句及命令_MySQL常用语句
文章目錄
- 一、常用的 SQL 語句
- (一)查看當前登錄用戶
- (二)查看當前數(shù)據(jù)庫
- (三)如何查看全部用戶?
- (四)創(chuàng)建數(shù)據(jù)庫
- (五)選擇要操作的數(shù)據(jù)庫
- (六)創(chuàng)建表
- (七)查看表的結(jié)構(gòu)
- (八)往表中插入記錄
- (九)執(zhí)行 SQL 腳本文件
- (十)刪除表
- (十一)清空表
- (十二)更新表中數(shù)據(jù)
- (十三)修改 root 密碼
- (十四)修改字段屬性
- (十五)修改字段名
 
- 二、常用的命令
- (一)查看 MySQL 狀態(tài)
- 1.使用命令 status 查看狀態(tài)
- 2.使用命令 \s 查看狀態(tài)
 
- (二)查看全部數(shù)據(jù)庫
- (三)查看當前數(shù)據(jù)庫中當前用戶權(quán)限下的全部表
- (四)查看/設(shè)置字符編碼
- 1.查看 MySQL 的詳細編碼
- 2.查看某個數(shù)據(jù)庫的編碼
- 3.設(shè)置當前會話中的數(shù)據(jù)庫字符編碼
- 4.設(shè)置全局的數(shù)據(jù)庫編碼
- 5.設(shè)置永久的字符編碼
- (1)永久修改某個數(shù)據(jù)庫的字符編碼
- (2)永久修改某個表的字符編碼
- (3)永久修改某個表某個字段的字符編碼
 
 
 
一、常用的 SQL 語句
(一)查看當前登錄用戶
mysql> select user();(二)查看當前數(shù)據(jù)庫
mysql> select database();(三)如何查看全部用戶?
在Mysql中其實有一個內(nèi)置且名為mysql的數(shù)據(jù)庫,這個數(shù)據(jù)庫中存儲的是Mysql的一些數(shù)據(jù),比如用戶、權(quán)限信息、存儲過程等,我們可以通過如下簡單的查詢語句來顯示所有的用戶
mysql> SELECT User, Host FROM mysql.user;(四)創(chuàng)建數(shù)據(jù)庫
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;(五)選擇要操作的數(shù)據(jù)庫
mysql> use mydb;按回車鍵出現(xiàn) Database changed 時說明操作成功!
(六)創(chuàng)建表
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 '項目結(jié)束時間' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;(七)查看表的結(jié)構(gòu)
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);(九)執(zhí)行 SQL 腳本文件
mysql>use database; mysql>source d:\td_dictionary.sql;文件 td_dictionary.sql 內(nèi)容如下:
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; -- 事務(wù)的開始 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; -- 表結(jié)構(gòu)和數(shù)據(jù)都刪除(十一)清空表
使用 delete 命令刪除:
mysql> delete from mytable; -- 在提交之前可以回滾使用 truncate 命令刪除:
mysql> truncate table mytable; -- 刪除數(shù)據(jù),保留表結(jié)構(gòu),不能回滾(十二)更新表中數(shù)據(jù)
mysql> update MYTABLE set sex="f" where name='hyq';(十三)修改 root 密碼
mysql> UPDATE mysql.user SET password='新密碼' WHERE User='root'; mysql> FLUSH PRIVILEGES;(十四)修改字段屬性
將字段 id 設(shè)為 int 類型,顯示位數(shù) 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 狀態(tài)
1.使用命令 status 查看狀態(tài)
mysql> status -------------- mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapperConnection 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 secThreads: 31 Questions: 5033410 Slow queries: 0 Opens: 10640 Flush tables: 1 Open tables: 1996 Queries per second avg: 0.473 --------------2.使用命令 \s 查看狀態(tài)
mysql> \s -------------- mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapperConnection 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 secThreads: 31 Questions: 5033397 Slow queries: 0 Opens: 10640 Flush tables: 1 Open tables: 1996 Queries per second avg: 0.473 --------------(二)查看全部數(shù)據(jù)庫
mysql> show databases;(三)查看當前數(shù)據(jù)庫中當前用戶權(quán)限下的全部表
mysql> show tables;(四)查看/設(shè)置字符編碼
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.查看某個數(shù)據(jù)庫的編碼
查看數(shù)據(jù)庫 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.設(shè)置當前會話中的數(shù)據(jù)庫字符編碼
設(shè)置當前窗口的數(shù)據(jù)庫字符編碼,這是基于會話session級別的設(shè)置,關(guān)閉當前窗口也就是關(guān)閉當前會話,再次打開窗口后字符編碼會恢復(fù)成原來的。
我們看下當前數(shù)據(jù)庫的編碼是:
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,一個一個來設(shè)置。如上所示我們看到 database、server 是 utf8mb4,現(xiàn)在我們改成 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)我們還可以是關(guān)鍵字 names 來批量修改,命運語句格式如下:
SET NAMES 'charset_name' [COLLATE 'collation_name'];執(zhí)行上面的命令語相當于執(zhí)行下面 3 條命令語句:
SET character_set_client = charset_name; SET character_set_results = charset_name; SET character_set_connection = charset_name;我執(zhí)行看看:
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)此時創(chuàng)建數(shù)據(jù)庫,默認編碼就是 gbk 了。
但是我們退出數(shù)據(jù)庫連接,再重新連接數(shù)據(jù)庫,再查看數(shù)據(jù)庫的編碼就會發(fā)現(xiàn)又恢復(fù)原來的了:
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.設(shè)置全局的數(shù)據(jù)庫編碼
當重啟 MySQL 服務(wù)的時候,編碼依然會變?yōu)樵瓉淼淖址幋a。
設(shè)置全局的數(shù)據(jù)庫編碼命令如下:
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)查看下有沒有變化呢?結(jié)果意外吧?驚喜吧?
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)其實已經(jīng)設(shè)置成功了,你要斷開連接再重新連接數(shù)據(jù)庫,你就可以看到變化了。
此時你創(chuàng)建表、數(shù)據(jù)庫默認的就是 gbk 字符編碼,而且你斷開數(shù)據(jù)庫連接再重新連接數(shù)據(jù)庫,創(chuàng)建的表、數(shù)據(jù)庫等對象,默認字符編碼就是 gbk,有興趣的自己操作試下,我這里就不試了。
但是我們重啟 MySQL 數(shù)據(jù)庫的時候,編碼又會恢復(fù)成原來的 utf8mb4。
5.設(shè)置永久的字符編碼
需要在配置文件中修改數(shù)據(jù)庫的字符編碼,編輯文件 /etc/my.cnf,如下:
[mysqld] character-set-server=gbk [client] default-character-set=gbk [mysql] default-character-set=gbk然后重啟數(shù)據(jù)庫即可
(1)永久修改某個數(shù)據(jù)庫的字符編碼
命令語句如下:
ALTER DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collation_name]我們執(zhí)行看看,先看下數(shù)據(jù)庫 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)看看結(jié)果:
mysql> show create database test; +----------+--------------------------------------------------------------+ | Database | Create Database | +----------+--------------------------------------------------------------+ | test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ | +----------+--------------------------------------------------------------+ 1 row in set (0.00 sec)已經(jīng)成功改成 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;總結(jié)
以上是生活随笔為你收集整理的MySQL数据库常用命令_常用SQL语句及命令_MySQL常用语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 判断选择语句switch...case
- 下一篇: 美国交通安全局要求特斯拉提供 Autop
