当前位置:网站首页>SQL语言
SQL语言
2022-07-04 12:39:00 【游戏编程】
SQL语言
语法基础
注释
# 使用'#'注释-- 使用'--'注释/*多行注释*/创建使用数据库
CREATE DATABASE db01;USE db01;创建表
CREATE TABLE table01 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, col1 INT NOT NULL DEFAULT 1, col2 VARCHAR(45) NULL, col3 DATE NULL);修改表
# 添加新列ALTER TABLE table01 ADD col CHAR(20);# 修改列 ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段类型 约束条件ALTER TABLE table01 CHANGE col col4 CHAR(32) NOT NULL DEFAULT 'xxx';# 删除列ALTER TABLE table01 DROP COLUMN col4;# 删除表DROP TABLE table01;增删改
# 添加数据INSERT INTO table01(col1, col2)VALUES(val1, val2);# 表数据迁移CREATE TABLE newtable ASSELECT * FROM table01;# 更新UPDATE table01SET col = valWHERE 条件;# 删除DELETE FROM table01WHERE 条件;查询
基础
# 去重SELECT DISTINCT * FROM table01;# 限制返回SELECT * FROM table01 LIMIT 5, 2; # 从5开始(不包括5)返回两行数据,即6,7# 排序 ASC升序,DESC降序SELECT * FROM table01ORDER BY col1 DESC, col2 ASC;# 筛选SELECT * FROM table01 WHERE 条件;计算字段
| 函 数 | 说 明 |
|---|---|
| AVG() | 返回某列的平均值 |
| COUNT() | 返回某列的行数 |
| MAX() | 返回某列的最大值 |
| MIN() | 返回某列的最小值 |
| SUM() | 返回某列值之和 |
# 举例:计算去重的col1列的均值命名为avg_colSELECT AVG(DISTINCT col1) AS avg_colFROM table01;文本处理
可以使用 LIKE + 正则表达式 筛选文本
SELECT *FROM table01WHERE col1 LIKE '[^AB]%'; -- 不以 A 和 B 开头的任意文本还可以使用一些函数进行文本处理:
| 函数 | 说明 |
|---|---|
| LEFT() | 左边的字符 |
| RIGHT() | 右边的字符 |
| LOWER() | 转换为小写字符 |
| UPPER() | 转换为大写字符 |
| LTRIM() | 去除左边的空格 |
| RTRIM() | 去除右边的空格 |
| LENGTH() | 长度 |
| SOUNDEX() | 将一个字符串转换为描述其语音表示的字母数字模式 |
分组
分组就是把具有相同的数据值的行放在同一组中。可以对同一分组数据使用汇总函数进行处理。
WHERE 过滤行,HAVING 过滤分组,行过滤应当先于分组过滤。
SELECT col1, COUNT(*) AS numFROM table01WHERE col1 > 2GROUP BY col1HAVING num >= 2;还需要注意以下几点
- GROUP BY 子句出现在 WHERE 子句之后,ORDER BY 子句之前;
除了汇总字段外,SELECT 语句中的每一字段都必须在 GROUP BY 子句中给出;
NULL 的行会单独分为一组;
大多数 SQL 实现不支持 GROUP BY 列具有可变长度的数据类型。
子查询
子查询中只能返回一个字段的数据。可以将子查询的结果作为 WHRER 语句的过滤条件:
SELECT *FROM table01WHERE col1 IN (SELECT col1 FROM table02);连接查询
连接用于连接多个表,使用 JOIN 关键字,并且条件语句使用 ON 而不是 WHERE。
等值连接:
SELECT A.value, B.valueFROM tablea AS A INNER JOIN tableb AS BON A.key = B.key;也可以不明确使用 INNER JOIN,而使用普通查询并在 WHERE 中将两个表中要连接的列用等值方法连接起来。
SELECT A.value, B.valueFROM tablea AS A, tableb AS BWHERE A.key = B.key;自然连接:
自然连接是把同名列通过等值测试连接起来的,同名列可以有多个。
SELECT A.value, B.valueFROM tablea AS A NATURAL JOIN tableb AS B;外连接:
分为左外连接,右外连接以及全外连接,左外连接就是保留左表没有关联的行,右外连接同理。
SELECT A.value, B.valueFROM tablea AS A LEFT OUTER JOIN tableb as bON A.col1 = B.col1;组合查询
使用 UNION 来组合两个查询,如果第一个查询返回 M 行,第二个查询返回 N 行,那么组合查询的结果一般为 M+N 行。每个查询必须包含相同的列、表达式和聚集函数。
默认会去除相同行,如果需要保留相同行,使用 UNION ALL。
SELECT *FROM table01WHERE col1 = 1UNIONSELECT *FROM table01WHERE col1 =2;使用视图查询
视图是虚拟的表,本身不包含数据,也就不能对其进行索引操作。对视图的操作和对普通表的操作一样。
下面是一个简单的视图创建:
CREATE VIEW myview ASSELECT 语句;权限管理
在mysql中,账户信息保存在 mysql 这个数据库中
USE mysql;SELECT * FROM user;账户操作
# 创建一个账户CREATE USER myuser IDENTIFIED BY '密码';# 修改用户名RENAME myuser TO newname;# 删除用户DROP USER newname;# 查看权限SHOW GRANTS FOR myuser;# 授权GRANT SELECT, INSERT ON mydatabase.* TO myuser;# 删除权限REVOKE SELECT, INSERT ON mydatabase.* FROM myuser;# 更改密码SET PASSWROD FOR myuser = Password('new_password');作者:S++
游戏编程,一个游戏开发收藏夹~
如果图片长时间未显示,请使用Chrome内核浏览器。
边栏推荐
- Meituan Ali's Application Practice on multimodal recall
- Dry goods sorting! How about the development trend of ERP in the manufacturing industry? It's enough to read this article
- Master the use of auto analyze in data warehouse
- iptables基础及Samba配置举例
- Reading cognitive Awakening
- Use fail2ban to prevent password attempts
- Dgraph: large scale dynamic graph dataset
- 使用 NSProxy 实现消息转发
- C#/VB.NET 给PDF文档添加文本/图像水印
- BackgroundWorker用法示例
猜你喜欢
随机推荐
从0到1建设智能灰度数据体系:以vivo游戏中心为例
CVPR 2022 | transfusion: Lidar camera fusion for 3D target detection with transformer
Efficient! Build FTP working environment with virtual users
C language function
After the game starts, you will be prompted to install HMS core. Click Cancel, and you will not be prompted to install HMS core again (initialization failure returns 907135003)
C fonctions linguistiques
Detailed explanation of mt4api documentary and foreign exchange API documentary interfaces
众昂矿业:为保障萤石足量供应,开源节流势在必行
Daily Mathematics Series 57: February 26
DGraph: 大规模动态图数据集
再说rsync+inotify实现数据的实时备份
Building intelligent gray-scale data system from 0 to 1: Taking vivo game center as an example
It is six orders of magnitude faster than the quantum chemical method. An adiabatic artificial neural network method based on adiabatic state can accelerate the simulation of dual nitrogen benzene der
Besides, rsync+inotify realizes real-time backup of data
实战:fabric 用户证书吊销操作流程
eclipse链接数据库中测试SQL语句删除出现SQL语句语法错误
Runc hang causes the kubernetes node notready
PostgreSQL 9.1 soaring Road
After installing vscode, the program runs (an include error is detected, please update the includepath, which has been solved for this translation unit (waveform curve is disabled) and (the source fil
Interviewer: what is the difference between redis expiration deletion strategy and memory obsolescence strategy?









