当前位置: 首页 > news >正文

SQL ③-基本语法

在这里插入图片描述

SQL基本语法

表操作

创建表

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ...
);

删除表

DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name...];

TEMPORARY:表示临时表,仅在当前会话有效,关闭会话后该表自动删除。

IF EXISTS:如果表不存在,则创建,否则不创建。

修改表

ALTER TABLE table_name
ADD column_name datatype constraint;

ALTER TABLE table_name
DROP COLUMN column_name;

ALTER TABLE table_name
MODIFY column_name datatype constraint;

显示表结构

DESC table_name;

数据操作

插入数据

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...);

查询数据

SELECT column1, column2, column3,...
FROM table_name;

对查询列对应的字段进行算术运算并且使用 AS 给列起别名。

SELECT <column1 + column2 AS sum_column | column1 + 10 AS c1Add10, column2>
FROM table_name;

对查询的结果进行去重:DISTINCT

SELECT DISTINCT column1, column2, column3,...
FROM table_name;

对查询结果进行排序:ORDER BY

SELECT column1, column2, column3,...
FROM table_name
ORDER BY column1 [DESC | ASC] [, column2 [DESC | ASC]...];

DESC:降序,ASC:升序。

条件查询
SELECT column1, column2, column3,...
FROM table_name
WHERE condition;

condition:条件表达式,可以是比较运算符、逻辑运算符、函数等:

  • >, >=, <, <=:比较运算符。
  • =:等于,NULL不安全,例如 NULL = NULL 的结果是 NULL。
  • <=>:等于,NULL安全,例如 NULL <=> NULL 的结果是 TRUE(1)。
  • !=, <>:不等于。
  • BETWEEN a0 AND a1:范围匹配,[a0, a1],如果 a0 <= val <= a1,则返回 TRUE(1)。
  • IN (option, ...):值匹配,如果是option中的任意一个,则返回 TRUE(1)。
  • IS NULL:是 NULL。
  • IS NOT NULL:不是 NULL。
  • LIKE:模糊匹配,%表示任意多个,包括零个任意字符,_表示任意一个字符。
  • 逻辑运算符:
    • AND:与。
    • OR:或。
    • NOT:非。
分页查询
SELECT column1, column2, column3,...
FROM table_name
LIMIT [offset,] row_count;

offset:偏移量,从第几行开始查询,默认为0。

row_count:查询的行数。

更新数据

UPDATE table_name
SET column1 = value1, column2 = value2, column3 = value3,...
[WHERE condition]
[ORDER BY ...]
[LIMIT ...];

删除数据

DELETE FROM table_name
[WHERE condition]
[ORDER BY ...]
[LIMIT ...];

数据约束

NOT NULL

非空约束,字段不能为空。

字段不能为空。

CREATE TABLE table_name (
    column1 datatype NOT NULL,
);

UNIQUE

唯一约束,字段值必须唯一。

字段值必须唯一。

CREATE TABLE table_name (
    column1 datatype UNIQUE,
);

PRIMARY KEY

主键约束,字段值必须唯一并且不能为NULL。是 NOT NULLUNIQUE 的组合。

字段值必须唯一并且不能为NULL。

通常给主键字段加上 AUTO_INCREMENT 属性。

CREATE TABLE table_name (
    column1 datatype PRIMARY KEY AUTO_INCREMENT,
);

复合主键,可以指定多个字段作为主键。

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    PRIMARY KEY (column1, column2)
);

FOREIGN KEY

外键约束,字段值必须存在于另一张表的主键值。

字段值必须存在于另一张表的主键值。

FOREIGN KEY (字段名) references 主表名(列)

CREATE TABLE table_name (
    column1 datatype,
);
CREATE TABLE table_name2 (
    column2 datatype,
    FOREIGN KEY (column2) references table_name(column1)
);

DEFAULT

默认约束,字段值如果没有指定,则使用默认值。

字段值如果没有指定,则使用默认值。

DEFAULT value

CREATE TABLE table_name (
    column1 datatype DEFAULT value,
);

CHECK

检查约束,字段值必须满足一定条件。

字段值必须满足一定条件。

CHECK (condition)

CREATE TABLE table_name (
    column1 datatype CHECK (column1 > 0),
    gender datatype CHECK (gender = 'M' or gender = 'F')
);

相关文章:

  • 数据库如何确定或计算 LSN(日志序列号)
  • 【Python】分析图标可视化visualization - 详解 1期
  • 解锁气象行业 UI 设计密码,打造极致用户体验
  • oracle 数据库字段类型为NUMBER(5,2)时,并且数据库值为0.1,为什么Java执行SQL查出来时为“.1“?
  • git分支合并信息查看
  • Spring MVC 国际化机制详解(MessageSource 接口体系)
  • 无人机镜头镜片进行防雾测试的意义和目的
  • DeepSeek 在金融领域的应用解决方案
  • 使用 kind 创建 K8s 集群并部署 StarRocks 的完整指南
  • 树莓派5从零开发至脱机脚本运行教程——5.硬件模块测试篇
  • SpringAOP新链浅析
  • Android中系统服务和bind的应用服务有什么区别?
  • MATLAB基于统计特征与指数退化模型的风力发电机高速轴承剩余寿命预测
  • rustdesk自建服务器怎么填写客户端配置信息
  • Go 语言范围 (Range)
  • 课程7. 机器学习的集成算法
  • zk基础—zk实现分布式功能
  • Spring 核心注解深度解析:@Autowired、@Repository 与它们的协作关系
  • VSCode英文翻译插件:变量命名、翻单词、翻句子
  • 正点原子 迷你 miniSTM32用ST link烧录后程序不运行(已解决)
  • seo怎么优化一个网站/广告推广软文案例
  • 重庆市政府官方网站/交换友情链接吧
  • 网站建设yu/网络推广有前途吗
  • 网站备案 英文/网站优化seo怎么做
  • 成都信用体系建设网站/百度广告推广费用
  • 网站的制作步骤包括/会计培训班要多少钱