SQL 关键字 | SQL语句及其种类

SQL 用关键字、表名、列名等组合而成的一条语句(SQL 语句)来描述操作的内容。关键字是指那些含义或使用方法已事先定义好的英语单词,存在包含“对表进行查询”或者“参考这个表”等各种意义的关键字。
根据对 RDBMS 赋予的指令种类的不同,SQL 语句可以分为以下三类。

DDL(Data Definition Language,数据定义语言)

DDL用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。

CREATE:创建数据库和表等对象
DROP:  删除数据库和表等对象                 -- 表删除之后无法恢复。
ALTER: 修改数据库和表等对象的结构            -- 表定义变更之后无法恢复。
--建库
CREATE
DATABASE <数据库名称>;
---------------------------------
--建表

  CREATE TABLE <表名> (
     <列名1> <数据类型> <该列所需约束>,
     <列名2> <数据类型> <该列所需约束>,
     <列名3> <数据类型> <该列所需约束>,
     <列名4> <数据类型> <该列所需约束>,
     ...
     <该表的约束1>, <该表的约束2>,……);

------------------------------------

--删除表

DROP TABLE <表名>;   -- 一般的RDBMS中删除的表是无法恢复的

-----------------------------------

--添加列   添加一列|多列  注意不同的数据库使用的语法不同

ALTER TABLE <表名> ADD COLUMN <列的定义>;   

ALTER TABLE <表名> ADD (<列名>,<列名>,……);

示例:

--DB2|PostgreSQL|MySQL
ALTER TABLE Product ADD COLUMN product_name_pinyin VARCHAR(100);
--Oracle
ALTER TABLE Product ADD (product_name_pinyin VARCHAR2(100));
--SQL Server
ALTER TABLE Product ADD product_name_pinyin VARCHAR(100);

-- 修改表名

--Oracle|PostgreSQL
ALTER TABLE <表名> RENAME TO <新表名>;
DB2
RENAME TABLE <表名> TO <新表名>;
SQL Server
sp_rename '<表名>', '<新表名>';
MySQL
RENAME TABLE <表名> to <新表名>;

--删除表中某列

ALTER TABLE <表名> DROP COLUMN (<列名>,<列名>,...);

 

字段约束 | 表约束参考:https://www.cnblogs.com/gzd1-sailoring/p/14827158.html

DML(Data Manipulation Language,数据操纵语言)  

DML用来查询或者变更表中的记录。DML 包含以下几种指令。

SELECT:查询表中的数据
INSERT:向表中插入新数据
UPDATE:更新表中的数据
DELETE:删除表中的数据

插入数据的两种方式:


-- 一次只能添加一条数据
INSERT INTO <表名> VALUES (<对应的字段值>,<对应的字段值>,...);  
-- 一次添加多行数据
INSERT INTO <表名> VALUES (<对应的字段值>,<对应的字段值>,...),(<对应的字段值>,<对应的字段值>,...),...; 
-- 使用查询的结果向表中添加数据
INSERT INTO <表名> as 
select 语句;
 

 select 语句中可以使用distinct 对结果进行去重。DISTINCT 关键字只能用在第一个列名之前。distinct去重的列应该放在第一列, 而且多个null值也会去重成一个。如果想实现多列去重效果,可以使用子查询的方式,一次指定一个列进行去重。

 

DCL(Data Control Language,数据控制语言) 

DCL 用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。

COMMIT: 确认对数据库中的数据进行的变更
ROLLBACK:取消对数据库中的数据进行的变更
GRANT: 赋予用户操作权限
REVOKE: 取消用户的操作权限

实际使用的 SQL 语句当中有 90% 属于 DML

MySQL中的类型转换,使用cast()函数可以强制转换

 

 

类型转换参考链接

 

posted @ 2021-05-30 09:12  SailorG  阅读(804)  评论(0编辑  收藏  举报