iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >sql初学者笔记 语法基础
  • 450
分享到

sql初学者笔记 语法基础

sql初学者笔记语法基础 2018-10-06 02:10:39 450人浏览 无得
摘要

常见注释 -- 很少支持 行内注释 段落注释 基础语法 SELECT 检索数据 语法 作用 例子 释义 select 查找列,并返回行 select prod_name from products;#可使

sql初学者笔记 语法基础

常见注释

  • -- 很少支持
  • 行内注释

  • 段落注释

基础语法

SELECT

检索数据

语法 作用 例子 释义
select 查找列,并返回行 select prod_name from products;
#可使用,分隔列名来查找多个列。
查找prod_name列,并返回其下的所有行,在products表中。
* 通配符 select * from products; 查找所有列并返回所有行,在products表中。
distinct 返回不重复的值 select distinct vend_id from products;
#不可配合通配符使用除非所有列完全相同
查找vend_id列并返回其下所有行中不重复的值,在products表中。
limit 限制 select prod_name from products limit 5,5; 查找prod_name列并返回其下第5行起5行的值,在products表中。

排序检索数据

语法 作用 例子 释义
order by 排序 select prod_id,prod_price,prod_name
from Products
order by 2;
#默认升序(ASC)排列
#指定按多个列排列时:仅当指定的第一列中有重复元素时,才对其(存在重复值的)按指定的下一列进行排序。
即按照查找的第二个列进行排序,也可指定列名(prod_price)
desc 降序 select prod_id,prod_price,prod_name
from Products
order by 2 DESC,3 desc;
即按照查找的第二个列进行降序排序,desc仅对其前的列有效;

过滤数据

语法 作用 例子 释义
where 在客户端过滤数据 select *
from Products
where prod_price >= 5.99
order by prod_price desc;
#同排序操作一同使用时,不得位于排序操作之前#支持<>=!=等操作,其中<>操作等同于!=
例:
select *
from Products
where prod_id <>"fc"
order by prod_price desc;
#过滤字符串不区分大小写
1.查找所有列,在Products表中,并返回prod_price >=5.99的所有行
2.查找所有列,在Products表中,并返回除prod_id = "fc"之外的所有行
between 值的范围过滤 select prod_name,prod_price
from Products
where prod_price between 4 and 10
查找prod_name,prod_price两列在Products表中,并返回prod_price值为4-10范围内的的的所有行
is 可用来检查null(空值) select prod_name,prod_price
from Products
where prod_price is null
返回所有没有价格的商品
and,or 逻辑操作符
and且
or与,这里是短路的
select *
from Products
where vend_vend_id ="1001" and prod_price <=4;
#and的优先级比or要高,and,or共同使用时为避免错误应用()明确分组,
#也可使用in代替or,例:
select prod_name,prod_price from products where vend_id in("1001","1002")
order by prod_name
等同于:
select prod_name,prod_price from products where vend_id = "1001" or vend_id = "1002"
order by prod_name
返回所有vend_vend_id ="1001" 且 prod_price <=4;的行
not 否定其后的条件 select prod_name,prod_price from products where not vend_id in("1001","1002")
order by prod_name
可与in连用,返回vend_id=1001 vend_id=1002外的所有行

通配符搜索

语法 作用 例子
% 匹配0、1或多个字符包含空格。不会匹配到null select prod_name
from products
where prod_name like "f%%"
_ 匹配单个字符,包含空格 select prod_name
from products
where prod_name like "fuse_"
rtrim()ltrim() 去除右边、左边空格

创建计算字段

select prod_id ,quantity,item_price,quantity*item_price as expanded_price
from orderitems
where order_num = 20008;
#如上创建了一个expanded_price字段(quantity*item_price的结果的别名),其仅在此时有效而不会存放到表中。

使用函数

select vend_name, upper(vend_name) as vend_name_upcase
from vendors
#将vend_name列下的所有行以大写形式返回
select avg(prod_price) as avg_peice from products where vend_id ="1001"
#返回平均值
select count(*) as num_cust from customers
#返回长度(数目),也可对列表中特定值进行计数

分组

select  vend_id,count(*) as num_prods from  products #对vend_id每行进行计数
group by vend_id;#按照vend_id排序并分组

select cust_id,count(*) as orders
from orders 
group by cust_id 
having count(*)>=2#过滤分组中>=2的,having支持where的所有操作

select order_num,count(*) as items
from orderitems group by order_num
having count(*) >=3
order by items,order_num desC#对分组依照选定的列进行排序

子句查询

select cust_name,cust_contact from customers where cust_id =(select cust_id 
from orders
where order_num = (select order_num from orderitems where prod_id = "jp2000"));
#由内而外,哈哈
等效于:
select order_num 
from orderitems
where prod_id = "jp2000";
select cust_id 
from orders
where order_num =20006
select cust_name,cust_contact from customers where cust_id =10003

联结(返回不在同一个表中的行)


select vend_name, prod_name,prod_price
from vendors,products
where vendors.vend_id=products.vend_id;#此处过滤联结条件。
#如没有联结条件过滤,将检索出“笛卡尔积”:表1行数*表2行数

select vend_name, prod_name,prod_price
from vendors inner join products
on vendors.vend_id=products.vend_id
自联结(比子查询更快)

select cust_id, cust_name, cust_contact
from customers
where cust_name = (select cust_name from customers where cust_contact ="jim jones");

select c1.cust_id, c1.cust_name,c1.cust_contact
from customers as c1,customers as c2#不以别名进行会引发错误
where c1.cust_name=c2.cust_name and c2.cust_contact="jim jones"#联结cust_name与c2.cust_name ,并过滤cust_contact="jim jones"的行

组合查询

select cust_name,cust_contact,cust_email,cust_state
from customers
where cust_state in("il","in","mi")
uNIOn  #组合上下select多个select之间需要多个union分隔,union默认排除重复,union all则不排除
select cust_name,cust_contact,cust_email,cust_state#union中每个查询必须包含相同的列、表达式、或聚集函数
from customers
where cust_name ="wascals"
order by cust_name;#不能分别对每条union指定不同的排序

INSERT

依赖于次序的插入


insert into customers
values("1000000006","toy land","123 any street","new york","ny", "11111","usa",null, null);
#依赖于次序的插入,必须为每一列提供一个值,如某列无添加则应写上null

提供列名的插入

insert into customers(cust_id,cust_contact,cust_email,cust_name,cust_address,cust_city,cust_state,cust_zip)
#必须为提供了列名的列给出一个值
values(null, null,"1000000006","toy land","123 any street","new york","ny", "11111");

从另一个表插入

insert into 表名(列名)
select 列名
from 表名
where 过滤

复制一个表


select * 
into custcopy 
from customers;

create table custcopy as
select * 
from customers;

UPDATE

更新单个列

update customers
set cust_email = "kim@@thetoystore.com"
where cust_id = "100000000005"#如不指定,将更新customers表cust_email列下的所有行

更新多个列

update customers
set cust_email = "kim@@thetoystore.com",cust_contact="sam roberts"
where cust_id = "100000000006"

DELLETE

delete from customers
where cust_id = "1000000006"#删除此行,不过滤则删除所有行
#update删除列
#truncate删除表

添加删除列&&表

添加表


create table orderitems
(order_num integer not null,
order_item integer not null,
prod_id char(10) not null,
quantity integer not null default 1,#设置quantity列下的行默认值为1
item_price decimal(8,2) not null);#not null即不允许填入null,默认可填入null,只有为 not null的列方可为主键及唯一标识

alter table vendors
add vend_phone char (20);

alter table vendors
drop column vend_phone;#此操作不可逆

drop table custcopy;#此操作不可逆

视图

create view#创建视图
drop view 视图名#删除视图

create view productcustomers as
select cust_name , cust_contact,prod_id
from customers,orders,orderitems
where customers.cust_id=orders.cust_id
and orderitems.order_num=orders.order_num;

select *
from productcustomers;

create view customeremaillist as
select cust_id, cust_name,cust_email
from customers
where cust_email is not null;#返回查询中所有cust_email不为空的,并将其添加到视图中

create view orderitemsexpanded as 
select order_num,prod_id,quantity,item_price,quantity*item_price,quantity*item_price as
expanded_price
from orderitems

事务管理


start transaction ;
-- 标识事务处理块,块中内容未执行完则整体撤销

savepoint delete1;#标识
rollback to delete1;返回标识delete1

您可能感兴趣的文档:

--结束END--

本文标题: sql初学者笔记 语法基础

本文链接: https://www.lsjlt.com/news/6834.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python初学者学习笔记
    python开发:   a.Python基础   b.网络编程   c.web框架 —用于写网站   d.设计阶段+算法   e.项目阶段 开发:   开发语言:高级语言:python/Java/PHP/C#/Go/ruby/c++......
    99+
    2023-01-30
    初学者 学习笔记 python
  • PHP的学习笔记 (php的基础语法)
    目录 一、PHP基础语法 01.基础语法     1.标记与注释     2.输出语句     3.PHP标识符     4.PHP关键字 02.数据与运算     1.常量     2.变量     3.表达式     4.数据类型及转...
    99+
    2023-08-31
    php 前端
  • Python初学者(零基础学习Pytho
      Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐  本文 主要 针对 零基础 想学习Python者。本文本文由@史江歌(shijiangge@gmail.com  QQ:499065469)根据...
    99+
    2023-01-31
    初学者 基础 Python
  • ASP 语法基础:初学者常见问题的解答
    ASP(Active Server Pages)是一种服务器端脚本语言,用于创建动态且交互式的网页。它是一个基于文本的脚本技术,嵌入在 HTML 或 XML 文档中。 2. 如何运行 ASP 脚本? 要运行 ASP 脚本,您需要: 安装...
    99+
    2024-04-02
  • 初学者必看的基础SQL查询语句分别有哪些
    这期内容当中小编将会给大家带来有关初学者必看的基础SQL查询语句分别有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。将分享15个初学者必看的基础SQL查询语句,都很基...
    99+
    2024-04-02
  • PHP学习笔记:基础语法及变量定义
    在如今的互联网时代,PHP(Hypertext Preprocessor)作为一种广泛使用的服务器脚本语言,被越来越多的开发者所青睐。本篇文章将为大家介绍PHP的基础语法和变量的定义,并提供具体的代码示例,帮助初学者更好地理解和掌握。一、P...
    99+
    2023-10-21
    学习 PHP 基础
  • python学习笔记01-基础
    数据类型:(1)整数(2)浮点数整数和浮点数在计算机内部存储的方式是不同的(3)字符串字符\本身也要转义,所以\表示的字符就是\Python还允许用r''表示''内部的字符串默认不转义(4)布尔值在Python中,可以直接用True、F...
    99+
    2023-01-31
    学习笔记 基础 python
  • Python学习基础笔记(全)
    换博客了,还是csdn好一些。 Python学习基础笔记 1.Python学习—linux下Python3的安装 2.Python学习—数据类型、运算符、条件语句 3.Python学习—循环语句 4.Python学习—字符串 5.Pyt...
    99+
    2023-01-31
    基础 笔记 Python
  • ASP基础知识:初学者指南
    ASP(Active Server Pages)是一种基于服务器的脚本语言,用于创建动态网页。在这篇初学者指南中,我们将探讨ASP的基础知识,包括脚本的结构、事件处理、内置对象和控制流语句。同时,还会提供一些入门所需的资源,帮助您快速掌握...
    99+
    2024-02-05
    ASP 基础知识 初学者指南 入门须知 脚本 网站 代码 语法 服务器 学习资源
  • JavaScript基础知识:初学者指南
    JavaScript是一种高级的解释型编程语言,主要用于Web开发,它是一种跨平台的语言,可以在任何平台上运行。JavaScript的基础知识包括变量、数据类型、运算符、控制流、函数和数组等。 1. 变量 变量是用来存储数据的容器,在J...
    99+
    2024-02-09
    JavaScript 编程 变量 数据类型 运算符 控制流 函数 数组
  • python基础概念学习笔记
    本次整理python数据类型为:列表list字典dict元组tuple集合set其中涉及概念:模组module类class对象object——————————————————————————————————————————数据类型type ...
    99+
    2023-01-31
    学习笔记 概念 基础
  • GEE初学者笔记之快速上手篇
    1.基础概念 (1)谷歌云平台         整个GEE是基于Google Cloud云平台的一整套API开发环境。因此整个数据的处理全部都是在Google Cloud平台上实现的,无需本地机器参与运算。一般开发流程是在线/离线编辑代码,...
    99+
    2023-10-18
    服务器 python 运维
  • Python初学者必学:掌握lambda函数的基础用法
    初学者必备:掌握Python中lambda函数的基本使用方法,需要具体代码示例 概述:Python是一种简单易学的编程语言,它以其简洁、灵活的语法吸引了众多程序员的喜爱。在Python中,lambda函数是一种特殊的匿名函数,它...
    99+
    2024-02-02
    python lambda函数 初学者
  • mysql学习笔记之基础测试
    10. 基础测试 10.1...
    99+
    2024-04-02
  • ASP初学者指南:一步步学习ASP基础
    ASP.NET是一种强大的Web应用程序框架,具有许多优点,例如: 易于使用:ASP.NET是一种易于使用的框架,即使是初学者也可以快速上手。它提供了许多内置的控件和组件,可以帮助开发人员快速构建Web应用程序。 可扩展性强:ASP.N...
    99+
    2024-02-05
    ASP.NET ASP 网页开发 Web编程 Web应用程序
  • ASP学习笔记 vs. Spring编程算法:哪个更适合初学者?
    随着互联网的普及,编程已经成为了一种非常重要的技能。不过,对于初学者而言,选择一种适合自己的编程语言或框架并不是一件容易的事情。本文将会比较ASP学习笔记和Spring编程算法两种编程方式,以便帮助初学者选择适合自己的编程方式。 ASP学...
    99+
    2023-07-02
    学习笔记 spring 编程算法
  • 韩顺平 2021零基础学Java 学习笔记
    韩顺平 2021零基础学Java 学习笔记(1)(自用)_丨shallow丨的博客-CSDN博客_韩顺平java笔记 韩顺平 2021零基础学Java 学习笔记(2)(自用)_丨shallow丨的博客-CSDN博客  韩顺平 2021零基础...
    99+
    2023-10-01
    学习
  • 初学者指南:JavaScript MVVM 架构基础知识
    ...
    99+
    2024-04-02
  • Python 学习笔记:哪个教程是最适合初学者的?
    Python 是一种高级编程语言,它简单易学,适用于各种任务。如果你想学习 Python,你可以选择一些优秀的教程来帮助你入门。 但是,哪个教程是最适合初学者的呢?在本文中,我们将介绍几个最受欢迎的 Python 教程,以及它们的优点和缺...
    99+
    2023-10-27
    学习笔记 ide 教程
  • JavaScript基础知识:初学者快速入门指南
    JavaScript简介 JavaScript是一种脚本语言,可用于为网页添加交互性。它是一种相对容易学习的语言,即使没有任何编程经验的人也可以轻松掌握。JavaScript可以用于创建各种各样的网页元素,包括表单、按钮、菜单和动画。 ...
    99+
    2024-02-08
    JavaScript 编程语言 前端开发 网页交互
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作