首页 > 数据库 >SQL语法快速入门

SQL语法快速入门

时间:2023-03-15 16:22:51浏览次数:56  
标签:运算 子句 元组 语法 SQL where select 入门

本文参考 CMU数据库神课 15-445 中的SQL语法讲解部分

SQL数据定义

create table department ( dept_name varchar(20), building varchar(20), budget numeric(12, 2), primary key (dept_name) );
可以指定not null 外码等等。

删除表

.drop department

删除表中的内容

.delete department

增加一个空列

alter table r add A D;

A attribute

D domain

从关系中删除属性

alter tabel r drop A;

SQL基本结构

select from where基本类型

distinct关键字或者函数可以去重。

all 关键字显式指明不去重

SQL查询的子句实际顺序

尽管子句必须以select from where的次序写出,但理解查询代表的运算最容易的方法是一运算次序来观察子句,首先是from,然后是where 最后是select

FROM定义了多个关系的笛卡尔积,或者可以理解为一个迭代(多重循环) ,这个过程中产生了组合的元组,并且使用where来限制创建笛卡尔积的组合,选取有意义的元组。where的条件被称为谓词。

附加的基本运算

更名运算 AS

as后会被当做一个拷贝,在同一个关系的内部操作时很有用

字符串运算

字符串使用单引号, 需要在内部使用的时候用两次

比较运算对大小写敏感(不同软件不同)

|| 拼接

substr 子串

upper

lower

trim去除后面的空格

like结合 % 任意长度子串, _下划线,任意一个字符 like语法对大小写敏感, 还可以使用not like

排列元组显示次序

order by attribute asc升序, desc降序

where 子句

可以结合between使用, between a and b 寻找ab之间的值。 还可以 not between

还可以使用(v1,v2,v3)这种行构造器来进行元组比较

集合运算

或运算 union, 可以直接使用()自动去重, 或者union all 保留重复项

与运算 intersect 会自动去重

非运算 except 会自动去重 想保留的话可以使用except all

空值

运算任一项为空,结果也为空。

为了判断空 可以使用 a is null 来判断,不要使用=

null的布尔运算会成unknow 这是使用 is unknown来判断

聚集函数

avg

min

max

sum

count

sum和avg必须对数组计算

基本聚集与分组聚集

有基本聚集,在整个表上进行聚集,还可以先分组再聚集。

任何没出现在group by的属性,只能出现在select的聚集函数中,不能直接选中

having子句

having子句对分组限制条件, where是对元组的限制条件。

from where group having 聚集函数 select的计算次序(重点)

  1. from计算关系
  2. 如果有where,where计算满足关系的元组
  3. 如果有group by 对满足2的分组
  4. 如果有having,应用到每个分组上
  5. select利用通过4的分组产生查询的元组,即这一步会在分组上调用聚集函数得到元组

标签:运算,子句,元组,语法,SQL,where,select,入门
From: https://www.cnblogs.com/lion-cheng/p/17218984.html

相关文章

  • MYSQL数据库操作语句
    数据库操作登录mysql-uroot-p退出quit/exit显示数据库版本showversion();查看当前使用的数据库selectdatabase();查看所有数据库showdatabases;创建......
  • 【Android Studio】 SQLite 数据库 增删改查
    今日目标:参照标题实现效果:  实现过程:1、创建实现页面 页面设计思路:最外层垂直线性布局、内部使用三个线性布局、后两个用的水平排版,用来显示数值。实例化四......
  • MySQL学习(四)---->InnoDB数据页结构
    页是InnoDB管理存储空间的基本单位,一个页的大小一般是16KB。InnoDB为了不同的目的而设计了许多种不同类型的页,比如存放表空间头部信息的页,存放InsertBuffer信息的页,......
  • Mysql基础知识
    Mysql基础知识Mysql概述数据库相关概念数据库:存储数据的仓库,数据是有组织的进行存储,Database(DB)。数据库管理系统:操纵和管理数据库的大型软件,DataBaseManagement......
  • mysql安装详细文档(windows)
    安装MySQLMySQL是目前最为流行的开放源码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典MySQLAB公司开发,目前属于Oracle公司。任何人都能从Internet下载MySQL......
  • 02.SQL
    1.SQL通用语法SQL语句可以单行或者多行书写,以分号结尾SQL语句可以使用空格或者缩进来增强语句的可读性MYSQL数据库的SQL语句不区分大小写,关键字建议使用大写注释:单......
  • MySql报错:unblock with mysqladmin flush-hosts
    #查看最大错误连接数限制showglobalvariableslike'max_connect_errors';#查看连接IPselect*fromperformance_schema.host_cache#刷新数据库IP缓存flus......
  • 这是一篇纯讲SQL语句优化的文章!!!| 博学谷狂野架构师
    insert如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。insertintotb_testvalues(1,'tom');insertintotb_testvalues(2,'cat');inse......
  • 2.配置proxysql.conf进行读写分离
    datadir="/var/lib/proxysql"admin_variables={admin_credentials="admin:admin"mysql_ifaces="0.0.0.0:6032"refresh_interval=2000web......
  • Markdown语法笔记
    Markdown语法笔记#代表标题,标题级别大小随#数量增加而变小,最多到6级标题+分割线二级标题自带分割线图片![file](图片url)超链接超视网膜屏幕[文字](跳转url)//必......