欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL语句的数据操作语言 (DML) 和 数据定义语言 (DDL)使用介绍

程序员文章站 2022-11-02 17:50:54
SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。 查询和更新指令构成了 SQL 的 DML 部分: SELECT - 从数据库表中获取数据: U...

SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

查询和更新指令构成了 SQL 的 DML 部分:

SELECT - 从数据库表中获取数据:

UPDATE - 更新数据库表中的数据

DELETE - 从数据库表中删除数据

INSERT INTO - 向数据库表中插入数据

SQL语句

查询:SELECT 列名称 FROM 表名称/SELECT * FROM 表名称
更新:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
删除:DELETE FROM 表名称 WHERE 列名称 = 值
插入:INSERT  INTO  表名称  VALUES(值1,值2,...)/INSERT  INTO  表名称(列1,,2,...)  VALUES(值1,值2,...)
唯一值:SELECT  DISTINCT  列名称  FROM  表名称(用于返回唯一不同的值)
条件:SELECT  列名称  FROM  表名称  WHERE  列  运算符  值/运算符(=、<>、>、<、>=、<=、BETWEEN、LIKE)
条件链接:SELECT * FROM 表名称 WHERE 列名称 = 值 AND 列名称 = 值/SELECT * FROM 表名称 WHERE 列名称 = 值 OR 列名称 = 值 
排序:ORDER BY 语句用于根据指定的列对结果集进行排序,降序对记录进行排序DESC,升序对记录进行排序ASC
SELECT * FROM 表名称 ORDER BY 列名称 DESC/SELECT * FROM 表名称 ORDER BY 列名称 ASC
条数:SELECT TOP 数字 * FROM 表名称/SELECT TOP 数字 PERCENT * FROM 表名称
匹配:SELECT * FROM 表名称 WHERE 列名称 LINK '%值'
In:SELECT * FROM 表名称 WHERE 列名称 IN (值1,值2,...)
Between:SELECT * FROM 表名称 WHERE 列名称 BETWEEN '值1' AND '值2'
内连接:SELECT 表名称.列名称 FROM 表名称1 INNER JOIN 表名称2 ON 表名称1.id = 表名称2.id
左连接:SELECT 表名称.列名称 FROM 表名称1 LEFT JOIN 表名称2 ON 表名称1.id = 表名称2.id
右连接:SELECT 表名称.列名称 FROM 表名称1 RIGHT JOIN 表名称2 ON 表名称1.id = 表名称2.id
全连接:SELECT 表名称.列名称 FROM 表名称1 FULL JOIN 表名称2 ON 表名称1.id = 表名称2.id
Union:SELECT 列名称 FROM 表名称 UNION(UNION ALL) SELECT 列名称 FROM 表名称
复制:SELECT 列名称 INTO 新表名称 FROM 表名称1 (WHERE 列名称 = 值/INNER JOIN 表名称2 ON 表名称1.id = 表名称2.id)

通配符:

%,替代一个或多个字符;-,仅替代一个字符;[charlist],字符列中的任何单一字符;[^charlist]或[!charlist],不在字符列中的任何单一字符。

SQL 中最重要的 DDL 语句:

CREATE DATABASE - 创建新数据库

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

ALTER TABLE - 变更(改变)数据库表

DROP TABLE - 删除表

CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

SQL语句

创建数据库:CREATE DATABASE 名称
创建表格:CREATE TABLE 表名称 (列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,...) 
创建索引:CREATE INDEX 索引名 ON 表名称 (列名称)/CREATE UNIQUE INDEX 索引名 ON 表名称 (列名称)
删除索引、表以及数据库:DROP INDEX 索引名/DROP TABLE 表名称/DROP DATABASE 数据库名称
删除内容:TRUNCATE TABLE 表名称
表中列添加:ALTER TABLE 表名称 ADD 列名称 数据类型
表中列修改:ALTER TABLE 表名称 ALTER COLUMN 列名称 数据类型
表中列删除:ALTER TABLE 表名称 DROP COLUMN 列名称
创建视图:CREATE VIEW 视图名称 AS SELECT 列名称 FROM 表名称 WHERE 条件

SQL约束

NOT NULL:约束强制列不接受 NULL 值

UNIQUE:约束唯一标识数据库表中的每条记录

PRIMARY KEY:约束唯一标识数据库表中的每条记录

FOREIGN KEY:一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY

CHECK:约束用于限制列中的值的范围

DEFAULT:约束用于向列中插入默认值

SQL的NULL值处理:IS NULL 和 IS NOT NULL 操作

SQL函数

SELECT function(列) FROM 表

AVG(column)返回某列的平均值
COUNT(column)返回某列的行数(不包括NULL值)
COUNT(*)返回被选行数 
COUNT(DISTINCT column)返回相异结果的数目
FIRST(column)返回在指定的域中第一个记录的值(SQLServer2000 不支持)
LAST(column)返回在指定的域中最后一个记录的值(SQLServer2000 不支持)
MAX(column)返回某列的最高值
MIN(column)返回某列的最低值
SUM(column)返回某列的总和

UCASE(c)将某个域转换为大写
LCASE(c)将某个域转换为小写
MID(c,start[,end])从某个文本域提取字符
LEN(c)返回某个文本域的长度
ROUND(c,decimals)对某个数值域进行指定小数位数的四舍五入
NOW()返回当前的系统日期
FORMAT(c,format)改变某个域的显示方式

SQL的GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
SQL的增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value