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

数据库基础

基本概念


  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)**类型

操作

建库

CREATE DATABASE <数据库名称>;

建表

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)容纳日期。

删表

DROP TABLE <表名>

更新表

添加列

-- 添加一列
ALTER TABLE <表名> ADD <列名>-- 添加多列
ALTER TABLE <表名> ADD<列名><列名>,……);

删除某列

-- 删除一列
ALTER TABLE <表名> DROP <列名>-- 删除多列
ALTER TABLE <表名> DROP<列名><列名>,……);

插入

INSERT INTO <表名> (<列名><列名>,……) VALUES (<1,2,……>)

变更表名

ALTER TABLE Poduct RENAME TO Product;

查询

简单查询语法

-- 查询列
SELECT <列名>,……
FROM <表名>-- 查询全部
SELECT *
FROM <表名>;

设置别名

AS关键字设置别名

-- 设置别名
SELECT product_id AS id,
 product_name AS name,
 purchase_price AS price
 FROM Product;

去重

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

SELECT 
DISTINCT product_type
,regist_date
FROM Product;

查询条件设置

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

执行顺序:

  1. 首先通过WHERE子句查询出符合条件的记录
  2. 然后再SELECT语句指定列
SELECT <列名>, ……
 FROM <表名>
 WHERE <条件表达式>;

运算符

算数运算符

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

另:

  1. 除:DIV

  2. 取模:MOV

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

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

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

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

    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

posted @ 2023-03-02 22:04  Tricia11  阅读(42)  评论(0)    收藏  举报  来源