数据库

SQL回顾总结

2016-10-23  本文已影响45人  李作

整理自菜鸟教程

什么是SQL

SQL 指结构化查询语言,全称是 Structured Query Language,是用于访问和处理数据库的标准的计算机语言。

SQL能做什么

SQL语法汇总

use database;
set name utf8;
SELECT * FROM table;
SELECT DISTINCT column_name FROM table;
SELECT column_name,
FROM table
WHERE column_name operator value;

WHERE子句中的运算符

WHERE子句中的运算符
SELECT * FROM table
WHERE country='CN'
AND|OR alexa > 50;

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC; #默认升序,DESC降序
INSERT INTO table_name
VALUES (value1,value2,value3,...);#无需指定要插入数据的列名,只需提供被插入的值即可:
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 TOP number|percent column_name(s)
FROM table_name;#SQL Server / MS Access 语法
SELECT column_name(s)
FROM table_name
LIMIT number;#MySQL 语法
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

SQL 通配符
通配符可用于替代字符串中的任何其他字符,常与LIKE一起使用

通配符

MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。

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;
SELECT column_name AS alias_name
FROM table_name;#列的 SQL 别名语法
SELECT column_name(s)
FROM table_name AS alias_name;#表的 SQL 别名语法

INNER JOIN:如果表中有至少一个匹配,则返回行

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

LEFT JOIN:关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

RIGHT JOIN:关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;

FULL JOIN:只要其中一个表中存在匹配,则返回行

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 column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
SELECT *
INTO newtable [IN externaldb]
FROM table1;
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;
INSERT INTO table2
SELECT * FROM table1;
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
CREATE DATABASE dbname;
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);

在 SQL 中,有如下约束:

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
    DEFAULT - 规定没有给列赋值时的默认值。
CREATE INDEX index_name
ON table_name (column_name)
ALTER TABLE table_name DROP INDEX index_name;
DROP TABLE table_name;
DROP DATABASE database_name;
TRUNCATE TABLE table_name;
ALTER TABLE table_name
ADD column_name datatype;#在表中添加列
ALTER TABLE table_name
DROP COLUMN column_name;#删除表中的列
ALTER TABLE table_name
ALTER COLUMN column_name;#修改表中的列
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;
DROP VIEW view_name;

SQL日期

MySQL 中的内建日期函数

SQL Date 数据类型:


MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:

  • DATE - 格式:YYYY-MM-DD
  • DATETIME - 格式:YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS
  • YEAR - 格式:YYYY 或 YY

SQL 函数


SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。

SQL Scalar 函数基于输入值,返回一个单一的值。

上一篇 下一篇

猜你喜欢

热点阅读