Fork me on GitHub

SQL常用操作1

数据库简介

  • 解决的问题:持久化存储 优化读写 保证数据的有效性

  • 关系型数据库:基于E-R模型 使用sql语言进行操作

  • 分类:文档型 服务型

  • 数据库设计

    1.三范式:列不可拆分 唯一标识 引用主键
    2.关系及存储:1对1 1对多 多对多

查询

  • as 给表取别名

语法:select * from table_name as tn; as可以省略

  • 完成列筛选
    语法:select table_name,column

  • 查询前n部分的数据

top n column:表示查看前n行
top n percent column:表示查看前百分之几的数据

  • 排序:order by column

eg: select top 2 * from table_name order by column asc/desc,column2 desc 多个条件的排序

  • 消除重复:distinct

eg: select distinct column from table_name

  • 条件查询:写在where后面

between…and 表示一个连续范围内
in 表示在一个非连续范围内

  • 模糊查询

用于处理字符串类型的值,运算符包括:like % _ [] ^
%与写在[]中表示本身的含义
在[]表示一个连续范围内可以使用

^写在[]内部的开头语,表示不适用内部的任意字符

  • 连接查询

当需要的结果从多张表中取时
内连接:inner join 两表中完全匹配的数据
左外连接:left outer join 两表中完全匹配的数据 左表中特有的数据
右外连接:right outer join 两表中完全匹配的数据 右表中特有的数据
完全外连接:full outer join

语法:select * from table_name1 inner join table_name2 on table_name1.cid=table_name2.cid

  • 聚合函数

对数据进行合并
count: select COUNT(*) as count1 from table_name
NULL不做计数

max(min):select max(scorevalue) from table_name
avg:select avg(secorevalue) from subjectinfo inner join scoreinfo on subid=subject.sid where sTitle=’语文’

  • 开窗函数 over()

和聚合函数一起使用,将统计信息分布到每一行中去

  • 分组 group by 列名1 列名2

  • 联合查询:列数要一致,列的类型要一样

union/union all/ except/ intersect
在查询结果出显示汇总

  • 快速备份

向未有表备份:select 列名 into 备份表名 from 源表名
向已有表备份:insert into table_name(column1) select column1 fron table_name2

  • 总结
    select distinct top n * from t1 join t2 on…where group by…having…order by

内置函数

  • 类型转换函数
    cast(expression as date_type): 将任意类型转换到任意类型
    convert(date_type,expression[style]) 将任意类型转换到任意类型,如果目标类型是字符串,则可以设置格式
  • 字符串函数
    ascii,left,right.substring:字符串截取
    len,lower,upper,ltrim,rtrim:转大小写 去空格
  • 日期函数
    getDate,dateAdd,dateDiff,datePart
-------------本文结束感谢您的阅读-------------
Donate comment here