SQL语句的基本语法和结构

1、 CREATE语句

用于创建新表,基本语法如下: 

CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
...);
  • table_name:需要创建的表名。
  • column1, column2, column3, …:需要创建的列名和对应的数据类型。
示例

创建一个名为"students"的表,包含以下字段:

  • id: 学号,整型,主键
  • name: 姓名,字符串类型,最大长度为30
  • gender: 性别,字符串类型,最大长度为10
  • age: 年龄,整型
  • major: 专业,字符串类型,最大长度为50

那么对应的SQL语句如下:

CREATE TABLE students (
  id INTEGER PRIMARY KEY,
  name VARCHAR(30),
  gender VARCHAR(10),
  age INTEGER,
  major VARCHAR(50)
);

2、 INSERT语句

用于向表中插入新数据,基本语法如下:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  • table_name:需要插入数据的表名。
  • column1, column2, column3, …:需要插入数据的列名。
  • value1, value2, value3, …:需要插入的数据值。
示例

假设表格我们已经创建好,有五个字段分别为id、name、gender、age、major,我们需要向表格中插入一条记录,其中id为1,name为"Tom",gender为"male",age为18,major为"Computer Science",则可以使用以下 SQL 语句:

sqlCopy codeINSERT INTO student (id, name, gender, age, major)
VALUES (1, 'Tom', 'male', 18, 'Computer Science');

注意,在 SQL 语句中,字符串类型的值需要用单引号括起来,而数值类型的值则不需要。此外,如果表格中定义了自增长的主键,那么在插入记录时可以不用指定主键的值,如下所示:

sqlCopy codeINSERT INTO student (name, gender, age, major)
VALUES ('Tom', 'male', 18, 'Computer Science');

这样,数据库会自动为主键生成一个唯一的值。

3、 SELECT语句

用于从表中查询数据,基本语法如下:

SELECT column_name(s)
FROM table_name
WHERE condition
ORDER BY column_name ASC|DESC
LIMIT n;

column_name:需要查询的列名,可以是一个或多个,用逗号分隔。

  • table_name:需要查询的表名。
  • condition:用于筛选数据的条件,可以是一个或多个。
  • ORDER BY:按指定列排序,可以选择升序(ASC)或降序(DESC)。
  • LIMIT:用于限制查询结果的数量。
示例

下面的示例是从student表格中选择学生的姓名、年龄和专业,其中年龄大于20岁,按照年龄从大到小排序,最多返回10个结果

SELECT name, age, major
FROM student
WHERE age > 20
ORDER BY age DESC
LIMIT 10;

4、UPDATE语句

用于更新表中已有数据,基本语法如下:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

table_name:需要更新数据的表名。

  • column1 = value1, column2 = value2, …:需要更新的列名和对应的数据值。
  • condition:用于筛选需要更新的数据的条件。
示例

更新student表中学号为"001"的记录中的姓名为"张三"为例:

UPDATE student
SET name = '张三'
WHERE id = '001';

其中,student为表名,name为要更新的字段名,'张三’为要更新成的值,id为用于筛选需要更新的记录的条件字段,'001’为筛选条件的值。

5、 DELETE语句

用于从表中删除数据,基本语法如下:

DELETE FROM table_name
WHERE condition;
  • table_name:需要删除数据的表名。
  • condition:用于筛选需要删除的数据的条件。
示例

假设有一个student表,其中有一列为id,你想要删除id为1的学生的记录,可以使用以下语句:

DELETE FROM student
WHERE id = 1;

6、DROP语句

用于删除已有表,基本语法如下:

DROP TABLE table_name;
  • table_name:需要删除的表名。
示例
DROP TABLE student; # 删除名为student的表格

7、SQL约束

  • CHECK:用于指定列的值必须符合指定的条件。例如,可以使用 CHECK 约束来确保列中的值在一定的范围内或符合特定的模式。
  • FOREIGN KEY:用于指定与其他表格中的列存在关联关系。外键可以确保数据的一致性,防止不合法的操作。
  • PRIMARY KEY:用于指定表格中的唯一标识符。每个表格只能有一个主键,主键可以用来唯一地标识表格中的每行数据。
  • UNIQUE:用于指定列的值必须唯一。与 PRIMARY KEY 相比,UNIQUE 约束可以允许空值。
  • NOT NULL:用于指定列的值不能为空。在创建表格时,如果未指定该约束,则列可以包含 NULL 值。

示例

CREATE TABLE student (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT CHECK (age > 0 AND age < 100),
    major VARCHAR(50),
    class_id INT,
    FOREIGN KEY (class_id) REFERENCES class(id),
    UNIQUE (name, age)
);

在这个示例中,表格 student 包含了五个列,每列的约束如下:

  • id 列指定为主键,确保每行数据的唯一性,数据是唯一的,不能做改变。
  • name 列指定为 NOT NULL 约束,确保列的值不能为空。
  • age 列指定为 CHECK 约束,确保列的值在 0 到 100 之间。
  • major 列没有指定约束,可以包含 NULL 值。
  • class_id 列指定为 FOREIGN KEY 约束,确保列的值与 class 表格中的 id 列关联。
  • name 和 age 列指定为 UNIQUE 约束,确保这两列的组合值唯一。
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐