SQL

1 SELECT   : SELECT lastName,firstName FROM persons
2 DISTINCT : SELECT DISTINCT Company FROM Orders
3 WHERE    : SELECT * FROM persons WHERE city ='beijing'
4 AND & OR : SELECT * FROM persons WHERE firstName = 'Thomas'
                AND lastName = 'center'
             SELECT * FROM persons WHERE firstName = 'Thomas'
                OR lastName = 'center'
5 ORDER BY : SELECT Company, orderNumbers from Orders ORDER BY Company
                //默认为升序,DESC为逆序, ASC为顺序
6 INSERT   : INSERT INTO persons VALUES ('gates','bills', 'xuanwanmen')
7 UPDATE   : UPDATE persons SET firstName='Fread' WHERE lastName='Nima'
8 DELETE   : DELETE FROM persons WHERE lastName='Nima'
                DELETE FROM table_name
9 TOP      : TOP自居用于规定要返回得记录得数目;
                //从表中选取头两条数据
                SELECT TOP 2 * FROM persons
                //从表中选取百分之五十得记录
                SELECT TOP 50 PERCENT * FROM persons
             MySQL 语法
                SELECT * FROM persons LIMIT 5
             Oracle 语法
                SELECT * FROM persons WHERE ROWNUM <= 5
10 LIKE    : LIKE操作符用于在WHERE子句中搜索列中得指定模式
             SELECT * FROM persons WHERE city LIKE 'N%'
11 通配符   : % 代替一个或者多个字符
             _ 仅仅代替一个字符
             [charlist]字符列中任何单一字符
             [^charlist] or [!charlist]不在字符列中任何单一字符列
             //选取居住得城市以“A” 或 “L” 或 “N” 开头的人
               SELECT * FROM persons WHERE city LIKE '[ALN]%'
12 IN      : IN操作符允许我们在WHERE子句中规定多个值
             //从表中选取姓氏为adams 和 carter的人
                SELECT *FROM persons WHERE lastName IN ('adams','carter')
13 BETWEEN : SELECT * FROM persons WHERE lastName NOT BETWEEN 'adams' AND
                'carter'
14 ALIAS   : 为列名称和表名称指定别名
             //假设我们有两个表分别是:"Persons" 和 "Product_Orders"。我们分别为它们指定别名 "p" 和 "po"。
                SELECT po.OrderID,p.lastName, p.firstName FROM persons AS p, Product_Orders AS po WHERE p.lastName='Adams' AND
                    p.firstName='John'
15 JOIN    : //通过引用两个表的方式,从两个表中获取数据
                SELECT persons.lastName, persons.firstName, Orders.orderNo
                    FROM persons,Orders WHERE persons.id_p = Orders.id_p
             //利用join 从两个表中获得数据
                SELECT persons.lastName, persons.firstName, Orders.orderNo
                    FROM persons INNER JOIN Orders ON persons.id_p =
                    Orders.id_p ORDER BY persons.lastName
16 UNION   : UNION操作符用于合并两个或多个SELECT语句的结果集
                注:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似
                的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
                //UNION  UNION ALL
             SELECT E_Name FROM Employees_China UNION
                SELECT E_Name FROM Employees_USA
17 SELECT INTO : 常用于创建表的备份附件或者用于对记录进行存档
                 从一个表中选取数据,然后把数据插入另一个表中
                 //制作备份附件
                 SELECT LastName,FirstName INTO persons_backup FROM persons WHERE city = 'Beijing'
                 //向另一个数据库中拷贝表
                 SELECT * INTO persons IN 'Backup.mdb' FROM persons
                 //创建一个名为 "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
18 CREATE DATABASE : CREATE DATABASE my_db
19 CREATE TABLE : CREATE TABLE Person (
                    id_p int,
                    lastName varchar(223),
                    firstName varchar(223),
                    address varchar(233),
                    city varchar(233)
                    )
20 CONSTRAINTS  : 约束,主要用于限制假如表的数据类型
                    NOT NULL 强制列不接受NULL值
                        id_p int(NOT NULL),
                    UNIQUE 约束唯一标识数据库表中的每条记录
                        //MySQL:
                        UNIQUE (id_p)
                        //SQL Server/ Oracle /MS Access
                        id_p int NOT NULL UNIQUE,
                        //MySQL/SQL Server / Oracle / MS Access
                        CONSTRAINT uc_PersonID UNIQUE (id_p, LastName)
                        //当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL:
                        ALTER TABLE persons ADD UNIQUE (id_p)
                        //如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法
                        ALTER TABLE persons ADD CONSTRAINT uc_PersonID UNIQUE (id_p, LastName)
                        //撤销 UNIQUE 约束
                        //MySQL
                        ALTER TABLE persons DROP INDEX uc_PersonID
                        //SQL Server / Oracle / MS Access
                        ALTER TABLE persons DROP CONSTRAINT uc_PersonID
21 PRIMARY KEY  : 约束唯一标识数据库表中的每条记录。
                    主键必须包含唯一的值。
                    主键列不能包含 NULL 值。
                    每个表都应该有一个主键,并且每个表只能有一个主键。
                    语法同UNIQUE
21 FOREIGN KEY  : //MySQL
                    FOREIGN KEY (id_p) REFERENCES persons(id_p)
                  //SQL Server / Oracle / MS Access
                    id_p int FOREIGN KEY REFERENCES persons(id_p)
                  //如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:
                    CONSTRAINT fk_PerOrders FOREIGN KEY (id_p) REFERENCES
                        persons(id_p)
                  //ADD
                    ADD FOREIGN KEY (Id_P) REFERENCES persons(Id_P)
                  // 命名 撤销等语法参照UNIQUE
22 CHECK       : 约束用于限制列中的值的范围。
                //My_SQL
                    CHECK (Id_P > 0)
                //Server / Oracle / MS Access:
                    Id_P int NOT NULL CHECK (Id_P>0)
                //如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束
                    CONSTRAINT chk_person CHECK (Id_P>0 AND
                        city='beijing')
                //add
                    ADD CHECK (Id_P > 0)
                //命名 撤销参考UNIQUE
23 DEFAULT     : 用于向列中插入默认值
                city varchar(222) DEFAULT 'beijgn'
                //表已存在情况下
                //My_SQL
                ALTER city SET DEFAULT 'beijing'
                //SQL Server / Oracle / MS Access:
                ALTER COLUMN city SET DEFAULT 'beijing'
                //撤销
                //My_SQL
                ALTER city DROP DEFAULT
                //SQL Server / Oracle / MS Access:
                ALTER COLUMN city DROP DEFAULT
24 CREATE INDEX : //索引,名为 "PersonIndex",在 Person 表的 LastName 列
                    CREATE INDEX PersonIndex ON Person (LastName DESC)
25 DROP         : 删除表格中的索引
                    //MySQL
                    ALTER TABLE Person DROP INDEX PersonIndex
                    //IBM DB2 和 Oracle
                    DROP INDEX PersonIndex

                  DROP DATABASE 语句用于删除数据库
                    DROP DATABASE my_db
                  TRUNCATE TABLE 命令仅仅删除表格中的数据
                    TRUNCATE TABLE Person
26 ALTER TABLE :用于在已有的表中添加、修改或删除列
                //添加一个名为 "Birthday" 的新列。
                ALTER TABLE Person ADD Birthday date
                //改变 "Persons" 表中 "Birthday" 列的数据类型。
                ALTER TABLE Person ALTER COLUMN Birthday year
                //删除 "Person" 表中的 "Birthday" 列:
                ALTER TABLE Person DROP COLUMN Birthday
27 AUTO INCREMENT :  会在新记录插入表中时生成一个唯一的数字。
                // "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键:
                //MySQL
                P_Id int NOT NULL AUTO_INCREMNET
                //SQL Server
                P_Id int PRIMARY KEY IDENTITY
                //Access
                P_Id int PRIMARY KEY AUTOINCREMENT
                //oracle 创建名为 seq_person 的序列对象,它以 1 起始且以 1 递增。该对象缓存 10 个值以提高性能
                CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10
                //AUTO_INCREMENT 序列以其他的值起始
                ALTER TABLE Person AUTO_INCREMENT=100
                //要在 "Persons" 表中插入新记录,我们不必为 "P_Id" 列规定值(会自动添加一个唯一的值):
                INSERT INTO Person (FirstName, LastName) VALUES ('Bill','Gates')
28 VIEW      : CREATE VIEW [Current Product List] AS
                SELECT ProductID, ProductName
                FROM Products WHERE Discoutinued=NO
               SELECT * FROM [Current Product List]
29 Date      :MySQL
                NOW()           返回当前的日期和时间
                CURDATE()       返回当前的日期
                CURTIME()       返回当前的时间
                DATE()          提取日期或日期/时间表达式的日期部分
                EXTRACT()       返回日期/时间按的单独部分
                DATE_ADD()      给日期添加指定的时间间隔
                DATE_SUB()      从日期减去指定的时间间隔
                DATEDIFF()      返回两个日期之间的天数
                DATE_FORMAT()     用不同的格式显示日期/时间
             :SQL Server Date
                GETDATE()     返回当前日期和时间
                DATEPART()     返回日期/时间的单独部分
                DATEADD()     在日期中添加或减去指定的时间间隔
                DATEDIFF()     返回两个日期之间的时间
                CONVERT()     用不同的格式显示日期/时间

             :SQL Date 数据类型

                MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:

                DATE - 格式 YYYY-MM-DD
                DATETIME - 格式: YYYY-MM-DD HH:MM:SS
                TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
                YEAR - 格式 YYYY 或 YY

                SQL Server 使用下列数据类型在数据库中存储日期或日期/时间值:

                DATE - 格式 YYYY-MM-DD
                DATETIME - 格式: YYYY-MM-DD HH:MM:SS
                SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
                TIMESTAMP - 格式: 唯一的数字
30 NULL    : 值是遗漏的未知数据
            SELECT LastName,FirstName,address FROM Persons
                WHERE address IS NULL
            ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
                //如果 "UnitsOnOrder" 是 NULL,则不利于计算,因此如果值是 NULL 则 ISNULL() 返回 0。
            //SQL Server / MS Access
            SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))FROM Products
            //Oracle
            SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0)
                FROM Products
            //MySQL
            SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))FROM Products
31 函数:
            //avg()求平均值
                SELECT Customer FROM Orders WHERE OrdersPrice>(SELECT AVG(OrdersPrice) FROM Orders)
            //count() first() last() max() min() sum() Group by()
            //Having 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用
                SELECT Customer,SUM(OrdersPrice) FROM Orders WHERE
                    Customer = 'Push' GROUP BY Customer HAVING
                    SUM(OrdersPrice)>1500
            //UCASE()函数把字段的值转换为大写
                SELECT UCASE(LastName) as LastName FROM Persons
            //LCASE()
            //MID() 函数用于从文本字段中提取字符。
                SELECT MID(city,1,4) as smallcity FROM Persons
            //len()
            //ROUND() 函数用于把数值字段舍入为指定的小数位数
                SELECT ProductName, ROUND(UnitPrice, 0) as UnitPrice FROM Products
            //NOW() FORMAT()
                SELECT ProductName, UnitPrice, FORMAT(NOW(), 'YYYY-MM-DD')
                    as perdate FROM Products





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值