SQL基础语法
2024-05-09 17:13:50 7 举报
AI智能生成
SQL(结构化查询语言)是一种用于管理关系型数据库的编程语言。它包括一系列用于创建、查询、更新和删除数据库中数据的命令。核心语法包括SELECT(用于查询数据)、INSERT(用于插入新数据)、UPDATE(用于更新现有数据)和DELETE(用于删除数据)。这些命令可以结合使用WHERE、AND、OR和NOT等逻辑运算符以及JOIN(用于连接多个表)等操作符。此外,还可以使用子查询和聚合函数等高级功能。SQL文件通常以.sql为扩展名,用于存储和执行SQL命令。
作者其他创作
大纲/内容
内置函数
数值型函数
绝对值函数ABS()
求余MOD(n2,n1)
符号函数sign()
三角函数
取整函数
CEIL(n)
返回结果是大于等于输入参数的最小整数
FLOOR(n)
返回结果是小于或等于参数的最大整数
指数、对数函数
SQRT(n)
POWER(n2,n1)
EXP(n)
LOG(n1,n2)
截取函数
ROUND(for number)
TRUNC(for number)
字符型函数
ASCII码与字符转换函数
CHR(n[USING NCHAR_CS])
ASCII(char)
获取字符串长度的函数
LENGTH
字符串截取函数
SUBSTR
{[SUBSTR]|[SUBSTRB]|[SUBSTRC]|[SUBSTR2]|[SUBSTR4]}(char,position[,substring_length])
字符串连接函数
CONCAT(char1,char2)
字符串搜索函数
INSTR
{[INSTR]|[INSTRB]|[INSTRC]|[INSTR2]|[INSTR4]}(string,substring[,position[,occurrence]])
字母大小写转换函数
UPPER(char)
LOWER(char)
INITCAP(char)
NLS_INITCAP(char[,nlsparam])
NLS_UPPER(char[,nlsparam])
NLS_LOWER(char[,nlsparam])
为指定参数排序的函数
NLSSORT(char[,nlsparam])
替换字符串函数
REPLACE
字符串填充函数
RPAD
LPAD
删除字符串首尾指定字符的函数
TRIM([LEADING|TRAILING|BOTH][trim_character FROM]trim_source)
RTRIM(char[,set])
LTRIM(char[,set])
字符集名称和ID互换的函数
NLS_CHARSET_ID(string)
NLS_CHARSET_NAME(number)
日期函数
SYSDATE
SYSTIMESTAMP
NEW_TIME(date,timezone1,timezone2)
查
select
主要语法结构
SELECT13;[DISTINCT|ALL]13;select_list13;FROM table_list13;[ where_clause ]13;[ group_by_clause ]13;[ HAVING condition ]13;[ order_by_clause ]
select_list
{ 13;* | 13;{ [ schema. ] { table | view } .*13;| expr [ [ AS ] c_alias ]13;}
expr
|| 链接符
函数
去重
DISTINCT(column_name)
排序
ORDER BY13;{ expr | position | c_alias }13;[ ASC | DESC ]13;[ NULLS FIRST | NULLS LAST ]13; [, { expr | position | c_alias }13; [ ASC | DESC ]13; [ NULLS FIRST | NULLS LAST ]13; ]...
where子句
关系操作符
<、<=、>、>=、=、!=、<>
比较操作符
·IS NULL:如果操作数为NULL返回TRUE。
·LIKE:模糊比较字符串值。
·_:可以替代一个字符
·%:可以替代多个字符
·BETWEEN...AND:验证值是否在设置的范围之内。
·IN:验证操作数是否在设定的一系列值中。
逻辑操作符
·AND:两个条件都必须得到满足。
·OR:只要满足两个条件中其中的一个即可。
·NOT:与某个逻辑值取反。
group by
GROUP BY13; { expr13; | { ROLLUP | CUBE } ({expr [, expr ]...})13; }
having
作用于组的筛选
子查询搭配
IN:包含于子查询结果中
·ANY:表示满足子查询结果的任何一个。和<、<=搭配,表示小于等于列表中的最大值;而和>、>=配合时表示大于等于列表中的最小值。
·SOME:可以认为和ANY含义相同。
·ALL:表示满足子查询结果的所有结果。和<、<=搭配,表示小于等于列表中的最小值;而和>、>=配合时表示大于等于列表中的最大值。
连接
内连接(,或INNER JOIN)
等值连接
连接条件中使用“=”(等号)连接两个条件列表
不等值连接
使用“>”、“>=”、“<=”、“<”、“!=”、“<>”、“BETWEEN...AND”、“IN”等符号连接两个条件列表
自连接(,或INNER JOIN)
就是把自身表的一个引用作为另一个表来处理
外连接(LEFT|RIGHT|FULL JOIN)
·左外连接:使用左外连接的查询,返回的结果不仅仅是符合连接条件的行记录,还包含了连接关键字左边表中的全部记录。也就是说,如果左表的某行记录在右表中没有匹配项,则在返回结果中右表的所有选择列表列均为空。
·右外连接:它与左外连接相反,将右边的表中所有的数据与左表进行匹配,13;返回的结果除了匹配成功的记录,还包含了右表中未匹配成功的记录,并在其左表对应的列补空值。
·全外连接:返回所有匹配成功的记录,并返回左表未匹配成功的记录,也返回右表未匹配成功的记录。
增
数据库
CREAT DATABASE database_name;13;USE database_name;
表
新建
CREATE TABLE table_name13;(13;column_name datatype [null|not null]13;,13;column_name datatype [null|not null]13;[constraint]13;);
约束(constraint)
主键约束
添加
表创建时
PRIMARY KEY (column_name)
表创建后
ADD CONSTRAINTS constraint_name PRIMARY KEY (column_name);
移除
DROP CONSTRAINT constraint_name;
外键约束
添加
表创建时
CONSTRAINT constraint_name FOREIGN KEY (column_name)13;REFERENCE table_name (column_name )13;ON DELETE CASCADE
表创建后
ADD CONSTRAINT constraint_name FOREIGN KEY (column_name)13;REFERENCE table_name (column_name )13;ON DELETE CASCADE;
移除
DROP CONSTRAINT constraint_name;
唯一约束
添加
表创建时
CONSTRAINT constraint_name UNIQUE(column_name);
表创建后
ADD CONSTRAINT constraint_name UNIQUE(column_name);
移除
DROP CONSTRAINT constraint_name;
检查约束
添加
表创建时
CONSTRAINT constraint_name CHECK(condition);
表创建后
ADD CONSTRAINT constraint_name CHECK(condition);
移除
DROP CONSTRAINT constraint_name;
非空约束
添加
表创建时
NOT NULL
创建后
MODIFY column NOT NULL;
数据源
CREATE TABLE table_name AS SELECT column_name1, column_name2,13;…FROM source_table;
列
ALTER TABLE table_name13;ADD column_name;
行
直接插入
INSERT INTO table_name(column_name1, column_name2,…) VALUES(data1,data2…) ;
数据源
INSERT INTO table_name1 (column_name1, column_name2,…)13;Select column_name1, column_name2... FROM table_name2;
删
表
DROP TABLE table_name(CASCADE CONSTRAINTS);
列
ALTER TABLE table_name13;DROP COLUMN column_name;
行
DELETE FROM table_name [WHERE condition];
TRUNCATE TABLE table_name;
改
列
CHANGE
ALTER TABLE table_name CHANGE column_old column_new data_type constraint;
MODIFY
ALTER TABLE table_name13;MODIFY column;
行
UPDATE table_name SET column_name1=data1,column_name1=data2,13;…[WHERE condition] ;
MERGE [INTO] table_name113;USING table_name213;ON ( condition ) 13; WHEN MATCHED THEN merge_update_clause13; WHEN NOT MATCHED THEN merge_insert_clause;
0 条评论
下一页