SQL语句总结

SQL语句是用于访问和处理数据库的标准的计算机语言。
我也刚接触SQL语句,简单的总结一下SQL语句的语法。

在SQL语句中 SELECT ... FROM ...语句是必须的。
WHERE,GROUP BY 以及ORDER BY 三个语句不是必须的。

基本语句
SELECT <table fields list>
FROM <table names list>
WHERE <row constraints specification>  要在行 列 进行一些筛选
GROUP BY <grouping specification>  集合运算,添加的定义,比如平均数
HAVING <grouping selection specification>  针对集合运算,进行限制条件
ORDER BY <order rules specification> 排序
USE 语句
USE database的名字 GO  进入你要进行操作的表
SELECT * FORM production.product
会拿到你这个表里面的所有数据,尽量避免这样使用,因为的你数据有可能会特别多
SELECT TOP 100 * FORM production.product
选择数据库前100条数据
SELECT Id,Name,productNumber,Color FROM production.product
选择这个表里面的 ID,Name,productNumber,Color
ORDER BY排序
SELECT Id,Name,productNumber,Color FROM production.product ORDER BY Id desc
拿到数据库Id,Name,productNumber,Color并且让他按照Id进行倒序decs倒序
SELECT Id,Name,productNumber,Color FROM production.product ORDER BY Id decs,Name
拿到数据库Id,Name,productNumber,Color并且让他按照Id进行倒序,Name进行正序,多个排序用,分割
SELECT Id,Name,productNumber,Color FROM production.product ORDER BY 2
可以传数字,意思就是使用第二个name排序
ISnull 可以用转换
SELECT Id,Name,productNumber,ISNULL(Color,'') FROM production.product 
把表里面Color为null的变成空值,当然你还可以变成别的
SELECT Id,Name,productNumber,ISNULL(Color,'')  AS Color FROM production.product 
在使用ISNULL的时候他会把表名变掉,这时候可以使用AS 把表名重命名一下
SELECT Id,Name AS NA,‘the list price for’ + productNumber + 'is' FROM production.product
可以将数据库里面的内容拿出来时,加上一些字符串拼接。
算数表达式
SELECT Id*10,round(rate*40*52,1) FROM production.product 
你在拿数据的时,可以对数据进行操作 + - * /的操作round1参是数据,2参是保留几位小数
SELECT Id*10,(rate+5)*10 FROM production.product 
也可以写四则运算
WHERE 数据的筛选
= >< 的前提是必须是int格式
SELECT * FROM production.product WHERE id=10
拿到id是10的数据
SELECT * FROM production.product WHERE id>10
拿到id大于10的数据
SELECT * FROM production.product WHERE id>10 and Tocaidue>5000 
拿到id大于10并且Tocaidue大于5000
SELECT * FROM production.product WHERE id>10 or Tocaidue>5000 
拿到id大于10或者Tocaidue大于5000
SELECT * FROM production.product WHERE id>10 and Orderdata >= '2005-08-01' and Orderdata <'2019-01-01'
拿到2005-08-01到2019-01-01的数据
SELECT * FROM production.product WHERE name like '%Montain%'
模糊查询百分比在前面的时候可以查前面有字符的,后面同理
SELECT * FROM production.product WHERE name like '_Montain%'
前面的字段可以是未知
SELECT * FROM production.product WHERE color in ('red','white') 
筛选color是red和white的数据
SELECT * FROM production.product WHERE color not in ('red','white') 
筛选color不是red和white的数据
SELECT * FROM production.product WHERE size is not null
size不是null的数据
UPDATA更新记录
UPDATA user SET age =age-id;sex=0;
user这个表的age=它减去它的id;sex = 0;
但是我们经常这样写
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 
更改LastName = 'Wilson' 的表里面的FirstName变成Fred
DELETE 删除语法
DELETE FROM Person WHERE LastName = 'Wilson' 
删除 LastName = 'Wilson' 的一行数据
INSERT 添加数据
INSERT INTO 表名称 VALUES (值1, 值2,....);
我们也可以指定所要插入数据的列:
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')
//把一个字段的一样的另一个值加起来
SELECT MAC_NBR,GATHER_DAY,STATUS_NBR,PID,DURATION,WEEK_NUM,
SUM(DURATION) as SUMD FROM 
[BANDEX2018_history].[dbo].[STATUS_DAY_GATHER]  
group by MAC_NBR,GATHER_DAY,STATUS_NBR,PID,DURATION,WEEK_NUM 
sql里面写逻辑判断
if exists (select 1 from ORIGINAL_VISUAL_STATUS where mac_nbr =@in_MAC_NBR )
  update ORIGINAL_VISUAL_STATUS set STATUS_NBR =@in_STATUS_NBR,START_DATE=@in_START_DATE where mac_nbr = @in_MAC_NBR
else
  insert into ORIGINAL_VISUAL_STATUS(MAC_NBR,STATUS_NBR,PID,START_DATE) VALUES(@in_MAC_NBR,@in_STATUS_NBR,0,@in_START_DATE)";

同样的设备号 只拿时间最近的一条数据

  select  * from NEW_CUTTER pd inner join 
(
    SELECT MAC_NBR,MAX(BEGIN_DATE)BEGIN_DATE
      FROM NEW_CUTTER
      group by MAC_NBR
 )maxval on(pd.MAC_NBR=maxval.MAC_NBR and pd.BEGIN_DATE=maxval.BEGIN_DATE)  where END_DATE IS  null

left join的模糊查询

left join dbo.LNS_D_VALUE lns on (CHARINDEX(ltrim(lns.MAC_NBR),dt.MAC_NO,1) > 0 AND lns.TIMESTAMP > dt.UP_TIME)

mySQL语句的规范

  1. 关键字和函数名称全部大写
  2. 数据库名称、表名称、字段名称全部小写
  3. SQL语句必须以分号结尾
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、简介 *1、sql概念 : sql是结构化查询语言,是一种对关系型数据库中的数据进行定义和操作的语言,可以在程...
    ninazhang阅读 5,306评论 0 1
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊阅读 18,441评论 0 85
  • 大学的第一门课是军训,很快夏岚和教官见面了,教官是附近军校在读的学生们。新生的训练是男女分开的,一个排30人...
    木芷艳阅读 1,183评论 0 0
  • 春风荡芦苇, 候鸟归故梦。 逆水行孤舟, 豪情驱骨寒。 感谢简友云影拂尘给我题了前两句诗,我来了个狗尾续貂,希望没...
    文朴阅读 4,114评论 8 19
  • 科技的发展日益更新,一支粉笔一本书的单一教学已逐渐淡出,在“互联网+”时代,课堂上频繁出现多媒体及pad的教学工具...
    chomely阅读 1,267评论 0 0