学习地址
返回表中不重复的值。 eg:
SELECT DISTINCT * FROM T_TABLE
AND: 前后的两个条件都满足。 OR:前后的两个条件只要有有一个满足就可以。
结合AND和OR运算符:
SELECT * FROM Persons WHERE (FirstName=‘Thomas’ OR FirstName=‘William’) AND LastName=‘Carter’
order by 语句用于根据指定的列对结果集进行排序。 order by 语句默认按照升序对记录进行排序。 如果需要按照降序对记录进行排序,使用DESC关键字。
eg:
SELECT * FROM t_table ORDER BY age //根据年龄进行升序排序 SELECT * FROM t_table ORDER BY age DESC //根据年龄进行降序排序 SELECT * FROM t_table ORDER BY age DESC , name ASC //根据年龄降序排序,如果有相同的值则已name进行升序排序
INSERT INTO t_table (name , age) VALUES (‘大老黑’ , ‘35’) //插入指定列的值
UPDATE t_table SET name = ‘小老弟’ WHERE name = ‘老妹妹’ //更新修改指定值
DELETE FROM t_table WHERE name = ‘吃蝙蝠的人’ //删除指定值的记录
mysql语句:
SELECT * FROM t_table LIMIT 10 //返回十条数据
Oracle语句:
SELECT * FROM t_table WHERE ROWNUM<=10 //返回十条数据
LIKE语句:
SELECT * FROM t_table where name LIKE ‘徐%’ //查找以”徐“为开头的名字
SELECT * FROM Persons WHERE City LIKE ‘[ALN]%’ //选取居住的城市以 “A” 或 “L” 或 “N” 开头的人
通配符描述%替代一个或多个字符_仅替代一个字符[ ]选择括号中的字符[! ]排除括号中的字符都是用于显示一个区间的数据 BETWEEN:
SELECT * FROM t_table WHERE age BETWEEN 0 AND 18 //查询出年龄为0-18的所有数据 若要查询不在0-18的数据,可以在BETWEEN前面加上NOT
SELECT * FROM t_table code BETWEEN ‘Adams’ AND ‘Carter’ //以字母顺序显示介于 “Adams”(包括)和 “Carter”(不包括)之间的人(不同的数据库不一样)
IN:
SELECT * FROM t_table WHERE name IN (‘大老黑’ , ‘小老弟’) //查询括号里的数据
内连接(INNER JOIN): INNER JOIN 和 JOIN是相同的。
SELECT t_table.name , t_student.course FROM t_table INNER JOIN t_student ON t_table.id = t_student.table_id
左外连接(LEFT JOIN): LEFT JOIN关键字会从左表那里返回所有的行,即使在右表中没有匹配的行。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName
右外连接(RIGHT JOIN): RIGHT JOIN 关键字会右表那里返回所有的行,即使在左表中没有匹配的行。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons RIGHT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName
全连接(FULL JOIN): 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName
UNION(UNION ALL): UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SELECT E_Name FROM Employees_China UNION (ALL) SELECT E_Name FROM Employees_USA
SELECT INTO: SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。
SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename SELECT LastName,Firstname INTO Persons_backup FROM Persons WHERE City=‘Beijing’
NOT NULL: 不接受NULL值,如果不向字段添加值,就无法插入新记录或者更新记录。
UNIQUE: UNIQUE 约束唯一标识数据库表中的每条记录。UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 拥有自动定义的 UNIQUE 约束。请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
PRIMARY KEY: PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。
FOREIGN KEY: 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。FOREIGN KEY 约束用于预防破坏表之间连接的动作。FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
CHECK: CHECK 约束用于限制列中的值的范围。如果对单个列定义 CHECK 约束,那么该列只允许特定的值。如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。
DEFAULT: DEFAULT 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。
#### 6.索引CREATE INDEX: 用于在表中创建索引。在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。
注释: 更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
CREATE INDEX PersonIndex ON Person (LastName [DESC]) //创建索引(进行降序)
通过使用 DROP 语句,可以轻松地删除索引、表和数据库。
ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。
注释: 数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NULL
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL
IFNULL()函数: 微软的 ISNULL() 函数用于规定如何处理 NULL 值。NVL(), IFNULL() 和 COALESCE() 函数也可以达到相同的结果。
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0)) FROM Products //如果值为null的话就赋为0
FIRST()函数: 返回指定的字段中第一个记录的值。 LAST()函数: 返回指定的字段中最后一个记录的值。 MAX()函数: 返回指定字段的最大值,NULL 值不包括在计算中。 MIN()函数: 返回指定字段的最小值,NULL值不包括在计算中。 SUM()函数: 返回指定字段的总和。 GROUP BY()函数: 根据选择指定的字段进行分组。 HAVING: 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。 eg:SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000 UCASE()函数: 把字段的值转换为大写。 LCASE()函数: 把字段的值转换为小写。 MID()函数: 用于从文本字段中提取指定字符。eg:SELECT MID(City,1,3) as SmallCity FROM Persons //City列中提取前3个字符 LEN()函数: 返回文本字段的长度。 ROUND()函数: 用于把数值字段舍入为指定的小数位数。eg:SELECT ProductName, ROUND(UnitPrice,0) as UnitPrice FROM Products //将小数点都舍弃 NOW()函数: 返回当前的日期和时间。 FORMAT()函数: 用于对字段的显示进行格式化。