数据库语法复习

总结:

DDL(数据定义语言)

  • CREATE DATABASE:创建一个新的数据库。
  • DROP DATABASE:删除一个数据库。
  • CREATE TABLE:创建一个新的表。
  • DROP TABLE:删除一个表。
  • ALTER TABLE:修改表的结构,如添加、删除或修改列。

DML(数据操作语言)

  • INSERT INTO:向表中插入新记录。
  • SELECT:从表中检索数据。
  • UPDATE:修改表中的现有记录。
  • DELETE:从表中删除记录。

DQL(数据查询语言)

  • 实际上是DML的一部分,但常用来特别指代SELECT命令及其相关操作(如聚合函数、排序、分组等)。

TCL(事务控制语言)

  • BEGIN TRANSACTION(或START TRANSACTION):开始一个新的事务。
  • COMMIT:提交当前事务,使其更改永久化。
  • ROLLBACK:撤销当前事务的更改。

DCL(数据控制语言)

  • GRANT:授予用户或角色对数据库对象的权限。
  • REVOKE:撤销用户或角色对数据库对象的权限。

1.创建数据库

CREATE DATABASE database_name;

2.删除数据库

DROP DATABASE database_name;

3.选择数据库

USE database_name;

4.创建表

CREATE TABLE table_name (

column1 datatype,

column2 datatype,

column3 datatype,

.... );

5.删除表

DROP TABLE table_name;

6.插入数据

INSERT INTO table_name (column1, column2, column3, ...)

VALUES (value1, value2, value3, ...);

7.查询数据

SELECT column1, column2, ...

FROM table_name

WHERE condition;

8.更新数据

UPDATE table_name

SET column1 = value1, column2 = value2, ...

WHERE condition;

9.删除数据

DELETE FROM table_name WHERE condition;

10条件语句

    • 等于: =
    • 不等于: <>!=
    • 大于: >
    • 小于: <
    • 大于等于: >=
    • 小于等于: <=
    • AND, OR, NOT 用于组合条件

11.排序

SELECT column1, column2, ...

FROM table_name

ORDER BY column1

ASC|DESC;

12.聚合函数

    • COUNT(): 计算行数
    • SUM(): 计算总和
    • AVG(): 计算平均值
    • MAX(): 返回最大值
    • MIN(): 返回最小值

13.分组

SELECT column_name(s), aggregate_function(column_name)

FROM table_name

WHERE condition

GROUP BY column_name(s);

​​​​​​​14.连接表

    • INNER JOIN: 返回两个表中都有的记录
    • LEFT JOIN: 返回左表中的所有记录,以及右表中匹配的记录
    • RIGHT JOIN: 返回右表中的所有记录,以及左表中匹配的记录
    • FULL JOIN: 返回左表和右表中的所有记录,如果某一边没有匹配,则结果中对应字段为空

15.创建索引

CREATE INDEX index_name ON table_name (column1, column2, ...);

16.删除索引

DROP INDEX index_name ON table_name;

17.修改表结构

  • 添加列: ALTER TABLE table_name ADD column_name datatype;
  • 删除列: ALTER TABLE table_name DROP COLUMN column_name;
  • 修改列: ALTER TABLE table_name MODIFY COLUMN column_name new_datatype; (注意:不是所有数据库系统都支持MODIFY COLUMN)
  • 重命名列: 这通常需要一个两步过程,首先添加一个新列,然后将旧列的数据复制到新列,最后删除旧列。但某些数据库系统(如MySQL)提供了重命名列的直接方法。

18.事务管理

  • 开始事务: BEGIN;START TRANSACTION;
  • 提交事务: COMMIT;
  • 回滚事务: ROLLBACK;
sql 复制代码
数据库语法通常指的是用于管理和操作数据库的各种命令和语句。
这些语法因不同的数据库管理系统(DBMS)而异,但大多数关系
型数据库管理系统(RDBMS)都支持SQL(结构化查询语言)作
为其核心语言。以下是一些常见的数据库语法示例,这些示例在
大多数RDBMS中都是通用的或相似的:

1. DDL (数据定义语言)
创建数据库

sql
CREATE DATABASE database_name;
删除数据库

sql
DROP DATABASE database_name;
创建表

sql
CREATE TABLE table_name (  
    column1 datatype,  
    column2 datatype,  
    ...  
);
删除表

sql
DROP TABLE table_name;
修改表结构

sql
-- 添加列  
ALTER TABLE table_name ADD column_name datatype;  
  
-- 删除列  
ALTER TABLE table_name DROP COLUMN column_name;  
  
-- 修改列的数据类型  
ALTER TABLE table_name ALTER COLUMN column_name new_datatype;
2. DML (数据操作语言)
插入数据

sql
INSERT INTO table_name (column1, column2, ...)  
VALUES (value1, value2, ...);
查询数据

sql
SELECT column1, column2, ...  
FROM table_name  
WHERE condition;
更新数据

sql
UPDATE table_name  
SET column1 = value1, column2 = value2, ...  
WHERE condition;
删除数据

sql
DELETE FROM table_name WHERE condition;
3. DQL (数据查询语言)
聚合函数

sql
SELECT COUNT(column_name), AVG(column_name), ...  
FROM table_name  
WHERE condition;
排序

sql
SELECT column1, column2, ...  
FROM table_name  
ORDER BY column1 ASC|DESC;
分组

sql
SELECT column_name(s), aggregate_function(column_name)  
FROM table_name  
WHERE condition  
GROUP BY column_name(s);
4. TCL (事务控制语言)
开始事务

sql
BEGIN TRANSACTION;
提交事务

sql
COMMIT;
回滚事务

sql
ROLLBACK;
5. DCL (数据控制语言)
创建用户 (在SQL Server中)

sql
CREATE LOGIN login_name WITH PASSWORD = 'password';  
CREATE USER username FOR LOGIN login_name;
授予权限

sql
GRANT permission ON object TO user_or_role;
撤销权限

sql
REVOKE permission ON object FROM user_or_role;
请注意,上述语法示例在不同的DBMS中可能有所差异。
例如,某些数据库系统可能使用不同的关键字或语法来
执行相同的操作。因此,在使用特定的DBMS时,建议查阅该
DBMS的官方文档以获取准确的语法和用法信息。
相关推荐
MrZhangBaby6 分钟前
SQL-leetcode—1158. 市场分析 I
java·sql·leetcode
东软吴彦祖13 分钟前
包安装利用 LNMP 实现 phpMyAdmin 的负载均衡并利用Redis实现会话保持nginx
linux·redis·mysql·nginx·缓存·负载均衡
慵懒的猫mi1 小时前
deepin分享-Linux & Windows 双系统时间不一致解决方案
linux·运维·windows·mysql·deepin
小高不明2 小时前
仿 RabbitMQ 的消息队列2(实战项目)
java·数据库·spring boot·spring·rabbitmq·mvc
DZSpace2 小时前
使用 Helm 安装 Redis 集群
数据库·redis·缓存
张飞光2 小时前
MongoDB 创建集合
数据库·mongodb
Hello Dam2 小时前
接口 V2 完善:基于责任链模式、Canal 监听 Binlog 实现数据库、缓存的库存最终一致性
数据库·缓存·canal·binlog·责任链模式·数据一致性
张飞光2 小时前
MongoDB 创建数据库
数据库·mongodb·oracle
摘星怪sec3 小时前
【漏洞复现】|方正畅享全媒体新闻采编系统reportCenter.do/screen.do存在SQL注入
数据库·sql·web安全·媒体·漏洞复现
基哥的奋斗历程3 小时前
学到一些小知识关于Maven 与 logback 与 jpa 日志
java·数据库·maven