数据库SQL语言_SQL基本

一,基本SQL

1.1、基本概念

1、实体关系图(ERD)

  • 实体关系图(ERD,Entitiy Relationship Diagram)是数据库中数据视图常用的方法,可以将数据库表格的关系可视化。
  • 实体关系图是可以了解从多个表中提取数据的关键要素。
  • 实体关系图如下所示:
    • PK代表表主键,FK代表表外键。

在这里插入图片描述

2、什么是SQL

  • SQL是一门用于数据库交互的语言。
  • 可以查询一个表,也可以查询若干表。

3、为什么选择SQL

  1. 数据分析师使用SQL的原因
    • SQL易于理解
    • 传统数据库可直接访问数据,允许审核和复制数据
    • SQL可以一次分析多个表
    • SQL与其他一些工具相比,允许分析更复杂的问题
  2. 企业选择使用SQL的原因
    • 确保数据完整性。 仅输入要输入的数据,并且只有某些用户才能将数据输入数据库。
    • 可以快速访问数据。 SQL允许快速从数据库中存储的数据中获取结果。可以优化代码以快速提取结果 。
    • 数据易于共享。 多个人可以访问存储在数据库中的数据,并且所有用户的数据都是相同的,使任何有权访问您数据库的人都能获得一致的结果。

4、数据库如何存储数据

  • 数据库中数据存储在表中,类似excel电子表格一样。
  • 同一列的数据必须数据类型一致。

5、数据库类型

  • 不同类型的数据库设计的目的也不同,一些受欢迎的数据包括:
    • MySQL
    • Access
    • Oracle
    • Microsoft SQL Server
    • Postgres
  • 但不同的数据库在语法和一些功能上有细微的差异。 对于确实存在的差异,应检查文档。大多数SQL环境在线提供了出色的文档,可以通过快速的Google搜索轻松地访问这些文档。

1.2、数据库定义语言DDL

1、CREATE DATABASE,创建新的数据库语句

# 创建新的数据库及设置数据库编码
CREATE DATABASE db_name
CHARACTER SET utf8
COLLATE utf8_general_ci;

2、CREATE TABLE,在数据库中创建新表语句

# 创建新表及设置表编码
CREATE TABLE table_name
CHARACTER SET utf8
COLLATE utf8_general_ci;

3、DROP DATABASE/DROP TABLE,删除数据库和删除数据库中表语句

# 删除数据库
DROP DATABASE db_name;

# 删除数据库中的表
DROP TABLE table_name;

4、ALTER TABLE,修改数据库中的表结构语句

# 向数据库的表中添加列
ALTER TABLE tb_name ADD col_name datatype;

# 修改数据库表中列的数据类型
ALTER TABLE tb_name MODIFY col_name datatype;

# 删除数据库中表中的某列
ALTER TABLE tb_name DROP col_name datetype;

1.3、数据库查询语言DQL

1、SELECT …FROM…,数据查询语句

# 查询数据库表中的所有列
SELECT *
FROM tb_name;

# 查询数据库表中的某列数据
SELECT col1
FROM tb_name;

# 查询数据库表中的多列数据
SELECT col1,col2,col3,...
FROM tb_name;

2、LIMIT,限制数据查询结果行数输出

# 限制查询结果的输出行数
# 语法1:
SELECT col1,col2
FROM tb_name
LIMIT 5;
# 限制返回结果输出5行

# 语法2:
SELECT col1,col2
FROM tb_name
LIMIT 2,5;
# 第一个数字,指偏移行数
# 第二个数字,指限制输出行数
# 这里表示从第三行开始输出,输出5行

# 语法3:
SELECT col1,col2
FROM tb_name
LIMIT 5 OFFSET 2;
# LIMIT 5,表示输出行数
# OFFSET 2,表示偏移行数
# 这里同样是表示从第三行开始输出,输出5行

3、ORDER BY ,对数据任何列进行排序

  • ORDER BY语句总是在查询SELECT…FROM…语句之后,但在LIMIT之前;
  • ORDER BY默认对列数据进行升序,若在ORDER BY列之后添加关键字DESC,能对列数据进行降序。
# 对数据按列进行升序排序
SELECT col1,col2
FROM tb_name
ORDER BY col1
LIMIT 5;

# 对数据按列进行降序排序
SELECT col1,col2
FROM tb_name
ORDER BY col1 DESC
LIMIT 5;

# 对数据按多列进行排序
SELECT col1,col2,col3
FROM tb_name
ORDER BY col1,col2 DESC
LIMIT 5;

4、WHERE,按条件过滤数据进行筛选

  • 一些和WHERE语句搭配的常用算术运算符:> (大于),< (小于),>=(大于等于),<=(小于等于),=(等于),!=(不等于)

    # WHERE语句与算术运算符
    SELECT col1,col2
    FROM tb_name
    WHERE col1 > value1;
    
    # value1指数据的值,可以是数据值也可以是文本类的值,文本类的值需要用单引号括起来
    
  • 一些和WHERE语句搭配的逻辑运算符:LIKE,IN,NOT,BETWEEN…AND,OR

    • LIKE,模糊匹配查找不确定内容
    # WHERE语句与逻辑运算符
    # 以v结尾
    SELECT col1,col2
    FROM tb_name
    WHERE col1 LIKE '%v';
    
    # 以v开头
    SELECT col1,col2
    FROM tb_name
    WHERE col1 LIKE 'v%';
    
    # 含v的
    SELECT col1,col2
    FROM tb_name
    WHERE col1 LIKE '%v%';
    
    • IN,后面紧跟一个集合,可用于查找等于集合内值的数据
    SELECT col1,col2
    FROM tb_name
    WHERE col1 IN (value1,value2,value3,...);
    
    • NOT,可结合IN,LIKE一起使用,通过NOT LIKE或NOT IN获取不满足特定条件的所有行
    SELECT col1,col2
    FROM tb_name
    WHERE col1 NOT LIKE '%S';
    
    SELECT col1,col2
    FROM tb_name
    WHERE col1 NOT IN (value1,value2,value3,...);
    
    • BETWEEN…AND…
    SELECT col1,col2
    FROM tb_name
    WHERE col1 BETWEEN value1 AND value2;
    
    • OR
    SELECT col1,col2
    FROM tb_name
    WHERE col1 > value1 OR col2 <= value2;
    

5、注意事项

  • 运算符的优先级:()> NOT > AND > OR
  • 关键字和关键语句的优先级:
SELECT col1,col2
FROM tb_name
WHERE col1 > value1
ORDER BY col1 DESC
LIMIT 5;
发布了14 篇原创文章 · 获赞 5 · 访问量 358

猜你喜欢

转载自blog.csdn.net/weixin_45556639/article/details/105481840