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);
--Oracledb2数据库sql语句
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 (<;列名>,<;列名>,...);
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()函数可以强制转换
【】
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论