文章目录
- 一、常用的 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常用语句一、常用的内容请搜索靠谱客的其他文章。
发表评论 取消回复