应届生面试要点总结(16)SQL要看得懂/基本的要会写

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;

猜你喜欢

转载自blog.csdn.net/SEUSUNJM/article/details/86595261