码迷,mamicode.com
首页 > 数据库 > 详细

常见的SQL语句

时间:2016-07-05 14:04:46      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

-- 一定要记住,SQL 对大小写不敏感!
-- SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。
-- 通配符
%               替代一个或多个字符
_            仅替代一个字符
[charlist]    字符列中的任何单一字符
[^charlist]
或者
[!charlist]
-- 数据类型    描述
INTEGER(size)   仅容纳整数。在括号内规定数字的最大位数。
INT(size)
SMALLINT(size)
TINYINT(size)
DECIMAL(size,d) 容纳带有小数的数字。"size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。
NUMERIC(size,d) 
CHAR(size)    容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。在括号中规定字符串的长度。
VARCHAR(size)    
容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。
在括号中规定字符串的最大长度。
DATE(yyyymmdd)    容纳日期。
 
CREATE TABLE shopnc_member_20160421 SELECT * FROM shopnc_member
前面的是备份的表,后面的是需要备份的表
-- 从表中选取数据:
SELECT 列名称 FROM 表名称
SELECT * FROM 表名称
SELECT LastName,FirstName FROM Persons
SELECT * FROM persons
 
-- 返回唯一不同的值:
SELECT DISTINCT 列名称 FROM 表名称
SELECT DISTINCT company FROM orders
 
-- 有条件地从表中选取数据 第一个条件和第二个条件都成立 第一个条件和第二个条件中只要有一个成立
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
WHERE AND OR  = <> > < <= >= BETWEEN LIKE
 
-- 按照升序对记录进行排序   降序desc
SELECT company,ordernumber FROM orders ORDER BY company DESC
 
-- 向表格中插入新的行:
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
INSERT INTO Persons VALUES (‘Gates‘, ‘Bill‘, ‘Xuanwumen 10‘, ‘Beijing‘)
INSERT INTO Persons (LastName, Address) VALUES (‘Wilson‘, ‘Champs-Elysees‘)
 
-- 修改表中的数据:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
UPDATE Person SET FirstName = ‘Fred‘ WHERE LastName = ‘Wilson‘ 
 
-- 删除表中的行:
DELETE FROM 表名称 WHERE 列名称 = 值
DELETE FROM Person WHERE LastName = ‘Wilson‘ 
 
-- 规定要返回的记录的数目
LIMIT number
SELECT * FROM Persons LIMIT 5
 
-- 允许我们在 WHERE 子句中规定多个值
SELECT * FROM Persons WHERE LastName IN (‘Adams‘,‘Carter‘)
 
-- 选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期  如需使用上面的例子显示范围之外的人,请使用 NOT 操作符
SELECT * FROM Persons WHERE LastName BETWEEN ‘Adams‘ AND ‘Carter‘
 
-- 存在至少一个匹配时,INNER JOIN 关键字返回行
SELECT column_name(s) FROM table_name1 INNER JOIN table_name2  ON table_name1.column_name=table_name2.column_name
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo 
FROM Persons 
INNER JOIN Orders 
ON Persons.Id_P=Orders.Id_P RDER 
BY Persons.LastName
 
-- 从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
 
-- 从右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
 
-- 从左表 (Persons) 和右表 (Orders) 那里返回所有的行。
-- 如果 "Persons" 中的行在表 "Orders" 中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
 
-- 合并两个或多个 SELECT 语句的结果集
SELECT E_Name FROM Employees_China UNION SELECT E_Name FROM Employees_USA
 
-- 从一个表中选取数据,然后把数据插入另一个表中;常用于创建表的备份复件或者用于对记录进行存档
 -- "Persons" 表的备份复件:
SELECT *
INTO Persons_backup
FROM Persons
-- IN 子句可用于向另一个数据库中拷贝表:
SELECT *
INTO Persons IN ‘Backup.mdb‘
FROM Persons
-- 如果我们希望拷贝某些域,可以在 SELECT 语句后列出这些域:
SELECT LastName,FirstName
INTO Persons_backup
FROM Persons
-- 通过从 "Persons" 表中提取居住在 "Beijing" 的人的信息,创建了一个带有两个列的名为 "Persons_backup" 的表:
SELECT LastName,Firstname
INTO Persons_backup
FROM Persons
WHERE City=‘Beijing‘
-- 创建一个名为 "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
 
-- 创建数据库/创建数据库中的表
CREATE DATABASE database_name
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)
 
-- 删除数据库/删除表
DROP DATABASE 
DROP TABLE
 
-- 在表中添加/删除/修改列
ALTER TABLE table_name ADD column_name datatype
ALTER TABLE table_name DROP COLUMN column_name
ALTER TABLE table_name ALTER COLUMN column_name datatype
 
-- 约束强制列不接受 NULL 值
CREATE TABLE Persons
(
Id_P INT NOT NULL,
LastName VARCHAR(255) NOT NULL,
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255)
)
 
-- 约束用于向列中插入默认值
CREATE TABLE Persons
(
Id_P INT NOT NULL,
LastName VARCHAR(255) NOT NULL,
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255) DEFAULT ‘Sandnes‘
)
 
-- 时间函数
函数            描述
NOW()            返回当前的日期和时间
CURDATE()    返回当前的日期
CURTIME()    返回当前的时间
DATE()            提取日期或日期/时间表达式的日期部分
EXTRACT()    返回日期/时间按的单独部分
DATE_ADD()    给日期添加指定的时间间隔
DATE_SUB()    从日期减去指定的时间间隔
DATEDIFF()    返回两个日期之间的天数
DATE_FORMAT()    用不同的格式显示日期/时间
 
 

常见的SQL语句

标签:

原文地址:http://www.cnblogs.com/hh111111/p/5643109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!