文章标题
来源:互联网 发布:dvp_60es编程 编辑:程序博客网 时间:2024/06/05 20:06
SQL笔记
一、DDL
1.数据类型
字符 varchar2(可变长度) char(固定长度)
数字 number(数字) float(小数)
日期 date(精确到秒)
2.数据定义语言
CREAT TABLE productinfo ( productID varchar2(10), productName varchar2(10) )
ALTER TABLE productinfoADD remark varchar2(200);MODIFY remark number(2,2);DROP column remark;
3.约束
CREAT TABLE productinfo (productID varchar2(10), primary key(productID) )
之后添加约束ALTER TABLE productinfoADD CONSTRAINTS pk_productinfo PRIMARY KEY(productID)
二、DML&DQL简单介绍
添加数据用INSERT
INSERT INTO productinfo(productID,productName) values(a,a); INSERT INTO productinfo(productID,productName) select x1,x2 FROM table2; CREAT TABLE productinfo2 AS SELECT productID,productName FROM productinfo; 修改数据用UPDATE UPDATE productinfo SET productID=a,productName=a WHERE ...; 删除数据用DELETE DELETE FROM productinfo WHERE ... 查询数据用SELECT SELECT * FROM productinfo where productID='a'; 无条件删除全表记录 TURNCATE TABLE productinfo [同时进行增加和修改MERGE
MERGE INTO productinfo USING productinfo2 ON () WHEN MATCHED THEN merge_update_clause WHEN NOT MATCHED THEN merge_insert_clause;]
三、SELECT简单检索
SELECT DISTINCT productName FROM productinfoWHERE...
“`
使用别名替代字段名
SELECT productID 产品编号,productName AS 产品名称 FROM productinfo;
输出结果调整
SELECT productID,productprice || ‘’ || 1.25 || ‘’ || productprice*1.25 AS new_productprice FROM productinfo;
去重
SELECT distinct(category) 产品类型 FROM productinfo;
排序(ASC DESC NULL值默认最小,表达式,字段位置可作为排序字段)
SELECT productName,quantity FROM productinfo ORDER BY quantity DESC;
SELECT productName,quantity FROM productinfo ORDER BY quantity DESC NULLS LAST;
多字段排序(第一字段相同按第二字段再排序)
SELECT productName,category,quantity FROM productinfo ORDER BY category ASC,3 DESC;
要求产品前6位是024003
…WHERE SUBSTR(productID,1,6) = ‘024003’;
多个条件用BETWEEN AND,AND,OR
模糊查询‘_’替代一个字符,’%’替代多个字符
SELECT productName,productprice FROM productinfo WHERE productName LIKE ‘%三星%’;
用IN查询
SELECT…FROM productinfo
WHERE category NOT IN(‘123’,’345’);
针对NULL数据
…WHERE quantity IS NOT NULL;
分组(不允许放在WHERE语句里面,可以放在后面)
SELECT category,AVG(productprice) 平均价格 FROM productinfo GROUP BY category;
计算出不同类型产品的平均价格列出高于2000的(WHERE对FROM负责,HAVING对GROUP负责)
…GROUP BY category HAVING AVG(productprice)>2000;
子查询(ANY,SOME,ALL)
SELECT productName,productprice FROM productinfo
WHERE productprice =
some (SELECT productprice FROM productinfo WHERE category = ‘0100’) AND category <> ‘0101’;
四、连接查询
内连接
五、常用函数
SIGN()取符号,正数1,00,负数-1,FLOAT和DOUBLE或者NaN时都会返回1
CEIL(n)返回大于等于n的最小整数
FLOOR(n)返回小于等于n的最大整数
ROUND(100.12345,4)四舍五入成4位小数,即100.1235,n为负数则为100.1
TRUNC()函数与ROUND类似,不进行四舍五入,直接截取
LENGTH()获取字符长度
SUBSTR()截取字符
SELECT SUBSTR(Store_Name, 3)
FROM Geography
WHERE Store_Name = ‘Los Angeles’;
输出结果 ‘an D’
REPLACE()替换字符串
RPAD()字符串填充
TRIM()删除字符串首尾指定字符
六、日期部分
SYSDATE得到系统当前日期
SYSTIMESTAMP得到系统时间
LAST_DAY()返回参数指定日期对应月份的最后一天
NEXT_DAY(SYSDATE,‘星期一’)当前日期向后一周的星期一的日期
EXTRACT()得到指定的日期部分
MONTHS_BETWEEN()
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- FtpClient文件的下载
- 二分搜索树
- LeetCode 6 :Zigzag Conversion
- Codeforces Round #433
- HDU 2157How many ways??(矩阵快速幂)
- 文章标题
- SpringMVC文件上传的实现+文件上传工具类设计
- flume--03-flume读取web应用某个文件夹下日志到hdfs
- asp.net core策略授权
- visual studio 2015 光标变成一闪一闪的小方块
- androiod图片加入系统图库
- Using FiddlerCore to capture HTTP Requests with .NET
- vuex 2.0学习心得(下)--- getter
- 5、原型模式(Prototype)