SQL笔记之开天辟地
order by 和 group by 是不一样的
SQL开天辟地笔记
- TIPS
- 通用用法
- CREATE TABLE 创建表
- SQL约束
- NOT NULL
- UNIQUE
- PRIMARY KEY 主键
- FOREIGN KEY
- CHECK
- DEFAULT
- 函数
- 简单函数
- MS Access:
- SQL Server :
- MS Access 中的 Scalar 函数
TIPS
order by 和 group by 是不一样的
通用用法
调用select [distinct] 列 from 表 [where 列 运算符 值] [order by 列1,列2 [desc]]去重复 筛选 排序 逆序
插入INSERT INTO 表名称 VALUES "值1, 值2,...."INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)修改UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值删除DELETE FROM 表名称 WHERE 列名称 = 值DELETE FROM 表 '等效于' DELETE * FROM 表 极值SELECT TOP 数字|百分比 列 FROM 表
MySQLSELECT column_name(s)FROM table_nameLIMIT m,n 从m+1开始保留n个,m可以不要
OracleSELECT *FROM PersonsWHERE ROWNUM <= 5LIKE WHERE 列 NOT LIKE '%a'或者'a%'或者'%a%'WHERE 列 LIKE '%a'或者'a%'或者'%a%'INWHERE 列 IN (value1,value2,...)BETWEEN 包头不包尾**不同数据库不一样!!!!!!!!!!!!!!BETWEEN value1 AND value2SQL Alias 表列别名创建
表:便于查找SELECT alias_name.column_name(s)FROM table_nameAS alias_name
列:修改输出列名SELECT column_name AS alias_nameFROM table_name双表引用:
法1SELECT 表1.列1, 表1.列2, 表.列1FROM 表1, 表2WHERE Persons.Id_P = Orders.Id_P
法2
JOIN 互补信息FROM 表1 JOIN 表2 ON 表1.XXX=表2.XXXJOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
INNER JOIN和JOIN没有区别SQL UNION 合并select输出的结果 SELECT column_name(s) FROM table_name1UNION "ALL"SELECT column_name(s) FROM table_name2
UNION 选取不同的值
UNION ALL 可以重复SELECT INTO 选择拷贝SELECT 列名INTO new_table_name [IN externaldatabase] FROM old_tablenameCREATE DATABASE 创建数据库CREATE DATABASE database_name
通配符
通配符 | 描述 |
---|---|
% | 替代一个或多个字符 |
_ | 仅替代一个字符 |
[字符] | 字符列中的任何单一字符 |
[^字符] 或者 [!字符] | 不在字符列中的任何单一字符 |
CREATE TABLE 创建表
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)
数据类型 | 描述 |
---|---|
integer(size)
int(size) smallint(size) tinyint(size) |
仅容纳整数。在括号内规定数字的最大位数。 |
decimal(size,d)
numeric(size,d) |
容纳带有小数的数字。
“size” 规定数字的最大位数。“d” 规定小数点右侧的最大位数。 |
char(size) |
容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。
在括号中规定字符串的长度。 |
varchar(size) |
容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。
在括号中规定字符串的最大长度。 |
date(yyyymmdd) | 容纳日期。 |
SQL约束
跟在数据类型后头限定数据格式、要求等
NOT NULL
不接受NULL,必须包含值,否则无法继续更新
UNIQUE
提供为唯一性保证
3种形式:
CREATE TABLE Persons
(
Id_P int UNIQUE
UNIQUE(Id_P,其他也可以)
)
建立后
ADD UNIQUE(Id_P)增加限制名称
ADD CONSTRAINT 限制名称 UNIQUE (Id_P)
撤销
MySQL:ALTER TABLE PersonsDROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:ALTER TABLE PersonsDROP CONSTRAINT uc_PersonID
PRIMARY KEY 主键
主键:必须是唯一值,不能是NULL
必须有且唯一
NOT NULL 限制是必须的
其实就是成行定位基准
MySQL:尾部接PRIMARY KEY (Id_P)
SQL Server/ Oracle/MS Access:Id_P int NOT NULL PRIMARY KEY定义约束名:
CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)添加:使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)ALTER TABLE PersonsADD PRIMARY KEY (Id_P)ALTER TABLE PersonsADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
撤销:
MySQL:ALTER TABLE PersonsDROP PRIMARY KEYSQL Server / Oracle / MS Access:ALTER TABLE PersonsDROP CONSTRAINT pk_PersonID
这上面就很矛盾一下就说必须要建立主键,后面又能添加就很扯
FOREIGN KEY
CHECK
DEFAULT
函数
建立方式
SELECT function(列) FROM 表
简单函数
MS Access:
函数 | 描述 |
---|---|
AVG(column) | 返回某列的平均值 |
COUNT(column) | 返回某列的行数(不包括 NULL 值) |
COUNT(*) | 返回被选行数 |
FIRST(column) | 返回在指定的域中第一个记录的值 |
LAST(column) | 返回在指定的域中最后一个记录的值 |
MAX(column) | 返回某列的最高值 |
MIN(column) | 返回某列的最低值 |
STDEV(column) | |
STDEVP(column) | |
SUM(column) | 返回某列的总和 |
VAR(column) | |
VARP(column) |
SQL Server :
函数 | 描述 |
---|---|
AVG(column) | 返回某列的平均值 |
BINARY_CHECKSUM | |
CHECKSUM | |
CHECKSUM_AGG | |
COUNT(column) | 返回某列的行数(不包括NULL值) |
COUNT(*) | 返回被选行数 |
COUNT(DISTINCT column) | 返回相异结果的数目 |
FIRST(column) | 返回在指定的域中第一个记录的值(SQLServer2000 不支持) |
LAST(column) | 返回在指定的域中最后一个记录的值(SQLServer2000 不支持) |
MAX(column) | 返回某列的最高值 |
MIN(column) | 返回某列的最低值 |
STDEV(column) | |
STDEVP(column) | |
SUM(column) | 返回某列的总和 |
VAR(column) | |
VARP(column) |
MS Access 中的 Scalar 函数
函数 | 描述 |
---|---|
UCASE© | 将某个域转换为大写 |
LCASE© | 将某个域转换为小写 |
MID(c,start[,end]) | 从某个文本域提取字符 |
LEN© | 返回某个文本域的长度 |
INSTR(c,char) | 返回在某个文本域中指定字符的数值位置 |
LEFT(c,number_of_char) | 返回某个被请求的文本域的左侧部分 |
RIGHT(c,number_of_char) | 返回某个被请求的文本域的右侧部分 |
ROUND(c,decimals) | 对某个数值域进行指定小数位数的四舍五入 |
MOD(x,y) | 返回除法操作的余数 |
NOW() | 返回当前的系统日期 |
FORMAT(c,format) | 改变某个域的显示方式 |
DATEDIFF(d,date1,date2) | 用于执行日期计算 |
AVG()SELECT AVG(column_name) FROM table_nameSELECT AVG(OrderPrice) AS OrderAverage FROM OrdersSELECT Customer FROM OrdersWHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)
SQL笔记之开天辟地相关推荐
- 金典 SQL笔记(2)
金典 SQL笔记(2) 由于在本地笔记上写的.CSDN markdown编辑器仅仅支持.md格式导入, 图片没办法直接导进去.写的多了懒的一张一张图片切图上传; 直接整个文章切成图片上传上去了. po ...
- SQL 笔记 By 华仔
-------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据 ...
- Cris 的 Spark SQL 笔记
一.Spark SQL 概述 1.1 什么是Spark SQL Spark SQL 是 Spark 用来处理结构化数据的一个模块,它提供了2个编程抽象: DataFrame 和DataSet,并且作为 ...
- PL SQL笔记(三)
loopif credit_rating < 3 then..exit;end if; end loop; select to_char(sysdate, 'YYYY-MM-DD HH24:MI ...
- 10g数据库入门与实践 oracle_从实践中学习Oracle SQL笔记一
最近开始做Oracle备份相关的工作,但是Oracle从来没有用过,有点懵.这两天看了一遍官网,找了几本书学习,现对学习的东西总结总结. 这一节主要讲一下入门的概念 首先Oracle是有一个datab ...
- 转-《高性能mysql》并不是一本好书——SQL笔记
转自: https://book.douban.com/review/8122660/ 版权归作者所有,任何形式转载请联系作者. 作者:姚泽源(来自豆瓣) 来源:https://book.douban ...
- SQL笔记-检索出ID为Int或Long中不连续的第一个点
命令如下: select MY_ID+1 from TableName where MY_ID+1 not in(select MY_ID from TableName) and MAP_ID+1&l ...
- SQL笔记-通过构建索引表方便数据库管理
首先来帖下SQL代码吧: /* SQLyog Ultimate v11.24 (32 bit) MySQL - 5.5.56 : Database - demostrationtest ******* ...
- 阿里P8整理出SQL笔记:收获不止SOL优化抓住SQL的本质
开头我先说: 有人就有江湖,有江湖就有IT系统,有IT系统就有数据库,有数据库就有SQL,SQL应用可一字概括:""广".加之其简单易学,SQL实现也可一字概括:&quo ...
- 黑马程序员MySQL-存储过程SQL笔记
对应课程地址 -- 存储过程 -- 准备数据 create database if not exists mydb7_procedure; use mydb7_procedure; create ta ...
最新文章
- python保存到固定文件夹的存储路径不能直接复制!
- js php滚动图代码,JavaScript_JS实现的N多简单无缝滚动代码(包含图文效果),本文实例讲述了JS实现的N多简 - phpStudy...
- 目标意识应求成大于避败 思考时不要先意识到身不足而自我设限
- ConcurrentHashMap的源码分析-为什么要做高低位的划分
- 《C++ Primer 第五版》(第4.11-4.12节)——static_cast,const_cast和reinterpret_cast类型转换, 运算符优先级表
- Windows 桌面主题,桌面背景
- 怎么能让宝贝快点入睡?
- Bailian2810 完美立方【暴力】(POJ NOI0201-1812)
- 心不唤物,物不至,聊聊积极心态重要性
- linux驱动篇-touchscreen-精简版
- C++——运算符的重载
- 《东周列国志》第六十四回 曲沃城栾盈灭族 且于门杞梁死战
- GB28181国标平台接入摄像头、NVR录像机通道数位0没有通道的处理方式
- Appium+Python MAC安装Android夜神模拟器(二)
- Autofac的高级使用——Autofac.2.6.3.862
- 如何用 Redis 查询 “附近的人” ?
- 【操作系统】操作系统知识点整理;C++ 实现线程池与windows 线程池的使用;
- 京东数科与中铁武汉电气化局达成战略合作 数字科技助力电气化铁路建设
- 【深度学习入门】——亲手实现图像卷积操作
- 网络营销工具:网上收集的30个常用SEO工具
热门文章
- eclipse导入javaWeb项目
- 背包九讲(超值得看的一大坨资料,附代码、视频、资料...)
- 快速入手光学字符识别控件Aspose.OCR!学会使用C#以编程方式对图像执行OCR
- java ocr linux_linux (centos7)上装Tesseract-OCR最新版本(5.0)
- 发那科机器人编程软件fanuc roboguide授权补丁_工业机器人离线编程与应用:ROBOGUIDE V8.3版本的工程文件创建...
- 黑客入侵电脑网络四大步骤全面曝光
- 基于STM32单片机设计指纹考勤机+上位机管理
- Scratch3 优化,开启压缩,提高访问速度
- mysql绘制er图教程_使用MySQLWorkBench绘制ER图
- 蓝牙路由器系列产品:企业级Cassia E1000