SELECT DISTINCT column_name,column_name
FROM table_name;
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
DELETE FROM table_name
WHERE some_column=some_value;
SELECT column_name(s)
FROM table_name
LIMIT number;
以下操作在 Microsoft SQL Server 数据库中可执行。
SELECT TOP 50 PERCENT * FROM Websites;
SELECT * FROM Websites
WHERE name LIKE '%oo%';
SELECT * FROM Websites
WHERE name LIKE 'G_o_le';
SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';
SELECT * FROM Websites
WHERE name REGEXP '^[A-H]';
SELECT * FROM Websites
WHERE name REGEXP '^[^A-H]';
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
列的 SQL 别名语法
SELECT column_name AS alias_name
FROM table_name;
表的 SQL 别名语法
SELECT column_name(s)
FROM table_name AS alias_name;
SELECT Websites.id, Websites.name, access_log.count, access_log.date
FROM Websites
INNER JOIN access_log
ON Websites.id=access_log.site_id;
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
复制多个表中的数据插入到新表中:
SELECT Websites.name, access_log.count, access_log.date
INTO WebsitesBackup2016
FROM Websites
LEFT JOIN access_log
ON Websites.id=access_log.site_id;
我们可以从一个表中复制所有的列插入到另一个已存在的表中:
INSERT INTO table2
SELECT * FROM table1;
或者我们可以只复制希望的列插入到另一个已存在的表中:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
CREATE DATABASE dbname;
CREATE TABLE Persons
(
Id_P int NOT NULL PRIMARY KEY, //PRIMARY KEY约束
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
ALTER TABLE Persons
ADD UNIQUE (P_Id);
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName);
ALTER TABLE Persons
DROP INDEX uc_PersonID;
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
);
ALTER TABLE Persons
ADD CHECK (P_Id>0);
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes');
ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES';
CREATE INDEX index_name
ON table_name (column_name);
CREATE UNIQUE INDEX index_name
ON table_name (column_name);
CREATE INDEX PIndex
ON Persons (LastName, FirstName);
ALTER TABLE table_name DROP INDEX index_name;
DROP TABLE table_name;
DROP DATABASE database_name;
TRUNCATE TABLE table_name;
ALTER TABLE table_name
MODIFY COLUMN column_name datatype;
ALTER TABLE Persons AUTO_INCREMENT=100;
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition;
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition;
SELECT AVG(column_name) FROM table_name;
SELECT COUNT(column_name) FROM table_name;
SELECT MAX(column_name) FROM table_name;
SELECT MIN(alexa) AS min_alexa FROM Websites;
SELECT SUM(count) AS nums FROM access_log;
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
SELECT site_id, SUM(access_log.count) AS nums
FROM access_log GROUP BY site_id;
SELECT Websites.name,COUNT(access_log.aid) AS nums FROM access_log
LEFT JOIN Websites
ON access_log.site_id=Websites.id
GROUP BY Websites.name;
SELECT Websites.name, Websites.url, SUM(access_log.count) AS nums FROM (access_log
INNER JOIN Websites
ON access_log.site_id=Websites.id)
GROUP BY Websites.name
HAVING SUM(access_log.count) > 200;
SELECT UCASE(name) AS site_title, url
FROM Websites;
SELECT LCASE(column_name) FROM table_name;
SELECT MID(name,1,4) AS ShortTitle
FROM Websites;
SELECT name, LENGTH(url) as LengthOfURL
FROM Websites;
SELECT ROUND(column_name,decimals) FROM table_name;
SELECT name, url, Now() AS date
FROM Websites;
SELECT name, url, DATE_FORMAT(Now(),'%Y-%m-%d') AS date
FROM Websites;