SQL复习(w3school)笔记

SQL基础

 


 

1.SQL对大小写不敏感

2.DML(数据操作语言)与DDL(数据定义语言)

a) DML

  1. SELECT
  2. UPDATE
  3. DELETE
  4. INSERT INTO

b) DDL

  1. CREATE DATABASE
  2. ALTER DATABASE
  3. CREATE TABLE
  4. ALTER TABLE
  5. DROP TABLE
  6. CREATE INDEX
  7. DROP INDEX

3.DISTINCT:去除重复值

a) SELECT DISTINCT 列名 FROM 表名

4.WHERE子句

a) 值得注意的运算符 BETWEEN, LIKE

b) 文本值使用单引号,数值不用

5.ORDER BY字句

a) DESC 降序

b) ASC 升序

6.INSERT INTO语句

a) 语法

  1. INSERT INTO table_name VALUES (val1, val2 ...)
  2. INSERT INTO table_name(column1, column2...) VALUES (val1, val2 ...)

7.UPDATE语句

a) 语法: UPDATE 表名 SET 列名=新值 WHERE 列名=某值

8.DELETE语句

a) 语法:DELETE FROM 表名 WHERE 列名=

b) 删除所有行 DELETE FROM table_name

 

SQL高级

 


 

1.TOP字句(MySQLLimit

a) 返回记录的条目数(对于有大量数据的表来说,非常有用)

  1. SELECT TOP number|percent column_name(s) FROM table_name
  2. SELECT column_name(s) FROM table_name LIMIT number

2.通配符

a) % 替代一个或多个字符

b) _替代一个字符

c) [charlist]字符列中的任何单一字符

d) [^charlist][!charlist]不在字符列中的任何单一字符

3.IN操作符

a) 允许我们在WHERE子句中规定多个值

b) SELECT column_name(s) FROM table_name WHERE column_name IN (val1, val2...)

4.BETWEEN操作符

a) 选取介于两个值之间的数据范围

5.Alias(别名)

a) 表别名 SELECT column_name(s) FROM table_name AS alias_name

b) 列别名 SELECT column_names AS alias_name FROM table_name

6.JOIN

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

b) 几种SQL JOIN

  1. JOIN:表中至少一个匹配,则返回行
  2. LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  3. RIGHT JOIN:即使左表中没有匹配,也从右表返回所有行
  4. FULL JOIN:只要其中一个表中存在匹配,就返回行

7.INNER JOIN(JOIN相同)

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

8.LEFT JOIN

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

b) 左表所有行会被列出

9.RIGHT JOIN

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

b) 右表所有行会被列出

10.FULL JOIN

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

b) 只要存在匹配就会返回行

11.UNION操作符

a) 用于合并两个或多个SELECT语句的结果集(必须用相同数量的列,列必须拥有相似的数据类型,且列的顺序必须相同)

b) SELECT column_name(s) FROM table_name1 

UNION

SELECT column_name(s) FROM table_name2

c) UNION ALL 会列出重复值

12.SELECT INTO

a) 从一个表中选取数据,然后插入另一个表中

b) 常用于创建表的备份复件或者用于对记录进行存档

c) SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename

13.CREATE DATABASE database_name

14.CREATE TABLE

a) CREATE TABLE 表名

(

列名数据类型,

列名数据类型,

……

)

 

 

15.约束Constraints

a) NOT NULL 不接受NULL

b) UNIQUE 唯一(可以有多个UNIQUE约束)

c) PRIMARY KEY(主键仅有一个

d) FOREIGN KEY 

  1. 一个表中的FOREIGN KEY指向另一个表中的PRIMARY KEY
  2. 用于预防破坏表之间连接的动作
  3. 防止非法数据插入外键列,因为它必须是它只想的那个表中的值之一

e) CHECK 用于限制列中的值得范围

f) DEFAULT 用于向列中插入默认值

16.CREATE INDEX 在表中创建索引

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

b) 更新含有索引的表,更费时,所以合理的做法是静静在常被搜索的列(及表)上面创建索引

c) CREATE INDEX index_name ON table_name(column_name)

d) 唯一索引(两个列不能拥有相同索引值)CREATE UNIQUE INDEX index_name ON table_name(column_name)

17.DROP 删除索引、表和数据库

18.TRUNCATE TABLE 仅删除表内容不删除表

19.AUTO INCREMENT

20.VIEW(视图基于SQL语句的结果集的可视化的表

21.Date函数

a) MySQL Date函数

  1. NOW() 返回当前日期和时间
  2. CURDATE() 返回当前的日期
  3. CURTIME() 返回当前的时间
  4. DATE() 提起日期或日期/时间表达式的日期部分
  5. EXTRACT() 返回日期/时间的单独部分
  6. DATE_ADD() 给日期添加指定的时间间隔
  7. DATE_SUB() 从日期减去指定的时间间隔
  8. DATEDIFF() 返回两个日期之间的天数
  9. DATE_FORMAT() 用不同格式显示日期/时间

b) SQL Server Date函数

  1. GETDATE() 返回当前日期和时间
  2. DATEPART() 返回日期/时间的单独部分
  3. DATEADD() 在日期中添加或减去指定的时间间隔
  4. DATEDIFF() 返回两个日期之间的时间
  5. CONVERT() 用不同的格式显示日期/时间

c) MySql Date数据类型

  1. DATE YYYY-MM-DD
  2. DATETIME YYYY-MM-DD HH:MM:SS
  3. TIMESTAMP YYYY-MM-DD HH:MM:SS
  4. YEAR YYYY/YY
  5. SQL Server Date数据类型
  6. DATE YYYY-MM-DD
  7. DATETIME YYYY-MM-DD HH:MM:SS
  8. SMALLDATETIME YYYY-MM-DD HH:MM:SS
  9. TIMESTAMP  唯一的数字

d) 如果您希望使查询简单且更易维护,那么请不要在日期中使用时间部分!

22.NULL

a) 测试NULL

  1. IS NULL
  2. IS NOT NULL

23.NULL函数

a) MySQL用 IFNULL 和 COALESCE函数

24.数据类型http://www.w3school.com.cn/sql/sql_datatypes.asp

25.SQL服务器-RDBMS

 

posted @ 2016-05-03 17:10  HANNN  阅读(346)  评论(0编辑  收藏  举报