SQL基础入门——SQL基础语法

1. 数据库、表、列的创建与管理

在SQL中,数据库是一个数据的集合,包含了多个表、视图、索引、存储过程等对象。每个表由若干列(字段)组成,表中的数据行代表记录。管理数据库和表的结构是SQL的基础操作。

1.1 创建数据库

SQL中使用 CREATE DATABASE 语句来创建一个新的数据库。数据库创建后,可以在该数据库中执行其他SQL操作。

sql 复制代码
CREATE DATABASE IF NOT EXISTS database_name;
  • IF NOT EXISTS:如果数据库已经存在,则不执行任何操作。
  • database_name:数据库的名称,需遵循数据库命名规范。
1.2 删除数据库

可以使用 DROP DATABASE 删除数据库,删除数据库将清除所有数据和表。

sql 复制代码
DROP DATABASE IF EXISTS database_name;
  • IF EXISTS:如果数据库存在,则删除,否则不执行任何操作。
1.3 创建表

创建表是SQL的基本操作之一。CREATE TABLE 语句用于定义表的结构,包括表的列、数据类型及其他约束条件。

  • table_name:表名。
  • column1, column2:列名。
  • datatype:列的数据类型(如 INTVARCHAR(255)DATE 等)。
  • constraint:列的约束(如 PRIMARY KEY, NOT NULL, UNIQUE 等)。

示例:创建一个简单的用户表。

sql 复制代码
CREATE TABLE users (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  • user_id:整数类型,自动递增,并作为主键。
  • username:字符串类型,不能为空且唯一。
  • password:字符串类型,不能为空。
  • email:字符串类型,可为空。
  • created_at:时间戳,默认值为当前时间。
1.4 删除表

使用 DROP TABLE 删除表,删除表将删除表中的所有数据及结构。

sql 复制代码
DROP TABLE IF EXISTS table_name;
1.5 修改表结构

有时我们需要修改已经创建的表,可以使用 ALTER TABLE 语句。

  • 添加列
sql 复制代码
ALTER TABLE table_name ADD column_name datatype [constraint];
  • 删除列
sql 复制代码
ALTER TABLE table_name DROP COLUMN column_name;
  • 修改列
sql 复制代码
ALTER TABLE table_name MODIFY COLUMN column_name new_datatype [constraint];

示例 :向 users 表中添加一个 age 列:

sql 复制代码
ALTER TABLE users ADD age INT;
2. 基本的SQL语句:SELECT, INSERT, UPDATE, DELETE

SQL的核心操作是数据查询(SELECT)、数据插入(INSERT)、数据更新(UPDATE)和数据删除(DELETE)。

2.1 SELECT:查询数据

SELECT 语句用于从一个或多个表中查询数据,支持多种查询操作,如选择列、过滤数据、排序等。

  • 基础查询
sql 复制代码
SELECT column1, column2, ... FROM table_name;
  • 查询所有列
sql 复制代码
SELECT * FROM table_name;
  • 查询条件
sql 复制代码
SELECT column1, column2 FROM table_name WHERE condition;
  • 示例 :查询 users 表中所有用户名和电子邮件地址:
sql 复制代码
SELECT username, email FROM users;
2.2 INSERT:插入数据

INSERT 语句用于向表中插入数据。可以一次插入一行或多行数据。

  • 插入单行数据
sql 复制代码
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
  • 插入多行数据
sql 复制代码
INSERT INTO table_name (column1, column2, ...) 
VALUES (value1a, value2a, ...),
       (value1b, value2b, ...),
       ...;

示例 :向 users 表插入一个新的用户:

sql 复制代码
INSERT INTO users (username, password, email) 
VALUES ('john_doe', 'password123', 'john.doe@example.com');
2.3 UPDATE:更新数据

UPDATE 语句用于修改表中已存在的记录。通过 WHERE 子句指定要更新的记录。

  • 更新单行或多行数据
sql 复制代码
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;

示例 :更新 users 表中 john_doe 用户的电子邮件地址:

sql 复制代码
UPDATE users SET email = 'john.doe@newdomain.com' WHERE username = 'john_doe';

注意 :如果省略 WHERE 子句,所有记录都会被更新。因此,在执行 UPDATE 操作时要特别小心,避免错误地更新所有记录。

2.4 DELETE:删除数据

DELETE 语句用于删除表中的一条或多条记录。和 UPDATE 一样,WHERE 子句用于指定删除条件。

  • 删除单行或多行数据
sql 复制代码
DELETE FROM table_name WHERE condition;

示例 :删除 users 表中 john_doe 用户的数据:

sql 复制代码
DELETE FROM users WHERE username = 'john_doe';

注意 :如果省略 WHERE 子句,所有记录都会被删除。使用时需要格外小心,避免删除整个表的数据。

3. WHERE 子句、排序和分组(ORDER BY, GROUP BY)

SQL的 WHERE 子句用于过滤查询结果,ORDER BY 用于排序结果,GROUP BY 用于对结果进行分组操作。

3.1 WHERE 子句:条件过滤

WHERE 子句用于指定查询的条件,仅返回符合条件的记录。它支持多种条件操作符和逻辑运算符。

  • 常见条件运算符

    • =:等于
    • <>!=:不等于
    • >:大于
    • <:小于
    • >=:大于等于
    • <=:小于等于
    • BETWEEN ... AND ...:在某范围内
    • IN:在某一集合内
    • LIKE:模式匹配(常用于字符串)
    • IS NULL:为空
  • 示例:查询年龄大于25岁的所有用户:

sql 复制代码
SELECT username, age FROM users WHERE age > 25;
  • 组合多个条件 :使用 AND, OR 组合多个条件。
sql 复制代码
SELECT * FROM users WHERE age > 25 AND email LIKE '%@example.com';
3.2 ORDER BY:排序

ORDER BY 用于对查询结果进行排序,默认按升序排列(ASC),如果需要降序排列,则使用 DESC

  • 按升序排序
sql 复制代码
SELECT * FROM users ORDER BY age;
  • 按降序排序
sql 复制代码
SELECT * FROM users ORDER BY age DESC;
  • 多列排序:可以指定多个列进行排序。
sql 复制代码
SELECT * FROM users ORDER BY age DESC, username ASC;
3.3 GROUP BY:分组

GROUP BY 用于将查询结果按某一列的值进行分组,并且常与聚合函数(如 COUNTSUMAVGMAXMIN 等)一起使用。

  • 基础分组查询
sql 复制代码
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
  • 示例 :统计 users 表中每个年龄段的用户数量:
sql 复制代码
SELECT age, COUNT(*) FROM users GROUP BY age;
  • 使用 HAVING 进行条件过滤HAVING 用于过滤分组后的结果,它通常与 GROUP BY 一起使用,而 WHERE 子句用于过滤原始数据。
sql 复制代码
SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) > 1;
总结

SQL基础语法是关系型数据库的核心,涉及数据库的创建、表结构的定义、数据的增删改查等操作。掌握这些基本语法是每位开发者与数据库高效交互的基础。在实际开发中,熟练使用 SELECT 查询语句、INSERT 插入数据、UPDATE 更新数据、DELETE 删除数据以及合理利用 WHERE 子句、排序(ORDER BY)和分组(GROUP BY)能够大大提高开发效率和查询

相关推荐
Leo Han14 分钟前
Spring中实现动态数据源切换,基于AbstractRoutingDataSource
java·数据库·spring
捂月20 分钟前
spring boot有哪些不足之处?
数据库·spring boot·sql
好记忆不如烂笔头abc43 分钟前
How Do Indexes Become Unusable? (Doc ID 1054736.6)
oracle
冰零(lane)1 小时前
Spring Boot 动态数据源切换
java·数据库·spring boot
所待.3831 小时前
MySQL之视图
android·数据库·mysql
xuanloyer1 小时前
Oracle 深入学习 Part 10: Managing Undo Data(管理Undo数据)
开发语言·数据库·oracle
tjsoft2 小时前
delphi 12 webserver post数据与对应的接收方式
服务器·前端·数据库
Lostgreen2 小时前
图数据库 & Cypher语言
大数据·数据库·笔记
Mephisto.java2 小时前
【大数据学习 | Spark-SQL】SparkSQL读写数据
大数据·hadoop·sql·oracle·spark·json