• SQL1-(增删改查、常用函数)


    USE flowershopdb
    
    --全球唯一标识符(GUID UUID)
    SELECT NEWID()
    
    --增删改查
    --INSERT  [INTO] <表名>  [列名] VALUES <值列表>
    INSERT tb_user VALUES('haha','123')
    INSERT INTO tb_user VALUES('gege','123')
    INSERT INTO tb_user(u_name,u_pass) VALUES('wawa','123')
    
    --DELETE [FROM] <表名> [WHERE <删除条件>]
    DELETE FROM tb_user    --[清除该表中的全部数据]
    DELETE tb_user
    DELETE tb_user WHERE u_id=1
    --Truncate Table <表名>  [删除表数据,还原标识]
    Truncate Table tb_user
    
    --UPDATE <表名> SET <列名 = 更新值> [WHERE <更新条件>]
    UPDATE tb_user SET u_name='admin'    --[修改该表中的全部数据]
    UPDATE tb_user SET u_name='admin' WHERE u_id=1
    
    --SELECT <列名> FROM <表名> [WHERE <检索条件>]
    SELECT * FROM tb_user
    SELECT u_id,u_name,u_pass FROM tb_user
    SELECT u_id,u_name,u_pass FROM tb_user WHERE u_id=1
    
    --检索不与任何表关联的数据
    SELECT 1+1
    SELECT GETDATE()
    SELECT 'haha'
    SELECT ASCII('a')
    
    --聚合函数
    SELECT * FROM tb_product
    SELECT COUNT(*),MAX(p_price),MIN(p_price),SUM(p_price),AVG(p_price) FROM tb_product
    
    --数据排序 ASC正序 DESC倒序
    SELECT * FROM tb_product
    ORDER BY p_id DESC
    
    --通配符过滤
    --一个字符 '_'
    SELECT * FROM tb_product 
    WHERE p_name LIKE '_玫瑰干花'
    --任意长度的字符串 '%'
    SELECT * FROM tb_product 
    WHERE p_name LIKE '%玫瑰%'
    --括号中所指定范围内的一个字符 '[]'
    SELECT * FROM tb_product 
    WHERE p_name LIKE '[玫瑰]%' --以 '玫'或'瑰'开头的花
    --C Like '9W0[1-2]' 搜索 '9w01'或'9w02'
    
    --不在括号中所指定范围内的一个字符 '[^]'
    SELECT * FROM tb_product 
    WHERE p_name LIKE '[^玫]%' --不以 '玫' 开头的花
    
    --空值处理 IS NULL或IS NOT NULL
    INSERT tb_user VALUES(null,null)
    SELECT * FROM tb_user WHERE u_name IS NULL
    SELECT * FROM tb_user WHERE u_name IS NOT NULL
    
    --多值匹配 IN或BETWEEN AND
    SELECT * FROM tb_product WHERE p_price IN(2.1,2.2,2.3,2.4)
    SELECT * FROM tb_product WHERE p_price=2.1 OR p_price=2.2 OR p_price=2.3 OR p_price=2.4
    
    SELECT * FROM tb_product WHERE p_price BETWEEN 2.1 AND 2.9
    SELECT * FROM tb_product WHERE p_price>=2.1 AND p_price<=2.9
    
    --数据分组 GROUP BY
    --WHERE子句从数据源中去掉不符合其搜索条件的数据
    --GROUP BY子句搜集数据行到各个组中,统计函数为各个组计算统计值
    
    --通过对d_id分组,然后计算分组后,各组数据和的平均值
    SELECT d_id,AVG(p_price) AS 平均值 FROM tb_product
    GROUP BY d_id 
    
    --分组后查询语句 HAVING[对分组后的信息过滤]
    SELECT d_id,AVG(p_price) AS 平均值 FROM tb_product
    GROUP BY d_id 
    HAVING d_id > 2004
    
    SELECT d_id,AVG(p_price) AS 平均值 FROM tb_product
    GROUP BY d_id 
    HAVING AVG(p_price)>3
    
    --限制结果集行数 TOP
    SELECT TOP 5 * FROM tb_product
    
    --排名函数
    --ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
    
    --对 d_id分组,对p_price升序 排名产生新列 RID
    SELECT ROW_NUMBER() OVER(PARTITION BY d_id ORDER BY p_price ASC) RID,d_id,p_price,p_name FROM tb_product
    -- 先对d_id分组,然后对每组d_id进行p_price升序
    
    --对 p_price升序 产生排名新列 RID
    SELECT ROW_NUMBER() OVER(ORDER BY p_price ASC) RID,p_price,p_name FROM tb_product
    
    --去掉重复数据
    SELECT DISTINCT * FROM tb_product
    
    --联合结果集 UNION
    --基本的原则:每个结果集必须有相同的列数;每个结果集的列必须类型相容。
    --tb_test     c_id{int} c_name{varchar}
    --tb_demo     d_id{int} d_name{nchar}  类型相容
    SELECT t_id,t_name FROM tb_test
    UNION 
    SELECT d_id,d_name FROM tb_demo
    
    --UNION ALL
    SELECT t_id,t_name FROM tb_test
    UNION ALL
    SELECT d_id,d_name FROM tb_demo
    
    --1.UNION合并两个查询结果集,并且将其中完全重复的数据行合并为一条
    --2.Union因为要进行重复值扫描,所以效率低,因此如果不是确定要合并重复行,那么就用UNION ALL
    
    --数字函数
    --ABS() :求绝对值。
    --CEILING():舍入到最大整数 。3.33将被舍入为4、2.89将被舍入为3、-3.61将被舍入为-3。 Ceiling→天花板
    --FLOOR():舍入到最小整数。3.33将被舍入为3、2.89将被舍入为2、-3.61将被舍入为-4。 Floor→地板。
    --ROUND():四舍五入。舍入到“离我半径最近的数” 。Round→“半径”。Round(3.1425,2)。
    
    SELECT ABS(-4.2)
    SELECT CEILING(4.12)
    SELECT FLOOR(6.89)
    SELECT ROUND(4.5,0) --不要小数位
    SELECT ROUND(4.5,1) --保留一位小数
    
    --字符串函数
    --LEN() :计算字符串长度
    --LOWER() 、UPPER () :转小写、大写
    --LTRIM():字符串左侧的空格去掉 
    --RTRIM () :字符串右侧的空格去掉 LTRIM(RTRIM('         bb        '))
    --SUBSTRING(string,start_position,length) 
    --参数string为主字符串,start_position为子字符串在主字符串中的起始位置,length为子字符串的最大长度。SELECT SUBSTRING('abcdef111',2,3)
    --LEFT(string,数字) 截取左边 --RIGHT(string,数字)截取右边 SELECT LEN('123456') --返回指定字符串表达式的字符数 SELECT DATALENGTH('123456') --返回用于表示任何表达式的字节数。 SELECT LOWER('AbCd'),UPPER('AbCd') SELECT LTRIM(' aa'),RTRIM('bb '),LTRIM(RTRIM(' cc ')) SELECT SUBSTRING('abcdefg',1,2) --start_position从1开始 SELECT LEFT('aabbcc',2) --从左边开始,截取两个字符串 SELECT RIGHT('aabbcc',2) --日期函数 --GETDATE() :取得当前日期时间 --DATEADD (datepart , number, date ),计算增加以后的日期。参数date为待计算的日期;参数number为增量;参数datepart为计量单位,可选值见备注。
    --DATEADD(DAY, 3,date)为计算日期date3天后的日期,而DATEADD(MONTH ,-8,date)为计算日期date8个月之前的日期
    --DATEDIFF ( datepart , startdate , enddate ) :计算两个日期之间的差额。 datepart 为计量单位,可取值参考DateAdd。 --DATEPART (datepart,date):返回一个日期的特定部分 SELECT GETDATE() SELECT DATEADD(YEAR,3,'2014/10/02') SELECT DATEADD(MONTH,3,'2014/10/02') SELECT DATEADD(DAY,3,GETDATE()) SELECT DATEDIFF(YEAR,'1995/01/17',GETDATE()) SELECT DATEPART(YEAR,GETDATE()) --类型转换函数 --CAST ( expression AS data_type) --CONVERT ( data_type, expression) SELECT CAST('2014/10/11' AS DATETIME) --字符串转化为日期 SELECT CAST('11' AS INT) --字符串转化为int SELECT CAST(GETDATE() AS VARCHAR) --日期转化为字符串 SELECT CONVERT(DATETIME,'1995/01/17') --字符串转化为日期 SELECT CAST(right('aa1232011-08-09',10) AS DATETIME) --空值处理函数 ISNULL() --ISNULL(expression,value) :如果expression不为空则返回expression,否则返回value SELECT u_id,ISNULL(u_name,'佚名') FROM tb_user

    SQL常用函数集锦:http://www.cnblogs.com/dreamof/archive/2009/02/02/1382487.html

  • 相关阅读:
    红队核心工具介绍
    cms漏洞总结(二)
    cms漏洞总结(二)
    cms漏洞总结(二)
    cms漏洞总结(二)
    cms漏洞总结(二)
    cms漏洞总结(二)
    cms漏洞总结 (一)
    好看的樱花落特效
    SELinux 案例 1
  • 原文地址:https://www.cnblogs.com/wykLog/p/4280138.html
Copyright © 2020-2023  润新知