SQL基础

本文详细介绍了SQL的基础概念,包括NOTNULL、DEFAULT、UNIQUE、主键和外键约束,以及SELECT、INSERT、UPDATE、DELETE等基本操作,同时还涵盖了WHERE、LIKE、ORDERBY、INSERTINTO和UPDATE语句的使用示例和SQL运算符的讲解。
摘要由CSDN通过智能技术生成

SQL基础

  1. 字段——列,记录——行

  2. 空值——具有空值的字段是在创建记录时留空的字段。

  3. SQL约束
    • NOT NULL约束:保证列中数据不能有 NULL 值
    • DEFAULT约束:提供该列数据未指定时所采用的默认值
    • UNIQUE约束:保证列中的所有数据各不相同
    • 主键约束:唯一标识数据表中的行/记录
    • 外键约束:唯一标识其他表中的一条行/记录
    • CHECK约束:此约束保证列中的所有值满足某一条件
    • 索引:用于在数据库中快速创建或检索数据
  4. SQL语法
    • 关键字:SELECT INSERT UPDATE DELETE DROP CREATE
    • SQL语句以分号结尾
    • SQL不区分大小写
  5. 一些重要的SQL命令
    • SELECT - 从数据库中提取数据
    • UPDATE - 更新数据库中的数据
    • DELETE - 从数据库中删除数据
    • INSERT INTO - 向数据库中插入新数据
    • CREATE DATABASE - 创建新数据库
    • ALTER DATABASE - 修改数据库
    • CREATE TABLE - 创建新表
    • ALTER TABLE - 变更(改变)数据库表
    • DROP TABLE - 删除表
    • CREATE INDEX - 创建索引(搜索键)
    • DROP INDEX - 删除索引
  6. SQL语句
    • SELECT * FROM Customers ——选择“Customers”表中的所有记录
  7. SELECT语法
    --选择多个字段
    SELECT column1, column2,...
    FROM table_name;
    
    
    --选择所有字段
    SELECT * FROM table_name;
    
    
    --例子
    SELECT city FROM Customers;  --检索一列
    SELECT CustomerName, city FROM Customers;  --检索多列
    SELECT * FROM Customers;  --检索所有列
    
  8. SELECT DISTINCT语法
    --SELECT DISTINCT语法用于仅返回不同的(different)值。
    SELECT DISTINCT column1, column2, ...
    FROM table_name;
    
    
    --例子
    SELECT DISTINCT Country FROM Customers;
    
    
    --以下SQL语句列出了不同(distinct)客户国家的数量:
    --但是在Firefox和Microsoft Edge中不起作用
    SELECT COUNT(DISTINCT Country) FROM Customers;
    
  9. SQL WHERE 语法
    --用于select语法
    SELECT column1, column2, ...
    FROM table_name
    WHERE conditions;
    
    
    --用于update语法
    UPDATE "table_name"
    SET "column_1" = [new value]
    WHERE "conditions";
    
    
    --eg
    --从"Customers"表中选择其国家为"Mexico"的所有客户
    SELECT * FROM Customers
    WHERE Country = 'Mexico';
    
    SELECT * FROM Customers
    WHERE Country = 'Mexico' OR PostalCode = '05021';
    
    
    --文本字段使用单引号,数值字段不用引号
    SELECT * FROM Customers
    WHERE CustomerID = 1;
    
    
    --where子句中的运算符
    < >:不等于
    BETWEEN:在某个范围内
    LIKE:搜索某种模式
    IN:为列指定多个可能的值
    
  10. AND, OR and NOT
    --AND语法
    SELECT column1, column2, ...
    FROM table_name
    WHERE condition1 AND condition2 AND conditions ...;
    
    
    --OR语法
    SELECT column1, colummn2,...
    FROM table_name
    WHERE condition1 OR condition2 OR condition3 ...;
    
    
    --NOT语法
    SELECT column1, column2, ...
    FROM table_name
    WHERE NOT condition;
    
    
    --从 "Customers" 表中选择其国家为 "Germany" 、其城市为"Berlin" 的所有客户
    SELECT * FROM Customers
    WHERE Country = 'Germany' 
    AND City = 'Berlin';
    
    
    --选择城市为“Berlin”或“München”的“Customers”的所有字段
    SELECT * FROM Customers
    WHERE City='Berlin' OR City='München';
    
    
    --以下SQL语句选择国家不是 "Germany"的"Customers"的所有字段
    SELECT * FROM Customers
    WHERE NOT Country='Germany';
    
    
    --结合AND和OR,从国家 "Germany" 且城市为"Berlin" 或"München"的"Customers" 表中选择所有客户
    SELECT * FROM Customers
    WHERE Country = 'Germany'
    AND (City = 'Berlin' OR City = 'Munchen');
    
    
    --结合AND,OR和NOT
    --选择国家是“德国”的“客户”的所有字段,城市必须是“柏林”或“慕尼黑”(用括号形成复杂表达式)
    SELECT * FROM Customers
    WHERE Country = 'Germany' AND (City = 'Berlin' OR City = 'Munchen')
    
  11. ORDER BY KEYBOARD(按关键字排序)
    --ORDER BY语法
    SELECT column1, column2, ...
    FROM table_name
    ORDER BY column1, column2, ... ASC|DESC;
    
    
    --从 "Customers" 表中选取所有客户,并按照 "Country" 列排序
    SELECT * FROM Customers
    ORDER BY Country;
    
    
    --从 "Customers" 表中选取所有客户,并按照 "Country" 列降序排序
    SELECT * FROM Customers
    ORDER BY Country DESC;
    
    
    --从 "Customers" 表中选取所有客户,并按照 "Country" 和 "CustomerName" 列排序
    SELECT * FROM Customers
    ORDER BY Country, CustomerName;
    
    
    --从"Customers" 表中选择所有客户,按 "Country" 升序排列,并按 "CustomerName" 列降序排列
    SELECT * FROM Customer
    ORDER BY Country ASC, CustomerName Desc;
    
  12. INSERT INTO 语法(在表中插入新的数据行)
--表单没有指定要插入数据的列的名称,只提供要插入的值,即可添加一行新的数据
INSERT INTO table_name(column1, column2,column3, ...)
VALUES(value1, value2, value3, ...);

--要为表中的所有列添加值,则不需要在SQL查询中指定列名称
INSERT INTO table_name
VALUES(value1, value2, value3, ...);

--可以通过另一个表上的SELECT语句查询出来的字段值,然后将数据填充到本表中,条件是另一个表所查询的字段与本表要插入数据的字段是一一对应的。
INSERT INTO first_table_name[(column1, column2, ... columnN)]
SELECT column1, column2, ...columnN
FROM second_table_name
[WHERE condition]
  1. NULL VALUES语法
    --IS NULL语法
    SELECT column_names
    FROM table_name
    WHERE column_name IS NULL;
    
    --IS NOT NULL语法
    SELECT column_names
    FROM  table_name
    WHERE column_name IS NOT NULL;
    
    
    --创建表的时候,NULL的基本语法如下
    CREATE TABLE CUSTOMERS(
    ID INT           NOT NULL,
    NAME VARCHAR(20) NOT NULL,
    AGE INT          NOT NULL,
    ADDERSS CHAR(25),
    SALARY DECIMAL(18, 2),
    PRIMARY KEY (ID)
    );
    
  2. UPDATE 语法(更新表中的记录)

    --具有where子句和update查询的基本语法如下所示
    UPDATE table_name 
    SET column1 = value1, column2 = value2, ...
    WHERE condition;
    
    
    --为第一个客户(CustomerID = 1)更新了“ContactName”和“City”
    UPDATE Customers
    SET ContactName = 'Alfred Schmidt', City = 'Frankfurt'
    WHERE CustomerID = 1;
    
    
    --将把国家/地区为"Mexico"的所有记录的联系人姓名更新为“Juan”
    UPDATE Customers
    SET ContactName = 'Juan'
    WHERE Country = 'Mexico';
    
    
    --update警告!
    UPDATE Customers
    SET ContactName = 'Juan';
    
  3. DELETE语法

    --DELETE语法(没有写where的话会把所有的记录都删除了)
    DELETE FROM table_name
    WHERE conditions;
    
    
    --从"Customers" 表中删除客户“Alfreds Futterkiste”
    DELETE FROM Customers
    WHERE CustomerName = 'Alfreds Futterkiste';
    
    
    --可以删除表中的所有行,而不需要删除该表。这意味着表的结构、属性和索引将保持不变
    DELETE FROM table_name;
    或者
    DELETE * FROM table_name;
    
  4. SQL 运算符
    • 算术运算符:+、-、*、/、%

    • 比较运算符:= != <> > < >= <= !< !>

    • 逻辑运算符

      • ALLALL运算符用于将值与另一个值集中的所有值进行比较。
        ANDAND运算符允许在SQL语句的WHERE子句中指定多个条件。
        ANYANY运算符用于根据条件将值与列表中的任何适用值进行比较。
        BETWEENBETWEEN运算符用于搜索在给定最小值和最大值内的值。
        EXISTSEXISTS运算符用于搜索指定表中是否存在满足特定条件的行。
        ININ运算符用于将值与已指定的文字值列表进行比较。
        LIKELIKE运算符用于使用通配符运算符将值与类似值进行比较。
        NOTNOT运算符反转使用它的逻辑运算符的含义。 例如:NOT EXISTS, NOT BETWEEN, NOT IN等等,这是一个否定运算符。
        OROR运算符用于组合SQL语句的WHERE子句中的多个条件。
        IS NULLIS NULL运算符用于将值与NULL值进行比较。
        UNIQUEUNIQUE运算符搜索指定表的每一行的唯一性(无重复项)。
  5. SQL表达式
    --句法
    SELECT column1, column2, columnN
    FROM table_name
    WHERE [CONDITION|EXPRESSION];
    
    
    --不同类型的sql表达式:布尔型、数值型、日期
    
    
    --sql布尔表达式基于匹配单个花去数据
    SELECT column1, column2, columnN
    FROM table_name
    WHERE SINGLE VALUE MATCHING EXPREESION;
    --EG
    SELECT * FROM CUSTOMERS WHERE SALARY = 10000;
    
    
    --数值表达式用于在任何查询中执行任何数学运算
    SELECT numerical_expression as OPERATION_NAME
    [FROM table_name WHERE CONDITION];
    --EG
    SELECT (15 + 6) AS ADDTION
    --EG 
    SELECT COUNT(*) AS "RECORDS" FROM CUSTOMERS;
    
    
    --日期表达式用于返回当前系统日期和时间值
    SELECT CURRENT_TIMESTAMP;
    SELECT GETDATE();
    
    
  6. 选择数据库USE语句
    --USE语句
    USE DatabaseName;
    
    --查看可用的数据库
    SHOW DATABASES;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lx_xy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值