SQL个人笔记

SQL

SQL学习注意点

1.不等于用<>表示(有的数据库支持用!=表示)

2.SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

3.ORDER BY 语句默认按照升序(ASC)对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

4.”%” 可用于定义通配符(模式中缺少的字母)。


笔记

1.insert语句

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

2.update语句

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

3.delete语句

DELETE FROM 表名称 WHERE 列名称 = 值

在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:DELETE FROM table_name或者DELETE * FROM table_name

4.top操作符

SELECT TOP 2 * FROM Persons
SELECT TOP 50 percent * FROM Persons

5.like操作符

SELECT * FROM Persons WHERE City LIKE 'N%'

可用 not like 来选取不符合的数据

6.通配符

通配符描述
%替代一个或多个字符
_仅替代一个字符
[charlist] eg:[ABC]字符列中的任何单一字符
[^charlist]或者[!charlist]不在字符列中的任何单一字符

7.in操作符

用来在where语句中规定多个值

WHERE column_name IN (value1,value2,...)

8.between操作符

BETWEEN value1 AND value2

在 MySQL 、SQL server、oracle 中,between包括边界值,not between不包括边界值

使用between and 限定日期需要注意,如果and后的日期是到天的,那么默认为00:00:00 例如:and 后的日期为2013年3月24日,就等价于2013-3-24 00:00:00 ,那么2013-3-24 18:28:38的数据就查不到了

9.as操作符(Alias别名)

别名使查询程序更易阅读和书写。

SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'

10.join操作符

join 一般和 on 连用

  • inner join

    INNER JOIN 与 JOIN 是相同的。

    SELECT column_name(s)
    FROM table_name1
    INNER JOIN table_name2
    ON table_name1.column_name=table_name2.column_name

  • full join

    只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
    (在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。)

  • left join

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

  • right join

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

    假设有A和B两张表 :
    1.A LEFT OUTER JOIN B表示把A表的记录都显示出来,把B表符合条件的结果集显示出来,不符合条件的用NULL表示。
    2.A RIGHT OUTER JOIN B表示把B表的记录都显示出来,把A表符合条件的结果集显示出来,不符合条件的用NULL表示。
    3.A FULL OUTER JOIN B 表示把A表和B表的记录都显示出来,不符合条件的用NULL表示。
    4.A JOIN B 表示把A表和B表符合条件得结果集显示出来。

11.UNION 操作符

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

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

UNION 命令只会选取不同的值,若要列出所有的值,使用 UNION ALL 命令。

12*.SELECT INTO 语句

SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中,常用于创建表的备份复件或者用于对记录进行存档。

SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename

13.CREATE TABLE 语句

CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)

varchar 最大长度为 255 个字符

14.SQL 约束

  • NOT NULL 约束

    NOT NULL 约束强制列不接受 NULL 值,意味着如果不向字段添加值,就无法插入新记录或者更新记录。

  • UNIQUE 约束

    每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

    UNIQUE可以为空,但是最多一个,否则就不唯一了。

    MySQL:

    Id_P int NOT NULL,
    UNIQUE (Id_P)

    SQL Server / Oracle / MS Access:

    Id_P int NOT NULL UNIQUE

    *命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束

    ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

    *撤销 UNIQUE 约束

    MySQL: DROP INDEX uc_PersonID
    SQL Server / Oracle / MS Access: DROP CONSTRAINT uc_PersonID

  • PRIMARY KEY 约束

    主键必须是唯一的,且不能为空,每个表只能有一个主键。

    它的语法和UNIQUE相同。

  • FOREIGN KEY 约束

    一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

    MySQL:FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)

    MySQL 创建约束时和 SQL Server / Oracle / MS Access 的主要区别在于能否直接在要设置的约束属性后面声明。
    在命名约束以及为多个列定义约束的语句两者相同。

  • CHECK 约束

    CHECK 约束用于限制列中的值的范围。

  • DEFAULT 约束

    DEFAULT 约束用于向列中插入默认值,如果没有规定其他的值,那么会将默认值添加到所有的新记录。

15.*CREATE INDEX 语句

在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。

CREATE INDEX index_name ON table_name (column_name)

使用 DROP INDEX 命令删除表格中的索引:

MySQL 的语法:ALTER TABLE table_name DROP INDEX index_name

Oracle 语法:DROP INDEX index_name

16.*ALTER TABLE 语句

  • 改变数据类型实例 :
    ALTER TABLE table_name ALTER COLUMN table_name data_type

  • 在表中添加列 :
    ALTER TABLE table_name ADD column_name datatype

  • 删除表中的列:
    ALTER TABLE table_name DROP COLUMN column_name

17.AUTO INCREMENT 字段

MySQL语法:P_Id int NOT NULL AUTO_INCREMENT

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

  1. IFNULL() 函数

MySQL:
IFNULL(UnitsOnOrder,0)) 如果UnitsOnOrder为空则让它的值为0

SQL Server / MS Access:
ISNULL(UnitsOnOrder,0)

Oracle:
NVL(UnitsOnOrder,0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值