• 认真地记录技术中遇到的坑!

SQL简单语法总结

mysql 悠悠 2年前 (2017-08-03) 500次浏览 0个评论

CREATE DATABASE 语句

CREATE DATABASE 语句用于创建数据库。

CREATE DATABASE dbname;

CREATE TABLE 语句

CREATE TABLE 语句用于创建数据库中的表。表由行和列组成,每个表都必须有个表名。
data_type 可以参考 SQL通用数据类型

CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);

约束(Constraints)

SQL 约束用于规定表中的数据规则。
如果存在违反约束的数据行为,行为会被约束终止。
约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

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,
....
);
# NOT NULL UNIQUE 约束
CREATE TABLE Users
(
id int(10),
name varchar(100) NOT NULL,
nick_name int NOT NULL ,
game_id int(10),
city varchar(255) DEFAULT '',
UNIQUE (name),
PRIMARY KEY (id),
FOREIGN KEY (game_id) REFERENCES Games(id)
)
  • NOT NULL – 指示某列不能存储 NULL 值。
  • AUTO INCREMENT – 自动地创建主键字段的值。不算是约束,而是一种语法字段
  • UNIQUE – 保证某列的每行必须有唯一的值,每个表可以有多个 UNIQUE 约束。
  • PRIMARY KEY – NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY – 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK – 保证列中的值符合指定的条件。
  • DEFAULT – 规定没有给列赋值时的默认值。

DROP 语句

# DROP INDEX 语句用于删除表中的索引
ALTER TABLE table_name DROP INDEX index_name
# DROP TABLE 语句用于删除表
DROP TABLE table_name
# ROP DATABASE 语句用于删除数据库
DROP DATABASE database_name
# TRUNCATE TABLE 语句删除表内的数据,但不删除表本身
TRUNCATE TABLE table_name

INSERT INTO 语句

INSERT INTO 语句用于向表中插入新记录。如果没有指定列明,则按表中第一列开始的顺序插入值。

INSERT INTO table_name
VALUES (value1,value2,value3,...);

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

UPDATE 语句

UPDATE 语句用于更新表中已存在的记录。

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!

DELETE 语句

DELETE 语句用于删除表中的记录。

DELETE FROM table_name
WHERE some_column=some_value;
WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!

SELECT 语句

SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,你可以继续根据结果表进行第二次查询操作,也就是说可以嵌套。

SELECT column_name,column_name
FROM table_name;

SELECT * FROM table_name;

SELECT DISTINCT 语句

在表中,一个列可能会包含多个重复值,有时望仅仅列出不同(distinct)的值。DISTINCT 关键词用于返回唯一不同的值。

SELECT DISTINCT column_name,column_name
FROM table_name;

WHERE 子句

WHERE 子句用于提取那些满足指定标准的记录。

运算符 描述
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

AND & OR 运算符

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

LIKE 操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
通配符 描述
% 替代 0 个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]

[!charlist]
不在字符列中的任何单一字符

IN 操作符

IN 操作符允许您在 WHERE 子句中规定多个值。

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

BETWEEN 操作符

ETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

别名 AS

通过使用 SQL,可以为表名称或列名称指定别名。

# 列的 SQL 别名语法
SELECT column_name AS alias_name
FROM table_name;
# 表的 SQL 别名语法
SELECT column_name(s)
FROM table_name AS alias_name;

ORDER BY 关键字

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序 ASC 对记录进行排序。降序使用 DESC 关键字。

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;

SELECT TOP, LIMIT, ROWNUM 子句

SELECT TOP 子句用于规定要返回的记录的数目。
SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。

# SQL Server / MS Access 语法
SELECT TOP number|percent column_name(s)
FROM table_name;
# MySQL 语法
SELECT column_name(s)
FROM table_name
LIMIT number;
# Oracle 语法
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

GROUP BY 语句

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
当 GROUP BY 和 ORDER BY 一起使用时,GROUP BY 在 ORDER BY 之前,并且 ORDER BY 不会对分好的组内的数据进行排序。

转载请注明出处 SQL简单语法总结
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址