文章标题

SQL笔记

一、DDL
1.数据类型
字符 varchar2(可变长度) char(固定长度)
数字 number(数字) float(小数)
日期 date(精确到秒)

2.数据定义语言

    CREAT TABLE productinfo
    (
    productID varchar2(10),
    productName varchar2(10)
    )
ALTER TABLE productinfo
ADD remark varchar2(200);
MODIFY remark number(2,2);
DROP column remark;

3.约束

    CREAT TABLE productinfo
    (productID varchar2(10),
    primary key(productID)
    )
之后添加约束
ALTER TABLE productinfo
ADD 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 productinfo
WHERE...

“`
使用别名替代字段名
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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值