SQL基础使用

SQL的概述

SQL全称: Structured Query Language,结构化查询语言,用于访问和处理数据库的标准的计算机语言。

SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。

经过多年发展,SQL以成为数据库领域统一的数据操作标准语言,可以说几乎市面上所有的数据库系统都支持使用SQL语言来操作

简单来说,SQL语言就是操作数据库的专用工具

SQL的语法特征

在学习DDL、DQL等之前,我们先来了解SQL的语法特征。

  • SQL语言,大小写不敏感
  • SQL可以单行或多行书写,最后以;号结束
  • SQL支持注释:
    • 单行注释: -- 注释内容(--后面一定要有一个空格)
    • 单行注释:# 注释内容(# 后面可以不加空格,推荐加上)
    • 多行注释:/* 注释内容 */

SQL语言的分类

由于数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账户管理、权限管理等等。

所以,操作数据库的SQL语言,也基于功能,可以划分为4类:

  • 数据定义:DDL(Data Definition Language)
    • 库的创建删除、表的创建删除等
  • 数据操纵:DML(Data Manipulation Language)
    • 新增数据、删除数据、修改数据等
  • 数据控制:DCL(Data Control Language)
    • 新增用户、删除用户、密码修改、权限管理等
  • 数据查询:DQL(Data Query Language)
    • 基于需求查询和计算数据

SQL - DDL - 库管理

查看数据库

SHOW DATABASES;

使用数据库

USE 数据库名称;

创建数据库

CREATE DATABASES 数据库名称 [CHARSET UTF8];

删除数据库

OROP DATABASES 数据库名称;

查看当前使用的数据库

SELECT DATABASES();

SQL- DDL - 表管理

查看有哪些表

SHOW TABLES; 注意: 需要先选择库

创建表

CREATE TABLE 表名称(

列名称 列类型,

列名称 列类型,

列名称 列类型,

列名称 列类型,

......

)

删除表

DORP TABLE 表名称;

DORP TABLE IF EXISTS 表名称;

SQL - DML - 数据管理

DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的数据记录进行更新。

关键字:

  • 插入INSERT
  • 删除DELETE
  • 更新UPDATE

数据插入 INSERT

基础语法:

示例:

注意:

  1. 插入字符串数据,需要用单引号包围

  2. 插入全部列的时候,列的列表可以省略

数据删除

基础语法:

BELETE FROM 表名称 [WHERE 条件判断]

数据更新 UPDATE

基础语法

UPDATE 表名 SET 列 = 值 [WHERE 条件判断];

注意事项

字符串的值,出现在SQL语句中,必须要用单引号包围起来

SQL - DQL

基础数据查询

在SQL中,通过SELECT关键字开头的SQL语句,来进行数据的查询

基础语法:

SELECT 字段列名 | * FROM 表

含义就是: 从(FROM)表中,选择 SELECT)某些列进行展示

基础数据查询 - 过滤

查询也可以带有指定条件,语法如下:

SELECT 字段列名 | * FROM 表 WHERE 条件判断

分组聚合

分组聚合应用场景非常多,如:统计班级中,男生和女生的人数。

这种需求就需要:

  • 按性别分组
  • 统计每个组的人数

这就称之为:分组聚合。 基础语法:

SELECT 字段 | 聚合函数 FROM 表 [WHERE 条件判断] GROUP BY 列

聚合函数有

注意,SELECT中,除了聚合函数外,GROUP BY 了哪个列,哪个列在能出现在SELECT中。

结果排序

可以对查询的结果,使用ORDER BY 关键字,指定某个列进行排序,语法:

结果分页限制

同样,可以使用LIMIT关键字,对查询结果进行数量限制或分页显示,语法:

SQL语句

相关推荐
云和数据.ChenGuang5 小时前
Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创
数据库·django·sqlite
woshilys6 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
Hacker_LaoYi6 小时前
SQL注入的那些面试题总结
数据库·sql
建投数据7 小时前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
Hacker_LaoYi8 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀8 小时前
Redis梳理
数据库·redis·缓存
独行soc8 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天8 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺8 小时前
分布式系统架构:服务容错
数据库·架构
独行soc9 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘