SELECT 语句
SELECT column1, column2, ... #选取全部用 *
FROM table_name;
*SELECT DISTINCT 选取唯一值,重复值只保留一个
SELECT DISTINCT column1, column2, ...
FROM table_name;
WHERE 子句
SELECT column1, column2, ...
FROM table_name
WHERE condition;#仅提取满足condition条件的记录
*逻辑运算符:
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值
*AND/OR
SELECT * from xyz WHERE val > 2000 AND val < 3000;
SELECT * from xyz WHERE sal > 2000 OR comm > 500;
ORDER BY 关键字
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;#ASC按升序排列,DESC按降序排列
INSERT INTO 语句
INSERT INTO table_name # 不指定列名
VALUES (value1,value2,value3,...);
INSERT INTO table_name (column1,column2,column3,...) # 指定列名
VALUES (value1,value2,value3,...);
UPDATE 语句
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition; #!!!谨防全部键值被更改,尽可能使用WHERE
DELETE 语句
DELETE FROM table_name
WHERE condition;#!!!谨防全部被删除,尽可能使用WHERE
LIMIT 子句
SELECT column_name(s)
FROM table_name
LIMIT number; # 规定要返回的记录的数目,大型表时用
LIKE 操作符
SELECT column1, column2, ...
FROM table_name
WHERE column LIKE pattern; # pattern接SQL通配符
通配符
% 替代 0 个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]
或
[!charlist] 不在字符列中的任何单一字符
*例:
选取 name 以 "G"、"F" 或 "s" 开始的所有网站:
SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';
IN 操作符(在 WHERE 子句中规定多个值)
SELECT column1, column2, ...
FROM table_name
WHERE column IN (value1, value2, ...);
BETWEEN 操作符(选取介于两个值之间的数据范围内的值)
SELECT column1, column2, ...
FROM table_name
WHERE column BETWEEN value1 AND value2; # 该值可为数字、字母、日期值等
JOIN相关
UNION 操作符(合并两个或多个 SELECT 语句的结果)
默认选取不同的值,允许重复值用UNION ALL
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
建立库、表、约束
CREATE DATABASE dbname;
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name1,
column_name2 data_type(size) constraint_name2,
column_name3 data_type(size) constraint_name3,
....
);
NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY 约束
NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);
UNIQUE 约束唯一标识数据库表中的每条记录。注意:每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)
PRIMARY KEY约束:主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
FOREIGN KEY约束:一个表中的外键指向另一个表中的 UNIQUE KEY(唯一约束的键)。
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
常用数据清洗方法汇总
#删除不必要的列:
ALTER TABLE tableName DROP COLUMN columnName;
#重命名列:
SELECT col_name AS new_col_name FROM tableName;
#处理重复值:
SELECT DISTINCT col_name FROM tableName;
#字符串处理,例如去除空格、替换特殊字符:
SELECT TRIM(col_name) FROM tableName;
SELECT REGEXP_REPLACE(col_name, '正则表达式', '替换字符') FROM tableName;
#数据合并:
SELECT A.*, B.* FROM Table_a A JOIN Table_b B ON A.id = B.id;