• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

MySQL相关命令及SQL语句【显哥出品,必为精品】

MySQL lixian 1年前 (2020-06-09) 778次浏览 0个评论 扫描二维码
文章目录[隐藏]

一、mysql相关命令

1.连接数据库后快捷命令

	\?:		类似于帮助,等于 \h 或 help
\c: 	中断当前执行的语句(如果中断不了,一定是引号没有凑成一对)
	\r:		重新连接数据库
	\d:		修改sql语句结束符
	\e:		把内容写入\e,一起执行
\G:		将数据分别列出并垂直展示
	\g:		表示命令结束,等价于;
\q:		退出,等于 quit 或 exit
	\h:		类似于帮助,等于 \? 或 help
	help:	类似于 \h和\?	help还可以查看语法
	\t:		不写入文件
\T:		将执行过程和命令打印到指定的文件中(只支持本次会话,断开就不在保存了)
	\p:		将执行的命令在打印一遍
	\R:		修改命令提示符
\.:		执行sql文件   等于 source
\s:		获取服务器信息
\!:		在数据库内执行命令行命令
\u:		切换数据库  等于 use
	\C:		切换字符集
	\W:		执行语句时加一条警告
	\w:		执行语句时加不加警告

2.help命令

#查看帮助
mysql> help

#查看help用法
mysql> help contents

#查看create可以添加的内容
mysql> help create

#查看create添加库的语法
mysql> help CREATE DATABASE

3.客户端命令 mysqladmin

1.设置密码
mysqladmin -uroot password '123'

2.修改密码
mysqladmin -uroot -p123 password '456'

3.关闭数据库
mysqladmin -uroot -p123 -S /tmp/mysql.sock shutdown

4.库外建库
[root@db01 ~]# mysqladmin -uroot -p123 create mysqladmin
[root@db01 ~]# mysql -uroot -p123 -e 'create database ku2;'

5.库外删库
[root@db01 ~]# mysqladmin -uroot -p123 drop lhd
Do you really want to drop the 'lhd' database [y/N] y
Database "lhd" dropped

6.查看数据的配置参数
[root@db01 ~]# mysqladmin -uroot -p123 variables
[root@db01 ~]# mysqladmin -uroot -p123 variables | grep server_id
[root@db01 ~]# mysqladmin -uroot -p123 variables | grep socket

7.查看mysql状态
[root@db01 ~]# mysqladmin -uroot -p123 status
Uptime: 4615  			mysql运行时间(单位是秒)
Threads: 2  			线程数量
Questions: 21534  		查询数据的数据量
Slow queries: 0  		慢查询语句的数量
Opens: 99  				mysqld程序打开了多少表
Flush tables: 1  		执行flush,reload,refresh命令的次数
Open tables: 83  		现在被打开的表的数量
Queries per second avg: 4.66		每秒平均查询数

8.检测mysql是否存活
[root@db01 tmp]# mysqladmin -uroot -p123 ping
mysqld is alive

9.刷新mysql
[root@db01 tmp]# mysqladmin -uroot -p123 reload

二、SQL语句

sql语句语义种类

DDL: Data Definition Language 数据定义语言
DCL: Data Control Language 数据控制语言
DML: Data Manipulation Language 数据操作语言
DQL: Data Query Language 数据查询语句

一、DDL语句—数据定义语言(CREATE,drop,use,show,alter,add)

对库的操作

1)语法

mysql> help create database;
Syntax:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ...

create_specification:
    [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name

2)建库语句1

mysql> create database ku3;
Query OK, 1 row affected (0.00 sec)

mysql> create schema ku4;
Query OK, 1 row affected (0.00 sec)

3)建库语句2

#当库已存在时会提示报错
mysql> create database ku3;
ERROR 1007 (HY000): Can't create database 'ku3'; database exists

#使用选项忽略报错
mysql> create database if not exists ku3;
Query OK, 1 row affected, 1 warning (0.00 sec)

4)查看建库语句

mysql> show create database ku3;

5)建库语句3

#指定字符集建库
mysql> create database lhd charset utf8 ;
Query OK, 1 row affected (0.00 sec)

#最好在指定字符集同时也指定一下校验规则
mysql> create database lhd charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

6)删库

mysql> drop database oldboy;
Query OK, 0 rows affected (0.00 sec)

7)修改库

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

#修改字符集为 utf8mb4
mysql> alter database lhd charset utf8mb4;
Query OK, 1 row affected (0.01 sec)

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

针对表的操作

1)语法

mysql> help create table;

Syntax:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name(create_definition,...) [table_options]  [partition_options]

2)建表语句

mysql> create table qiudao;
ERROR 1046 (3D000): No database selected
#建表必须先进入库中

mysql> use lhd
Database changed
mysql> create table qiudao;
ERROR 1113 (42000): A table must have at least 1 column
#建的表必须有一列

mysql> create table qiudao(id);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
#创建列的时候必须指定数据类型

mysql> create table qiudao(id int);
Query OK, 0 rows affected (0.03 sec)

3)数据类型

int:		整数类型 -2^31 - 2^31-1  (-2147483648 - 2147483647)
tinyint:	最小整数 -128 - 127				#一般用在年龄
varchar:	字符类型 (变长,最大65535)	   
char:		字符类型 (定长,最大255)
enum:		枚举类型					  #一般用在性别,指定的选项选一个
datetime:	时间类型	年月日时分秒
#以前使用 timestamp

#两者所能存储的时间范围不一样
timestamp所能存储的时间范围为:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'。
datetime所能存储的时间范围为:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。

4)数据类型int使用

#查看表属性
mysql> desc qiudao;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

#第一种情况,插入数据,超过数据类型范围,直接取最大值写入
mysql> insert into lhd values(11111111111);
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select * from lhd;
+------------+
| id         |
+------------+
| 2147483647 |
+------------+
1 row in set (0.00 sec)
#以上结果有问题,执行  set sql_mode='STRICT_TRANS_TABLES';

#第一种情况,插入数据,超过数据类型范围,直接报错
mysql> insert into lhd values(11111111111);
ERROR 1264 (22003): Out of range value for column 'id' at row 1

#插入的数据不能超过int类型的范围
mysql> insert into lhd values(2147483648);
ERROR 1264 (22003): Out of range value for column 'id' at row 1

mysql> insert into lhd values(2147483647);
Query OK, 1 row affected, 1 warning (0.00 sec)

5)数据类型enum使用

#创建一个表,性别为枚举类型
mysql> create table qiudao(id int,gender enum('male','female','qiudao'));
Query OK, 0 rows affected (0.01 sec)

#查看表结构
mysql> desc qiudao;
+--------+--------------------------------+------+-----+---------+-------+
| Field  | Type                           | Null | Key | Default | Extra |
+--------+--------------------------------+------+-----+---------+-------+
| id     | int(11)                        | YES  |     | NULL    |       |
| gender | enum('male','female','qiudao') | YES  |     | NULL    |       |
+--------+--------------------------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

#测试插入数据
mysql> insert into qiudao values(1,'nan');
ERROR 1265 (01000): Data truncated for column 'gender' at row 1

#添加数据必须填写枚举类型指定的选项,其他的值填写都报错
mysql> insert into qiudao values(1,'male');
Query OK, 1 row affected (0.00 sec)

本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:MySQL相关命令及SQL语句【显哥出品,必为精品】
喜欢 (2)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到