SQL是一门较为通用的用来操作数据库的语言,是用于访问和处理数据库的标准的计算机语言.
数据库管理系统可以操作数据库,对外暴露的接口大多是支持SQL语言的.
SQL语句分为两部分:
- 数据查询语言(DQL: Data Query Language)
- 数据操纵语言(DML:Data Manipulation Language)
关系型数据库包括多张表和表之间的关系.
CREATE DATABASE 创建数据库
注意:SQL语句的关键字中的大小写是不敏感的
CREATE DATABASE dbname;
示例:
CREATE DATABASE test;
CREATE TABLE 创建表
CREATE TABLE table_name(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
)
- table_name和column_name不需要用引号包围
- data_type(size)的常用类型有:
| 数据类型 | 说明 |
|---|---|
| INT(size) | 存储intage变量,size是最大位数,默认为11 |
| DECIMAL(size,d) | 存储double变量,允许固定的小数点,size规定整数的最大位数,d表示小数点右边的最大位数 |
| CHAR(size) | 存储固定长度的String,size指定String的长度 |
| VARCHAR(size) | 存储可变长度的String,size指定String的最大长度 |
| DATETIME() | 存储日期和时间,格式为YYYY-MM-DD HH:MM:SS |
示例:
CREATE TABLE Persons(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255),
);
INSERT INTO 插入数据
INSERT INTO table_name (
column_name1,
column_name2,
...
) VALUES (
value1,
value2,
....
);
示例:
INSERT INTO Persons (
LastName,
Address
) VALUES (
'Wilson',
'Champs-Elysees'
);
SELECT 查询数据
SELECT语句从表中选取数据,返回一张表(被称为结果集)
SELECT
column_name1,
column_name2,
...
FROM
table_name;
*通配符代表所有的列.
示例:
SELECT
*
FROM
Persons;
--返回Person表中所有的字段
DISTINCT 去重
SELECT DISTINCT
column_name
FROM
table_name;
注意:如果只查询一个字段,那么很显然distinct会对查询的字段进行去重,但如果查询的是多个字段,俺么distinct去重的其实是多个字段的组合
WHERE 条件过滤
SELECT
column_name
FROM
table_name
WHERE
Boolean;
布尔表达式中可以包含column_name,只有当该行使WHERE语句后面的布尔表达式返回true时,该行才会被显示
常见的逻辑运算符有=,(不等于),>,=,<=,BETWEEN,LIKE,其中,BETWEEN和LIKE将在后面的进阶教程说明
除此之外,还可以用AND和OR来连接两个布尔表达式,布尔表达式中也可以用圆括号来确定运算优先级
ORDER BY 排序
SELECT
column_name
FROM
table_name
ORDER BY
column_name1,
column_name2
ASC/DESC
若要按照升序排序,请使用ASC,若要按照降序排序,请使用DESC
如果对多个字段进行排序,那么排在前面的字段优先级更高,以上,先对column_name1进行排序,然后在column_name1的内部对column_name2进行排序.
UPDATE 更新数据
UPDATE
table_name
SET
column1 = value1,
column2 = value2,
...
WHERE
Boolean;
注意:上面的SQL语句将对Boolean返回值为true的行进行更新,若省略了WHERE子句,则Boolean默认值为true,也就是所有行都会被更新!
示例(将一位用户的姓名从A修改到B):
UPDATE
Person
SET
Name='B'
WHERE
Name='A';
DELETE 删除数据
DELETE
FROM
table_name
WHERE
Boolean;
DELETE是按照行删除的,所以不需要指定字段.
和UPDATE一样,如果省略了WHERE子句,Boolean的默认值是true,这代表将删除所有的行!
TRUNCATE TABLE 清除表数据
这条指令仅仅会删除表中的数据,而不会删除表的框架结构
TRUNCATE TABLE
table_name;
DROP TABLE 删除表
删除整张表,包含框架结构
DROP TABLE
table_name;
今天突然想开始更新BLOG,于是就有了这篇文章,是一些很基础的SQL语句,敲了一遍就当复习了www.明天要和朋友一起运转CRH2A去扬州,尝尝扬州炒饭,然后运转公交去镇江,最后从大港南站回南京,又是一个充实的周末!!
