zoukankan      html  css  js  c++  java
  • SQL

    /*

        约束

        

        primary key

        主键,拥有自定义的UNIQUE约束

        not null

        

        NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

        下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:

        CREATE TABLE Persons

        (

        Id_P int NOT NULL,

        LastName varchar(255) NOT NULL,

        FirstName varchar(255),

        Address varchar(255),

        City varchar(255)

        )

        

        unique 不能重复

        UIIQUE约束唯一标识数据库表中的每一条数据记录

        当表已经创建以后添加UNIQUE约束的方法:

        ALTER TABLE Person

        ADD UNIQUE (id_p)

                      删除UNIQUE约束的方法:

        ALTER TABLE Person

        DROP INDEX id_p

        

        foreing key 该字段做完另一个表的主键,联表查询

        外键

        下面的 SQL "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY

        MySQL:

        CREATE TABLE Orders

        (

        Id_O int NOT NULL,

        OrderNo int NOT NULL,

        Id_P int,

        PRIMARY KEY (Id_O),

        FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)

        )

        

        check 该字段数据必须满足一定条件

        

        default 该字段数据可以给默认值

        id_P int NOT NULL DEFAULT '10'

        在表已经有的情况下

        ALTER TABLE Persons

        ALTER City SET DEFAULT 'ShangHai'

        撤销约束

        ALTER TABLE Persons

        ALTER City DROP DEFAULT

        

        autoincrement 如果该字段数据是整型就会自动加一

        MySQL 使用 AUTO_INCREMENT 关键字来执行 auto-increment 任务。

        默认地,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1

        要让 AUTO_INCREMENT 序列以其他的值起始,请使用下列 SQL 语法:

        ALTER TABLE Persons AUTO_INCREMENT=10

        排序

        order  默认是正序  desc的倒序,asc是属正序

        eqSELECT Company, OrderNumber FROM orders ORDER By Company DESC, OrderNumber ASC;

        

        插入

        insert into

        INSERT INTO 表名称 VALUES (1, 2,....)

        //指定某些列中插入数据

        INSERT INTO table_name (1, 2,...) VALUES (1, 2,....)

        

        更新

        Update

        UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

        

        

        删除

        用于删除表中的行

        DELETE FROM 表名称 WHERE 列名称 =

        

        Top 选取前多少的数据

        SELECT TOP 2 * FROM table_name;//选取表中前2个数据

        SELECT TOP 50 PERCENT *FROM Persons//选取表中前50%的数据

        

        LIKE

        LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式

        SELECT * FROM Persons WHERE City LIKE '%g'// 找出以“g”结尾的城市里的人

        SELECT * FROM Persons WHERE City LIKE 'g%'// 找出以“g”开头的城市里的人

        SELECT * FROM Persons WHERE City LIKE '%g%'// 找出城市名字中带有g的人

        

        通配符

        1_

        接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er"

        SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'

        

        2[]

        现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" "L" "N" 开头的人:

        我们可以使用下面的 SELECT 语句:

        SELECT * FROM Persons WHERE City LIKE '[ALN]%'

        

        IN操作符

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

        现在,我们希望从上表中选取姓氏为 Adams Carter 的人:

        我们可以使用下面的 SELECT 语句:

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

        

        BETWEEN操作符

        BETWEEN AND

        如需以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人,请使用下面的 SQL

        SELECT * FROM Persons

        WHERE LastName

        BETWEEN 'Adams' AND 'Carter'

        

        NOT BETWEEN AND 在这个范围之外

        

        SQL Alias(别名)

        通过使用 SQL,可以为列名称和表名称指定别名(Alias)。

        SQL Alias

        表的 SQL Alias 语法

        SELECT column_name(s)

        FROM table_name

        AS alias_name

        列的 SQL Alias 语法

        SELECT column_name AS alias_name

        FROM table_name

        

        

        JOIN

        SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

    第一种方法

        SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

        FROM Persons, Orders

        WHERE Persons.Id_P = Orders.Id_P

        不用join,直接判断Persond主键等于Orders的副键两个键名一样

    第二种方法

        SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

        FROM Persons

        INNER JOIN

        ON Persons.Id_P = Orders.Id_P

       

        INNER JOIN(内连接)

        下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

        JOIN: 如果表中有至少一个匹配,则返回行

        LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

        RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行

        FULL JOIN: 只要其中一个表中存在匹配,就返回行

        

        SQL UNION 操作符

        UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

        请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

        SQL UNION 语法

        SELECT column_name(s) FROM table_name1

        UNION

        SELECT column_name(s) FROM table_name2

        注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL

        

        INTO 备份 制作附件

        

        下面的例子会制作 "Persons" 表的备份复件:

        SELECT *

        INTO Persons_backup

        FROM Persons

        IN 子句可用于向另一个数据库中拷贝表:

        SELECT *

        INTO Persons IN 'Backup.mdb'

        FROM Persons

        如果我们希望拷贝某些域,可以在 SELECT 语句后列出这些域:

        SELECT LastName,FirstName

        INTO Persons_backup

        FROM Persons

        

        SQL SELECT INTO 实例 - 被连接的表

        从一个以上的表中选取数据也是可以做到的。

        下面的例子会创建一个名为 "Persons_Order_Backup" 的新表,其中包含了从 Persons Orders 两个表中取得的信息:

        SELECT Persons.LastName,Orders.OrderNo

        INTO Persons_Order_Backup

        FROM Persons

        INNER JOIN Orders

        ON Persons.Id_P=Orders.Id_P

        

        创建数据库

        CREATER BATABASE my_dataDase

        

        创建数据库表

        CREATER TABLE

        eq

        本例演示如何创建名为 "Person" 的表。

        该表包含 5 个列,列名分别是:"Id_P""LastName""FirstName""Address" 以及 "City"

        CREATE TABLE Persons

        (

        Id_P int,

        LastName varchar(255),

        FirstName varchar(255),

        Address varchar(255),

        City varchar(255)

        )

        Id_P 列的数据类型是 int,包含整数。其余 4 列的数据类型是 varchar,最大长度为 255 个字符。

        

        CREATE INDEX语句

        

        DROP语句

        DROP TABLE 表名称

        DROP DATABASE 数据库名

        如果我们仅仅需要除去表内的数据,但并不删除表本身,那么我们该如何做呢?

        请使用 TRUNCATE TABLE 命令(仅仅删除表格中的数据):

        TRUNCATE TABLE 表名称

        

        

        VIEW 视图是可视化的表

        视图是可视化的表

        SQL CREATE VIEW 语法

        CREATE VIEW view_name AS

        SELECT column_name(s)

        FROM table_name

        WHERE condition

        注释:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。

        

        Date

        

        NULL

        如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。

        NULL 值的处理方式与其他值不同。

        NULL 用作未知的或不适用的值的占位符。

        注释:无法比较 NULL 0;它们是不等价的。

        我们如何仅仅选取在 "Address" 列中带有 NULL 值的记录呢?

        我们必须使用 IS NULL 操作符:

        SELECT LastName,FirstName,Address FROM Persons

        WHERE Address IS NULL

        

        如果两个数相加如果其中一个是NULL 那么结果也是NULL,不过可以用函数解决

        

        函数Group By 

        GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。

        

        HAVING 子句

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

     

        UCASE() 函数

        UCASE 函数把字段的值转换为大写。

     

        LCASE() 函数

        LCASE 函数把字段的值转换为小写。

        

        MID() 函数

        MID 函数用于从文本字段中提取字符。

        SQL MID() 语法

        SELECT MID(column_name,start[,length]) FROM table_name

        参数 描述

        column_name 必需。要提取字符的字段。

        start 必需。规定开始位置(起始值是 1)。

        length 可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。

     

        LEN() 函数

        LEN 函数返回文本字段中值的长度。

        

        ROUND() 函数

        ROUND 函数用于把数值字段舍入为指定的小数位数。

        SQL ROUND() 语法

        SELECT ROUND(column_name,decimals) FROM table_name

        参数

        */

  • 相关阅读:
    Java数据类型
    实验报告三及总结
    第四周课程总结及实验报告二
    第三周课程总结及实验报告一
    第一次Java学习总结
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
  • 原文地址:https://www.cnblogs.com/naizui/p/5211587.html
Copyright © 2011-2022 走看看