zoukankan      html  css  js  c++  java
  • sql基础知识(新手必备)

    一、简单查询

    1、查询所有数据,查询部分列数据,列别名

       SELECT * FROM 表名

      SELECT 列1 AS 'BIAOTI1','BIAOTI2'=列2  FROM 表名

    2、查询不重复的数据,

      SELECT  DISTINCT  列名 FROM 表名

    3、查询前n行数据

      SELECT  TOP  N  PERCENT * FROM 表名

    4、过滤行 

        运算符:比较运算符、逻辑运算符(AND/OR/NOT)、范围运算符([NOT]BETWWEEN  AND)、列表运算符(IN(值列表))、模式匹配符、空值判断符

        SELECT * FROM 表名  WHERE  条件 

       模式匹配符:where 列名1 LIKE  '%'  '_'      '[^0-9][A-Z]'

       NULL判断符:IS NULL  /IS NOT NULL

    5、排序   ORDER BY 列名1  [ASC/DESC],列名2  [ASC/DESC]

    二、函数

    1、字符串函数:substring(expression,start,length)、--求子串

                   str(float_expression,[length,[decimal]])--将数字类型转换成字符类型

    2、日期函数:getdate()、--获取当前系统日期

                  dateadd(datepart,number,date)、--yy  mm dd 

                 Datediff(datepart,date1,date2)、--求两个日期的差

                 Year(date)、Month(date)、Day(date)

    3、数学函数:round(numeric_exp,length)--

    4、转换函数:convert(datatype [(length)],expression[,style])--类型转换函数

    5、次序函数:row_number()、Rank()、dense_rank() 

    6、Isnull函数--

    7、集合函数:min,max,sum,avg,count       

    三、分组

             分组过滤(列1.列2 ,必须在group by 中出现的)

          SELECT  列1 ,列2 ,COUNT(列3) FROM 表名 WHERE 条件

          GROUP BY  列1,列2

          HAVING 条件(分组之后的过滤,可以用聚合函数)

    四、连接(子查询结果集如果在一个表中,用子查询,否则用连接)

    1、内连接:  SELECT A.列名 ,B.列名  FROM 表1  A

                [INNER] JOIN  表2  B  ON  A.列名= B.列名

    2、外连接:左外连接、右外连接、全外连接

              (保证一个表中的数据,全部显示出来,再加上另一个表中满足条件的数据)

             SELECT A.列名 ,B.列名  FROM 表1  A

               LEFT|RIGHT|FULL [OUTER] JOIN  表2  B  ON  A.列名= B.列名

    五、子查询

            select 列名1,列名2  from 表1

               where 列 运算符 (select 语句)

            select 列名1,列名2  from 表1

                where [not] exists (select 语句)

             [not] in

             [not] exists

             比较运算符引出的子查询

    六、建库建表  creat alert drop 管理结构

    1、建库 CREATE DATABASE 数据库名   / 删除数据库  DROP  DATABASE 数据库名

               一般情况: mdf数据库主文件  ldf 日志文件 

                特殊情况(大型数据库): ndf辅助文件

    2、建表 CREATE TABLE 表名         /    DROP TABLE 表名

             ( 列名1 数据类型  约束,  null/not null primary key check(),

               列名2 数据类型  约束                  unique,

              列名3 数据类型  约束                  Default值

              列名4 数据类型  约束                  foreign key references 表名2(列明)

             )

             --添加字段

           ALTER TABLE 表名

           ADD

             --修改字段 

             ALTER TABLE 表名

            ALTER

             --删除字段

            ALTER TABLE 表名

            DROP

         use  数据库

    3、管理表

       INSERT [INTO]  表名(列列表)VALUES(值的列表)

       UPDATE   表名  SET  列1=值1,列2=值2 WHERE  条件

       DELETE  FROM 表名  WHERE  条件

    七、数据完整性 constraint  references 

    类型:  1.实体完整性

            2.参照(引用)完整性 

             3.域完整性

             4.用户自定义完整性

    实现:

    1、Primary key 主键

    2、Foreign key 外键  REFERENCES  表名(列名)

    3、Unique 唯一约束

    4、Check  检查约束

    5、Default 默认值约束

       数据管理

                 添加数据

                   insert [into] 表名 (列列表) values(zhi leibiao)

                 更新数据

                   update  表名 set 列名1=值1,列名2=值2 where

                 删除数据

                   delete  from  表名 where

    八、视图

       优点:

        语法:create view view_name

                 as select 语句

    九、索引

         优点:提高对数据库操作的性能 建在经常使用的,小字段的地方

          语法:create index index_name

                 on 表(列1,列2)

    十、存储过程

        优点:可以重用代码 客户端只要发送很少的参数跟存储过程名就可以 减少网络流量 安全性高

        语法:create proc 存储过程名

               @aa  类型,           输入参数

               @bb  类型 output      输出参数

              as sql语句

                 return 数值

        调用:exec 过程名 参数[output]

    十一、事务

        特点:

        四个特性:原子性   独立性 一致性  持久性

        begin transaction 建立一个显示事务

    commit transaction :标识一个隐士或显示事务

    /*
    以上内容为本人业余时间整理,部分内容来源网络,如有错误欢迎各位批评指正。


    */
  • 相关阅读:
    django基础知识之模型查询:
    django基础知识之定义模型:
    django基础知识之ORM简介:
    django基础知识之认识MVT MVC:
    解决ImportError: libmysqlclient_r.so.16: cannot open shared object file-乾颐堂
    python 多继承详解-乾颐堂
    一步步来用C语言来写python扩展-乾颐堂
    nltk 之 snowball 提取词干-乾颐堂
    Python 执行js的2种解决方案-乾颐堂
    常用的 Python 调试工具,Python开发必读-乾颐堂
  • 原文地址:https://www.cnblogs.com/Lin267307031/p/2862629.html
Copyright © 2011-2022 走看看