首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【SQL】作为前端,应该了解的SQL知识(第一弹)

【SQL】作为前端,应该了解的SQL知识(第一弹)

作者头像
且陶陶
发布2023-04-12 15:58:23
发布2023-04-12 15:58:23
1.2K00
代码可运行
举报
文章被收录于专栏:Triciaの小世界Triciaの小世界
运行总次数:0
代码可运行

数据库基础

基本概念


  1. 数据库(DB) 将大量数据保存起来,经加工可进行高效访问的数据集合
  2. 数据库管理系统(DBMS) 用来管理数据库的计算机系统

  1. 字段:表中的列
  2. 记录:表中的行 💡 关系数据库必须以行为单位进行数据读写

  1. DDL:(数据定义语言):用来创建或者删除数据库或者表
    1. CREATE:创建
    2. DROP:删除
    3. ALTER:修改
  2. DML:(数据操纵语言):用来查询或者变更表记录
    1. SELECT:查询
    2. INSERT: 插入
    3. UPDATE: 更新
    4. DELETE: 删除
  3. DCL:(数据控制语言):用来确认或者取消对数据库中数据进行的变更
    1. COMMIT: 确认变更
    2. ROLLBACK: 取消变更
    3. GRANT: 赋予操作权限
    4. REVOKE: 取消用户操作权限

  1. 主键(primary key):就是可以特定一行数据的列

注释:

● 1行注释 书写在“--”之后,只能写在同一行。 ● 多行注释 书写在“/*”和“*/”之间,可以跨多行。


DBMS分类

  1. 层次数据库(HDB) 将数据通过层次结构(树状结构)表示出来
  2. 关系数据库(RDB) 采用行和列组成的二维表格存储数据,用SQL对数据进行操作 常见的RDB:Oracle、SQL Server、DB2、PostgreSQL、MySQL
  3. 面向对象数据库(OODB) 保存对象的数据库
  4. XML数据库(XMLDB) 对XML形式的数据进行处理
  5. 键值存储数据库(KVS) 只保存查询所使用的主键和值的组合的数据库(也就是关联数组或散列)

书写规则

  1. ;结尾
  2. 不区分关键字的大小写,但是字段区分大小写
  3. 字符串、日期、常数需要用单引号,数值不需要引号

  1. 只能用半角英文字母数字下划线(_)作为数据库、表和列的名称,必须以英文字母开头。

RDBMS结构

常见的系统结构为**客户端/服务器(c/s)**类型

操作

建库

代码语言:javascript
代码运行次数:0
运行
复制
CREATE DATABASE <数据库名称>;

建表

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TABLE <表名>
(<列名1> <数据类型> <该列所需约束>,
 <列名2> <数据类型> <该列所需约束>,
 <列名3> <数据类型> <该列所需约束>,
 <列名4> <数据类型> <该列所需约束>,
 .
 .
 .
 <该表的约束1>, <该表的约束2>,……);

约束是除了数据类型之外,对列中存储的数据进行限制或者追加条件的功能

数据类型:

数据类型

描述

integer(size) int(size) smallint(size) tinyint(size)

仅容纳整数。 在括号内规定数字的最大位数。

decimal(size,d) numeric(size,d)

容纳带有小数的数字。 “size” 规定数字的最大位数。“d” 规定小数点右侧的最大位数。

char(size)

容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。 在括号中规定字符串的长度。

varchar(size) varchar2(size)

容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。 在括号中规定字符串的最大长度。

date(yyyymmdd)

容纳日期。

删表

代码语言:javascript
代码运行次数:0
运行
复制
DROP TABLE <表名>;

更新表

添加列

代码语言:javascript
代码运行次数:0
运行
复制
-- 添加一列
ALTER TABLE <表名> ADD <列名> ;
-- 添加多列
ALTER TABLE <表名> ADD (<列名>,<列名>,……);

删除某列

代码语言:javascript
代码运行次数:0
运行
复制
-- 删除一列
ALTER TABLE <表名> DROP <列名> ;
-- 删除多列
ALTER TABLE <表名> DROP (<列名>,<列名>,……);

插入

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO <表名> (<列名>,<列名>,……) VALUES (<值1,值2,……>)

变更表名

代码语言:javascript
代码运行次数:0
运行
复制
ALTER TABLE Poduct RENAME TO Product;

查询

简单查询语法

代码语言:javascript
代码运行次数:0
运行
复制
-- 查询列
SELECT <列名>,……
FROM <表名>;
-- 查询全部
SELECT *
FROM <表名>;

设置别名

AS关键字设置别名

代码语言:javascript
代码运行次数:0
运行
复制
-- 设置别名
SELECT product_id AS id,
 product_name AS name,
 purchase_price AS price
 FROM Product;

去重

DISTINCT 关键字实现去重,DISTINCT 关键字只能用在第一个列名之前

代码语言:javascript
代码运行次数:0
运行
复制
SELECT 
DISTINCT product_type
,regist_date
FROM Product;

查询条件设置

WHERE 子句来指定查询数据的条件。

执行顺序:

  1. 首先通过WHERE子句查询出符合条件的记录
  2. 然后再SELECT语句指定列
代码语言:javascript
代码运行次数:0
运行
复制
SELECT <列名>, ……
 FROM <表名>
 WHERE <条件表达式>;

运算符

算数运算符

加 (+)、减(-)、乘(*)、除(/)和取模(%)运算。

另:

除:DIV

取模:MOV

非数字型字符串,运算时当作0来处理

加法两边做数值运算,会把字符串转为数字

求模后的结果符号与被模数符号相同(第一个数字

所有包含 NULL 的计算,结果肯定是NULL

代码语言:javascript
代码运行次数:0
运行
复制
select -12 % -5 from dual -- -2
select 12 % -5 from dual -- 2

比较运算符

等号运算符 =

  • 判断两个值,字符串和表达式是否相等。
  • 不能用来比较NULL
  • 两边都是字符串,则按 ANSI码来比较。
  • 相等则为1 不相等为0

安全等于运算符 <=>

  • 可以比较null
  • 相等则为1 不相等为0

不等于 <>

  • 不能用来比较NULL

判空 IS NULL、 IS NOT NULL

逻辑运算符

AND:与

OR:或

AND运算符的优先级高于OR运算符。

() 可以提高优先级

真值

众所周知,真值有true和false两种,但是在SQL中还有一种UNKNOWN的情况。前者是二值逻辑,后者是三值逻辑。

在值为NULL时,真值为UNKNOWN

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据库基础
  • 基本概念
    • DBMS分类
  • 书写规则
  • RDBMS结构
  • 操作
    • 建库
    • 建表
    • 删表
    • 更新表
      • 添加列
      • 删除某列
    • 插入
    • 变更表名
  • 查询
    • 简单查询语法
    • 设置别名
    • 去重
    • 查询条件设置
  • 运算符
    • 算数运算符
    • 比较运算符
      • 等号运算符 =
      • 安全等于运算符 <=>
      • 不等于 <>
      • 判空 IS NULL、 IS NOT NULL
    • 逻辑运算符
      • 真值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档