今天是5.6号。
主要介绍单一表的一些基本操作,多个表连接以及函数在下一部分介绍。
一、基本操作
(1).select(查询)
SELECT CustomerName,City FROM Customers;
SELECT * FROM Customers;
(2).select distinct
在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
SELECT DISTINCT column_name,column_name
FROM table_name;
(3).where 条件子句
用于提取那些满足指定标准的记录。
SELECT * FROM Customers WHERE Country='Mexico';
AND & OR 运算符用于基于一个以上的条件对记录进行过滤,例如:
SELECT * FROM Customers
WHERE Country='Germany' AND City='Berlin';
(4).order by(排序)
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序,默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
(5).insert into(插入值)
INSERT INTO 语句用于向表中插入新记录。
INSERT INTO table_name(column1,column2,column3,...)
VALUES (value1,value2,value3,...);
#也可以不指定列名,直接插入值,但建议还是写上。
(6).update(更新)
用于更新表中已存在的记录。
UPDATE Customers
SET ContactName='Alfred Schmidt', City='Hamburg'
WHERE CustomerName='Alfreds Futterkiste';
#若不提供where条件,则会将数据库中所有的行记录全部更新。
(7)delete(删除行)
用于删除表中的行。
DELETE FROM table_name
WHERE some_column=some_value;
#如果省略了 where 子句,所有的记录都将被删除!
二、其他操作
(1)limit
规定要返回的记录的数目
SELECT column_name(s)
FROM table_name
LIMIT number;
#limit的用法只适用于mysql,其他数据库的语法稍有不同。
(2)通配符
通配符可用于替代字符串中的任何其他字符,一般与like操作符一起使用。
(3)LIKE 操作符
LIKE 操作符用于在where子句中搜索列中的指定模式。
#选取 City 以字母 "ber" 开始的所有客户:
SELECT * FROM Customers
WHERE City LIKE 'ber%';
#选取 City 以一个任意字符开始,然后是 "erlin" 的所有客户:
SELECT * FROM Customers
WHERE City LIKE '_erlin';
#选取 City 以 "b"、"s" 或 "p" 开始的所有客户:
SELECT * FROM Customers
WHERE City LIKE '[bsp]%';
#选取 City 不以 "b"、"s" 或 "p" 开始的所有客户:
SELECT * FROM Customers
WHERE City LIKE '[!bsp]%';
(4).in
IN 操作符允许在 WHERE 子句中规定多个值。
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
(5).between
在 WHERE 子句中,BETWEEN 操作符用于选取介于两个值之间的数据范围内的值,这些值可以是数值、文本或者日期。
#选取价格不再 10 和 20 之间的所有产品:
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
请注意,在不同的数据库中,BETWEEN 操作符会产生不同的结果!
在某些数据库中,BETWEEN 选取介于两个值之间但不包括两个测试值的字段。
在某些数据库中,BETWEEN 选取介于两个值之间且包括两个测试值的字段。
在某些数据库中,BETWEEN 选取介于两个值之间且包括第一个测试值但不包括最后一个测试值的字段。
因此,请检查您的数据库是如何处理 BETWEEN 操作符!
(6).别名
可以为表名称或列名称指定别名(Alias)。
SELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o
WHERE c.CustomerName='Alfreds Futterkiste';
在查询中涉及超过一个表,或者列名称很长或者可读性差时会很有用。