zoukankan      html  css  js  c++  java
  • MYsql数据库相关知识

    1、Sql = 数据操作语言 (DML) 和 数据定义语言 (DDL)。

    DML:查询和更新指令构成了 SQL 的 DML 部分:

    • SELECT - 从数据库表中获取数据
    • UPDATE - 更新数据库表中的数据
    • DELETE - 从数据库表中删除数据
    • INSERT INTO - 向数据库表中插入数据


    DDL) 部分创建或删除表格、定义索引(键),规定表之间的链接,以及施加表间的约束。

    • CREATE DATABASE - 创建新数据库
    • ALTER DATABASE - 修改数据库:在已有的表
    • CREATE TABLE - 创建新表
    • ALTER TABLE - 变更(改变)数据库表
    • DROP TABLE - 删除表
    • CREATE INDEX - 创建索引(搜索键)
    • DROP INDEX - 删除索引

    2、关键字:

    1)distinct 放在列的最前边,表示某列不同的值。

    SELECT DISTINCT 列名称 FROM 表名称

    2)ORDER BY 语句用于根据指定的列对结果集进行排序。默认升序,desc降序

    3)LIMIT 返回记录的数目限制

    4)like + 通配符---匹配莫中模式

    5)IN 操作符允许我们在 WHERE 子句中规定多个值 :

    SELECT * FROM Persons
    WHERE LastName IN ('Adams','Carter')

    6)join:从两个或更多的表中获取结果。我们就需要执行 

    方法1 :SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons, Orders
    WHERE Persons.Id_P = Orders.Id_P 
    方法2:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    INNER JOIN Orders
    ON Persons.Id_P = Orders.Id_P
    ORDER BY Persons.LastName

    INNER JOIN 关键字在表中存在至少一个匹配时返回行。没有就不返回

     LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

    RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

    只要其中某个表存在匹配,FULL JOIN 关键字就会返回行

    7)UNION 操作符用于合并两个或多个 SELECT 语句的结果集,把两个相同结构和数据类型的列表的结果和成一列显示,不许有重复值,

    UNION ALL  可有重复值。

    SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2

    8)SQL SELECT INTO 语句可用于创建表的备份复件。

    SELECT *
    INTO new_table_name [IN externaldatabase] 
    FROM old_tablename

    9)约束:constraints,可在创建时或之后

    • NOT NULL:不接受 NULL 值。
      CREATE TABLE Persons
      (
      Id_P int NOT NULL,
    • UNIQUE:
      UNIQUE (Id_P)
    • PRIMARY KEY:每个表都应该有一个主键,并且每个表只能有一个主键。
      PRIMARY KEY (Id_P)
    • FOREIGN KEY:一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
      •   多列加外键:ALTER TABLE Orders
        ADD CONSTRAINT fk_PerOrders
        FOREIGN KEY (Id_P)
        REFERENCES Persons(Id_P)
      •   单列加外键
        ALTER TABLE Orders
        ADD FOREIGN KEY (Id_P)
        REFERENCES Persons(Id_P)
    • CHECK:

      如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

      CHECK (Id_P>0)

      如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

      CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
    • DEFAULT:DEFAULT 约束用于向列中插入默认值。
      OrderDate date DEFAULT GETDATE()

    10)删除表内数据TRUNCATE TABLE 命令(仅仅删除表格中的数据):

    TRUNCATE TABLE 表名称

    11)视图是基于 SQL 语句的结果集的可视化的表 ,创建视图等

    12)GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。可以合计多个列

    SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
    GROUP BY Customer,OrderDate

    13) SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

    SELECT Customer,SUM(OrderPrice) FROM Orders
    GROUP BY Customer
    HAVING SUM(OrderPrice)<2000

    3、细节:
    单引号扩文本,数字不用引号

    SQL 理代码的顺序:

    ( 8 ) SELECT  ( 9 ) DISTINCT   ( 11 ) < Top  Num >   < select  list > 
     ( 1 ) FROM   [ left_table ] 
     ( 3 ) < join_type >   JOIN   < right_table > 
     ( 2 ) ON   < join_condition > 
     ( 4 ) WHERE   < where_condition > 
     ( 5 ) GROUP   BY   < group_by_list > 
     ( 6 ) WITH   < CUBE  |  RollUP > 
     ( 7 ) HAVING   < having_condition > 
     ( 10 ) ORDER   BY   < order_by_list >

  • 相关阅读:
    bzoj1951 [Sdoi2010]古代猪文
    bzoj2693 jzptab
    数学一本通第三章总结
    poj1019 Number Sequence
    SGU179 Brackets light
    字母组合2
    字母组合
    Java基础知识强化之集合框架笔记09:Collection集合迭代器使用的问题探讨
    Java基础知识强化之集合框架笔记08:Collection集合自定义对象并遍历案例(使用迭代器)
    Java基础知识强化之集合框架笔记07:Collection集合的遍历之迭代器遍历
  • 原文地址:https://www.cnblogs.com/lingli-meng/p/6618639.html
Copyright © 2011-2022 走看看