SQL(一)基本语法

打印 上一主题 下一主题

主题 512|帖子 512|积分 1536

一、Sql 语言基本特点


  • 不区分大小写
  • 分号";"表断句,换行符不断句
二、数据查询(按执行顺序排列)



  • 基本格式
  1. Select distinct column_1, Function(column_or_expression), column2 as c2
  2. From my_table
  3.         JOIN another_table
  4.                 on my_table.key1 = another_table.key2
  5. where conditon1 # group by 前的条件筛选
  6. group by column_3
  7. having group_conditon1 # group by 后的条件筛选
  8. order by column_4 asc/desc
  9. limit m offset n
复制代码
1. From & Join



  • 阐明查询数据泉源:可以单表查询,也可以多表查询,多表之间需要有main_key将表格相连。
  • From 或 Join 会第一个执行,确定一个团体的数据范围. 假如要join不同表,可能会生成一个暂时Table来用于下面的过程。总之第一步可以简朴明白为确定一个数据源表(含暂时表)。
  1. #单表查询:
  2. From single_table
  3. # 多表查询:
  4. # 合并在两个表中key1和key2都有的部分
  5. From table1 inner join table2 on table1.key1 = table2.key2
  6. #right join 以右边table2为主,保留table2所有数据,key1超出key2范围的丢掉不要,key2有key1缺失的补为NULL
  7. From table1 right join table2 on table1.key1 = table2.key2
  8. #left join 以左边table1为主,保留table1所有数据,key2超出key1范围的丢掉不要,key1有key2缺失的补为NULL
  9. From table1 left join table2 on table1.key1 = table2.key2
  10. #Full join 全链接,仅Key1有的则Key2为Full,仅Key2有的则Key1为Full,保留所有数据
  11. From table1 Full join table2 on table1.key1 = table2.key2
复制代码
2. Where



  • Where 阐明查询条件(只能用于group by之前),多个条件用and或or链接。
  • 确定了数据泉源 Where 语句就将在这个数据源中按要求举行数据筛选,并丢弃不符合要求的数据行,全部的筛选Column属性只能来自From圈定的表。
  • As别名还不能在这个阶段利用,由于可能别名是一个还没执行的表达式。
  • 常用数值条件语法:
  1. col_num != 4 #基础比较 =, !=;   <, <=;   >, >=;
  2. col_num between 0 and 100 #两数之间
  3. col_num not between 0 and 100 #不在两数之间,在值域外
  4. col_num in (2,4,6) # 在数组内
  5. col_num not in (2,4,6) # 不在数组内
  6. col_num % 2 = 0 # 偶数
  7. col_num %2 # 奇数
  8. col_num %2 =1 # 奇数
复制代码


  • 常用字符串比较语法
  1. col_str = "abc"
  2. col_str != "abc"
  3. col_str like "abc" #没有通配符时,“like” 和 “=” 作用相同
  4. col_str like "%abc%"# %是通配符,表示任意字符。"abc%"表示abc开头的任意字符,"%abc"表示abc结尾的任意字符, 长度无限制。
  5. col_str like "abc_" # "_"表示一个任意字符。"abc_"会匹配到abcd,不会匹配到abc
  6. col_str in  ("A", "B", "C")
  7. col_str not in  ("A", "B", "C")
复制代码
3. Group by



  • Group by 对之前的数据举行分组,统计等,并将结果集缩小为分组数。这意味着其他的数据在分组后会丢弃。
  • Group by 可以同时按照多个变量分组
  • 例:原数据表

  • 按1个变量分组
  1. SELECT role,count(*)as count,building is not Null as bn FROM employees
  2. group by role
复制代码



  • 按2个变量分组
  1. SELECT role,count(*)as count,building is not Null as bn FROM employees
  2. group by role
  3. ,bn
复制代码

4. Having



  • 假如用了Group by分组, Having会在分组完成后对结果集再次筛选。
  • As别名也不能在这个阶段利用.
5. Select



  • 确定结果之后,Select用来对结果Column简朴筛选或盘算,决定输出什么数据.
  • 表现表格内全部列变量,也可以单独筛选某个变量
  1. Select * #查询所有列
  2. Select column_1, column_2, column_3 #选择指定列变量       
  3. #Function: 注意不同sql平台的function有所差异
  4. Count(*) #样本总量计数       
复制代码
6. Distinct



  • 假如数据行有重复Distinct将负责排重.
7. Order by



  • 在结果集确定的环境下,Order by对结果做排序,asc正排从小到大,desc倒排从大到小。
  • 由于Select中的表达式已经执行,此时可以用AS别名.
8. Limit/ Offset



  • 最后 Limit和 Offset从排序的结果中截取部门数据.
  • 常和Order By 语句一起利用,当对整个结果集排序之后,可以用 Limit 指定只返回多少行结果 ,用 Offset 指定从哪一行开始返回。
三、功能公式

1. 字符处置处罚

  1. Length(str)#返回字符串str长度
  2. Locate(substr,str)#返回子串substr在字符串str第一次出现的位置
  3. LTrim(str)#移除字符串str左边的空格
  4. RTrim(str)#移除字符串str右边的空格
  5. Trim(str)#移除字符串str左右两边的空格
  6. Left(str,n)#返回字符串str最左边的n个字符
  7. Right(str,n)#返回字符串str最右边的n个字符
  8. Upper(str)#小写转化为大写
复制代码
2. 时间处置处罚

  1. AddDate() #增加一个日期,天、周等
  2. AddTime() #增加一个时间,天、周等
  3. CurDate() #返回当前日期
  4. CurTime() #返回当前时间
  5. Date() #返回日期时间的日期部分
  6. DateDiff() #计算两个日期之差
  7. Date_Add() #高度灵活的日期运算函数
  8. Date_Format() #返回一个格式化的日期或时间串
  9. Day() #返回一个日期的天数部分
  10. DayOfWeek() #返回一个日期对应的星期几
  11. Hour() #返回一个时间的小时部分
  12. Minute() #返回一个时间的分钟部分
  13. Month() #返回一个日期的月份部分
  14. Now() #返回当前日期和时间
  15. Second() #返回一个时间的秒部分
  16. Time() #返回一个日期时间的时间部分
  17. Year() #返回一个日期的年份部分
复制代码
3. 统计盘算

  1. Avg() #求均值
  2. Max() #求最大值
  3. Min() #求最小值
  4. Sum() #求和
  5. Count() #统计个数
  6. Abs() #求绝对值
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

花瓣小跑

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表