• MSSQL 基础知识与语句笔记


    建库

    CREATE DATABASE 数据库名

    ON[PRIMARY]  --默认属于PRIMARY主文件组,可省略

    (

    NAME='',  --主数据文件的逻辑名 名称

    FILEAME='',  --主数据文件的物理名 路径 .mdf 次数据库为.ndf

    SIZE=5mb,  --主数据文件初始大小

    MASSIZE=100mb,  --主数据文件增长最大值

    FILEGROETH=15%  --主数据文件增长率

    )

    LOG ON

    (

    NAME='',  --日志文件的逻辑名

    FILEAME='',  --日志文件的物理名 .ldf

    SIZE=5mb,  --日志文件初始大小

    MASSIZE=100mb,  --日志文件增长最大值

    FILEGROETH=15%  --日志文件增长率

    )

    删库  跑路

    DROP  DATABASE 数据库名

    删表

    DROP TABLE 表名

    一个表只能有一个主键,主键约束确保了表中的行是唯一的。

    表中可以没有主键。

    如果两列或多列组合起来唯一的标识每一行,则该主键又称组合键。

    外键是对应主键而言的,是子表中对应于主键的列,他的值要求与主表的主键或者唯一键对应。

    常用数据类型:

    二进制数据:image是C#中的byte[]类型,数量随意。binary数据量限定。

    字符串类型:

    char//ncher//varcher//nvarcher

    text//ntext

    varcher(MAX)//nvercher(MAX)

    不带n的数据类型,存储英文数字是一个字节,汉子两个字节。带n的则全部两个字节。char(2个字节) nchar(2个字符(4个字节))。

    不带n的长度最长8000。带n的最长可以4000。(varcher(MAX)//nvercher(MAX)最大可以四个G,在05版本之前使用text,ntext。)

    不带var的表示固定长度(永远占固定的字节,自动补全字节数,浪费空间)。带var的表示可变长度。

    时间数据:datetime

    插入语句(增)

    INSERT INTO 表名 (列名,列名) VALUES ('xx','xx')

    删除语句(删)

    DELETE FROM 表名

    WHERE 条件

    删除全部记录:DELETE FROM 表名  --表结构,列,索引等还将存在,自增值依然从大值递增。

    删除全部数据:TRUNCATE TABLE 表名    --不能用于有外键的表,表结构,列,索引等还将存在,速度比DELETE语句快。自增值重置。不触发触发器。

    修改语句(改)

    UPDATE 表名

    SET 列名=值,列名=值

    WHERE 条件

    搜索语句(查)

    搜索语句的处理顺序

    FORM 表名

    ON

    INNER JOIN ...

    WHERE 条件

    GROUP BY ...

    WITH CUBE或WITH ROLLUP

    HAVING ...

    SELSCT 列名

    DISTINCT

    ORDER BY ASC/DESC

    TOP

    排序查询 ORDER BY ASC/DESC

    该语句必须,一定放在语句的最后。

    分组查询 GROUP BY 列名

    当使用了分组语句或聚合函数时,在select列表中不能再包含其他的列名,除非该列名在分组语句中或聚合函数中。

    分组后判断条件 HAVING

    对分组后的条件筛选必须使用HAVING子句,在GROUP BY句之前可用WHERE。

    having可以使用聚合函数,但while不可。

    联合结果集 UNION

    联合要求多个结果集列的数目相同,列的数据类型兼容。

    UNION会去处重复,重新排序。UNION ALL不会,节省性能。

    SELECT 表名.列,表名.列 FORM 表名 INNER JOIN 表名 ON 条件    --内连接查询语句,INNER JOIN可简写成JOIN

    SELECT 表名.列,表名.列 FORM 表名 LEFT/RIOGHT/FULL OUTER JOIN 表名 ON 条件

    --左外链接语句,OUTER可省略,结果集会包括LEFT JOIN所指定的左表的所有行,如果左表行在右表中无匹配,将会填充为空,右连接同理。

    --FULL表示完全外链接,结果集会包含左右表的所有行,当某行在另一表中没有匹配行则会包含空值。

    查询所有列,去重复数据:SELSCT DISTINCT* FORM 表名

    DISTINCT  --针对查询出的结果集去除重复

    限制行数查询:SELSCT TOP 5 * FORM 表名 ORDER BY 列名 ASC/DESC

    TOP  --常与 ORDER BY 连用,

    关于空值查询 NULL

    NULL值无法用=和<>来判断,使用IS NULL或者IS NOT NULL。

    任何值与 NULL 计算,结果都是NULL。

    模糊查询

    模糊查询:SELECT 列名 LIKE '%'

    _  表示任意单个字符。

    %  表示任意多个字符。

    【0-9】【a-z】【_】表示筛选范围,^表示排除范围。

    []  转义  ESCAPE '/' 后跟此句代表自定义转义符。

    按百分比限制查询:SELSCT TOP 50 PERCENT * FORM 表名

    在某个范围查询:SELECT 列名 BETWEEN '' AND ''

    在某些值内查询:SELECT 列名 FORM 表名 IN ('','')

    聚合函数

    聚合函数不统计空值

    查询表达式中数值的和:SELECT SUM(列名) FORM 表名 WHERE 条件

    查询平均值:SELECT AVG(列名) FORM 表名 WHERE 条件

    查询最小值:SELECT MIN(列名) FORM 表名 WHERE 条件

    查询最大值:SELECT MAX(列名) FORM 表名 WHERE 条件

    查询非空列:SELECT COUNT(列名) FORM 表名 WHERE 条件

    类型转换函数

    CAST(值 as 数据类型)

    CONVERT(数据类型,值)

    黑马公开课: http://yun.itheima.com/course/165.html

    转载请联系



    转载请标明出处

    作者:AaXuan

    地址:http://www.cnblogs.com/Aaxuan

    知识共享许可协议

    本作品采用  知识共享署名 3.0 未本地化版本许可协议  进行许可。

  • 相关阅读:
    《算法竞赛入门经典》—— 5.2.6 栈、队列与优先队列
    《算法:C语言实现》—— 第二部分 —— 第3章 —— 基本数据结构
    《算法:C语言实现》—— 第二部分 —— 第3章 —— 基本数据结构
    《算法:C语言实现》—— 第二部分 —— 第3章 —— 基本数据结构
    Broken Keyboard (a.k.a. Beiju Text)
    Broken Keyboard (a.k.a. Beiju Text)
    Broken Keyboard (a.k.a. Beiju Text)
    mongodb实战聚合 组内排序
    mongodb实战聚合 组内排序
    MongoDB基础篇:MongoDB Shell命令大全
  • 原文地址:https://www.cnblogs.com/Aaxuan/p/6131512.html
Copyright © 2020-2023  润新知