SQL 基础语法详解

SQL 命令一般分为 DQL、DML、DDL

DQL:数据查询语句,基本就是 SELECT 查询命令,用于数据查询

DML:Data Manipulation Language 的简称,即数据操纵语言,主要用于插入、更新、删除数据,所以也分为 INSERT、UPDATE、DELETE 三种语句。

DDL:Data Definition Language 的缩写,即数据定义语言,主要用于创建、删除,以及修改表、索引等数据库对象语言

 

⚠️

1. 显示列的类型 "character varying(40)" 实际上与 "varchar(40)" 的意思是完全一样的, "int" 与 "integer" 的意思也是一样的。

2. 建表的时候,指定主键后,系统会为主键自动创建一个隐含的索引。

3. varchar(n) 和 char(n) 分别是 character varying(n) 和 character(n) 的别名,没有声明长度的 character 等于 character(1) 。如果使用 character varying 时不带长度说明词,那么该类型接受任何长度的字符串。不带长度是 PostgreSQL 的扩展,其他数据库一般不能这样使用。大多数情况下,应该使用 text 或 varchar。

 

表 join 

表 join 也称为多表关联查询,如:

SELECT student_name, class_name FROM student a, class b 

WHERE a.class_no = b.no;

 

INSERT INTO...SELECT 语句

使用 INSERT INTO...SELECT  语句可以把数据从一张表插入到另一张表中,这个语句属于 DML 语句。

可以使用下面的语句把数据备份到下面这张备份表中:

INSERT INTO student_bak SELECT * FROM student;

 

UNION 语句

可以将两张表的数据整合在一个结果集中,如

SELECT * FROM student WHERE no = 1 

UNION

SELECT * FROM student_bak WHERE no = 2;

注意,UNION 可以把结果集中相同的两条记录合并成一条,如果不想合并,可以使用 UNION ALL

 

TRUNCATE TABLE 语句

效果和不带 WHERE 条件子句的 DELETE 语句也表示清空表的内容一样,但是两者实现的原理是不一样的。

TRUNCATE TABLE 是 DDL 语句,相当于重新定义一个新表的方法,把原先的表的内容直接丢弃了,所以执行起来很快,而 DELETE 是 DML 语句,可以认为 DELETE 是把数据一条一条地删除,若要删除很多行数据,就会比较慢。

 

posted @ 2018-09-08 22:00  Ryan_zheng  阅读(556)  评论(0编辑  收藏  举报