目 录CONTENT

文章目录

晶哥哥的编程手记

筱晶哥哥
2023-12-23 / 0 评论 / 0 点赞 / 60 阅读 / 13050 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-03-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

编程手记!

MySQL查询语句的执行顺序

在MySQL中,查询语句的执行顺序如下:

  1. FROM:指定要检索的表或子查询。
  2. JOIN:根据指定的连接条件执行表之间的连接操作。
  3. ON:指定连接条件。
  4. WHERE:应用筛选条件,仅包括满足条件的行。
  5. GROUP BY:按照指定的列进行分组。
  6. WITH:使用WITH子句定义临时表,通常与递归查询一起使用。
  7. HAVING:对分组后的结果进行筛选。
  8. SELECT:指定要检索的列。
  9. DISTINCT:去除重复的行。
  10. ORDER BY:按照指定的列对结果进行排序。

SQL [Select] 语句完整的执行顺序:

1、from子句组装来自不同数据源的数据; (先join在on)

2、where子句基于指定的条件对记录行进行筛选;

3、group by子句将数据划分为多个分组;

4、使用聚集函数进行计算;

5、使用having子句筛选分组;

6、计算所有的表达式;

7、select 的字段;

8、使用order by对结果集进行排序。

[SQL语言]不同于其他编程语言的最明显特征是处理代码的顺序。在大多数据库语言中,代码按编码顺序被处理。但在SQL语句中,第一个被处理的子句式FROM,而不是第一出现的SELECT。SQL查询处理的步骤序号:

(1) FROM <left_table>

(2) <join_type> JOIN <right_table>

(3) ON <join_condition>

(4) WHERE <where_condition>

(5) GROUP BY <group_by_list>

(6) WITH {CUBE | ROLLUP}

(7) HAVING <having_condition>

(8) SELECT

(9) DISTINCT

(9) ORDER BY <order_by_list>

以上每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只有最后一步生成的表才会会给调用者。如果没有在查询中指定某一个子句,将跳过相应的步骤。

如何查询当前 MySQL 安装的版本号?

使用 SELECT VERSION(); 可以查询当前连接的 MySQL 的版本号。

MySQL查看已知表的建表脚本

show create table 表名;

MySQL:常见命令

这些命令可以帮助您执行各种与MySQL数据库相关的任务,包括创建数据库、创建表、插入数据、修改数据和执行存储过程等操作。

操作类型命令示例
安装 MySQLsudo apt-get install mysql-server(Ubuntu/Debian 系统) sudo yum install mysql-server(RedHat/CentOS 系统)sudo apt-get install mysql-server
启动 MySQL 服务sudo systemctl start mysqlsudo systemctl start mysql
停止 MySQL 服务sudo systemctl stop mysqlsudo systemctl stop mysql
重启 MySQL 服务sudo systemctl restart mysqlsudo systemctl restart mysql
查看 MySQL 服务状态sudo systemctl status mysqlsudo systemctl status mysql
登录 MySQLmysql -u root -pmysql -u root -p
显示所有数据库SHOW DATABASES;SHOW DATABASES;
创建新数据库CREATE DATABASE 数据库名;CREATE DATABASE example_db;
删除数据库DROP DATABASE 数据库名;DROP DATABASE example_db;
选择数据库USE 数据库名;USE example_db;
显示当前数据库中的所有表SHOW TABLES;SHOW TABLES;
查看表的结构DESCRIBE 表名;DESCRIBE users;
创建新表CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...);CREATE TABLE users (id INT, name VARCHAR(100));
删除表DROP TABLE 表名;DROP TABLE users;
向表中插入数据INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);INSERT INTO users (id, name) VALUES (1, 'Alice');
从表中查询数据SELECT * FROM 表名;SELECT * FROM users;
更新表中的数据UPDATE 表名 SET 列1 = 值1, 列2 = 值2 WHERE 条件;UPDATE users SET name = 'Bob' WHERE id = 1;
从表中删除数据DELETE FROM 表名 WHERE 条件;DELETE FROM users WHERE id = 1;
备份数据库mysqldump -u 用户名 -p 数据库名 > 备份文件名.sqlmysqldump -u root -p example_db > backup.sql
恢复数据库mysql -u 用户名 -p 数据库名 < 备份文件名.sqlmysql -u root -p example_db < backup.sql
显示当前用户SELECT USER();SELECT USER();
创建新用户CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
删除用户DROP USER '用户名'@'主机名';DROP USER 'newuser'@'localhost';
授权用户GRANT 权限 ON 数据库.表 TO '用户名'@'主机名';GRANT ALL ON example_db.* TO 'newuser'@'localhost';
撤销权限REVOKE 权限 ON 数据库.表 FROM '用户名'@'主机名';REVOKE ALL ON example_db.* FROM 'newuser'@'localhost';
显示用户权限SHOW GRANTS FOR '用户名'@'主机名';SHOW GRANTS FOR 'newuser'@'localhost';
刷新权限FLUSH PRIVILEGES;FLUSH PRIVILEGES;
更改用户密码ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码';ALTER USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
查看当前活动的连接`SHOW PROCESS

常用Vim命令

命令作用示例/说明
k、j、h、l上、下、左、右
n + k 或者 n + ↑光标向上移动一个字符
n + j 或者 n + ↓光标向下移动一个字符
n + h 或者 n + ←光标向左移动一个字符
n + l 或者 n + →光标向右移动一个字符
gg光标跳转到文件头部
G光标跳转到文件尾部
^跳转到光标所在行行首
$跳转到光标所在行行尾
行号 + G光标跳转到某行开头200G
: + 行号 + 回车光标跳转到某行开头
n + 回车光标向下移动 n
n + w光标向后移动 n 个单词w为word的缩写
n + e光标向后移动第n个单词,并且位于该单词末尾e为end的缩写
ctrl + o光标跳转回之前的位置o为older的缩写
ctrl + i光标返回跳转之前的位置
H光标移动到这个屏幕最上方一行的第一个字符处
M光标移动到这个屏幕中央一行的第一个字符处
L光标移动到这个屏幕最下方一行的第一个字符处
x向后删除一个字符相当于 [del] 按键
X向前删除一个字符相当于 [backspace] 亦即是退格键
n + x连续向后删除 n 个字符
dw从光标处往后删除一个单词注意保证光标在单词最前面,不然只能删除光标后面的部分
d + n + w从光标处往后删除 n 个单词d为delete的缩写,表示删除
dd删除当前行(整行)
n + dd删除光标所在的向下 n 行(包括当前行)
d + gg删除当前行和前面的所有内容(包括当前行)gg 和 1G 作用相同
d + 1 + G同上
d + G删除当前行和后面的所有内容(包括当前行)
d + 0删除当前行光标前面部分直到行首
d + $删除当前行光标处字符到行尾的数据
yy复制当前行y为yank的缩写,表示复制
n + yy从当前位置起,往下复制3行(包括当前行)
v可视化复制,选择需要复制内容,按 y 即可复制根据光标选择
V可视化复制多行按行选择
y + 1 + G复制光标所在行到第一行的所有数据
y + G复制光标所在行到最后一行的所有数据
y + 0复制光标所在的那个字符到该行行首的所有数据
y + $复制光标所在的那个字符到该行行尾的所有数据
p将已复制的数据贴到光标位置的后面
P将已复制的数据贴到光标位置的前面
u撤销
ctrl + r反撤销
a从光标后面开始插入
A会跳到行尾并从光标后面开始插入
i从光标前面开始插入
I会跳到行首并从光标前面开始插入
o会在光标下一行新建空白行插入
O会在光标上一行新建空白行插入
f + 查找字符查找当前行中下一个出现的字符fa,查找当前行中下一个出现的字符 a,如果上次使用 f 命令查找字符 a,则按 ; 会再次查找下一个出现的字符 a,按 , 会查找上一个出现的字符 a
f 命令与操作符 dcy 可以结合使用
比如 d + f + 查找字符,删除光标到当前行下一个出现的查找字符处的数据
0

评论区