前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL学习笔记(基础部分)

SQL学习笔记(基础部分)

作者头像
全栈程序员站长
发布2022-09-23 21:50:09
8030
发布2022-09-23 21:50:09
举报

大家好,又见面了,我是你们的朋友全栈君。

SQL学习笔记

基础部分

SQL语法

数据库语言对大小写不敏感,用分号分隔每条数据库语言

SQL通用数据类型

SQL开发,在创建SQL表时要确定每个列要存储的数据类型,每一列都需要一个列名和确定的数据类型 常见数据类型自行查询 一些重要的SQL命令

  • select
  • update
  • delete
  • insert into
  • create database
  • alter database
  • create table
  • alter table
  • drop table
  • create index
  • drop index

SQL语句

  • select语句
代码语言:javascript
复制
select column_name,column_name from table_name;
代码语言:javascript
复制
select * from table_name;

选取结果被储存在一个结果表中,称为结果集

  • select distinct语句 一个列中可能包含重复值,select distinct用于返回唯一不同值
代码语言:javascript
复制
select distinct column_name,column_name from table_name;
  • SQL Where字句 用于提取满足制定标准的记录
代码语言:javascript
复制
select column_name,column_name 
from table_name
where column_name operator value;

在where子句中可以使用=,<>,<,>,>=,<=,between,like#搜索某种模式,in#指定针对某个列的多个可能值

  • and & or语句 and和or结合使用(使用圆括号来组成复杂的表达式)
代码语言:javascript
复制
select * from custormers where country = 'Germany' and (city = 'Berlin' or City = 'Beijing')
  • SQL order by关键字 用于对结果集按照一个列或多个列进行排序,默认按升序排序,若要用降序,可以使用desc关键字
代码语言:javascript
复制
select column_name,column_name from table_name order by column_name,column_name ASC|DESC
  • SQL insert into语句 用于向表中插入新记录
代码语言:javascript
复制
insert into table_name
values(value1,value2,value3,...)
代码语言:javascript
复制
insert into table_name(column1,column2,column3,...)
values(value1,value2,value3,...)
#会形成新行,但只在指定列插入数据,custormid列会自动更新
  • SQL update语句 用于更新表中的数据
代码语言:javascript
复制
update table_name
set column1=value1,column2=value2,...
where some_column=some_value
#通过where来限制更新行,缺失where语句会对整列都进行修改
  • SQL DELETE语句 用于删除表中的记录
代码语言:javascript
复制
delete from table_name where some_column = some_value
代码语言:javascript
复制
delete from table_name;
or
delete * from table_name;
#删除表中所有数据
  • SQL select top,limit,rownum 用于规定要返回的记录的数目
代码语言:javascript
复制
#SQL Server / MS Access 语法
SELECT TOP number|percent column_name(s) FROM table_name;
代码语言:javascript
复制
#MySQL 和 Oracle 中的 SQL SELECT TOP 是等价的 MySQL 语法 select column_name(s) from table name limit number;
代码语言:javascript
复制
#Oracle语法
select column_name(s) from table_name where rownum <= number;
  • SQL like 操作符 用于在where子句中搜索列中的指定模式
代码语言:javascript
复制
select column_name(s) from table_name where column_name like pattern;

  • SQL 通配符 通配符可用于代替字符串中的任何其他字符,在SQL中与SQL like操作符一起使用

通配符

描述

%

替代一个字符

_

centered

[charlist]

字符列中的任何单一字符

[^charlist] or [!charlist]

不在字符列中的任何单一字符

代码语言:javascript
复制
# %运用
SELECT * FROM Customers WHERE City LIKE '%es%';

#_运用
SELECT * FROM Customers WHERE City LIKE '_erlin';

# SQL[charlist]运用 选取以a、b、c开头的所有
SELECT * FROM Customers WHERE City LIKE '[a-c]%';

#选取 City 不以 "b"、"s" 或 "p" 开始的所有客户
SELECT * FROM Customers WHERE City LIKE '[!bsp]%';
  • SQL in操作符 允许在where字句中规定多个值
代码语言:javascript
复制
select column_name(s)
from table_name
where colunmn_name in (value1,value2,...);

select column_name(s)
from table_name
where column_name in(select column from table_w3c where ...);
  • SQL between操作符
代码语言:javascript
复制
select column_name(s) from table_name where colunmn_name between value1 and value2;
代码语言:javascript
复制
SELECT * FROM Products WHERE (Price BETWEEN 10 AND 20) AND CategoryID NOT IN (1,2,3);
  • SQL join连接 SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
代码语言:javascript
复制
select table1_name.column_name(s),table2_name.column_name(s) from table1_name inner join table2_name on table1_name.column = table2_name.column #基于表之间的共同字段相连接
  • INNER JOIN:如果表中有至少一个匹配,则返回行
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL outer JOIN:只要其中一个表中存在匹配,则返回行
  • SQL union 合并两个或多个select语句的结果 UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同
代码语言:javascript
复制
SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;
#默认选取不同值,如果要允许重复值,使用union all
  • SQL select into 将一个表中的数据复制到另一个中
代码语言:javascript
复制
SELECT * INTO newtable [IN externaldb] #外部数据库 FROM table1;
  • SQL insert into select
代码语言:javascript
复制
INSERT INTO Customers (CustomerName, Country) SELECT SupplierName, Country FROM Suppliers WHERE Country='Germany'; 

两者的区别在于select into复制后创建一个新表,而insert select into复制后添加到一个已有的表格中

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171378.html原文链接:https://javaforall.cn

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL学习笔记
    • 基础部分
      • SQL语法
      • SQL通用数据类型
      • SQL语句
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com