SQL基础

本文深入解析了SQL中的数据操作语言(DML),包括查询、插入、更新和删除等基本操作,以及数据定义语言(DDL),涉及数据库、表的创建、修改和约束等内容。详细阐述了SQL语句的使用技巧,涵盖了各种数据类型、约束规则和统计结果计算方法,为数据库管理提供了全面指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,DML:数据操作语言

查询 SELECT column FROM table唯一:DISTINCT column

排序:ORDER BY column [ ASC / DESC ]

ASC: ascend 上升

DESC: descend 下降

取头:
MySQL:LIMIT 10
Oracle:WHERE ROWNUM <= 10
Others:TOP 10 [PERCENT] column
插入 INSERT INTO table (column1, column2,...) VALUES (value1, value2,....)   
更新 UPDATE table SET column = value   
删除 DELETE FROM table   

 

1,过滤数据WHERE

WHERE column 运算符 value

运算符

数字=, !=, >, <, >=, <= , [NOT] IN(1,2),[NOT]BETWEEN1AND3
字符=, !=, [NOT] LIKE, [NOT] IN('a','b'),[NOT]BETWEEN 'a'AND 'c'

LIKE通配符

代替一个字符_
代替一个或多个字符%
字符列的任意字符[bcd]
不在字符列的任意字符[!bcd] 或 [^bcd]

WHERE条件组合:AND,OR

 

2,数据链接:表链接

WHERE 链接:FROM table1, table2 WHERE table1.column = table2.column

JOIN 链接:FROM table1 [INNER,LEFT,RIGHT,FULL]JOIN table2 ON table1.column = table2.column

INNER JOIN仅包含符合join条件的数据

LEFT JOIN额外包含所有table1的数据

RIGHT JOIN额外包含所有table2的数据

FULL JOIN包含所有table1,table2的数据

CROSS JOIN会将table1,table2进行笛卡儿集,用得很少

 

3,链接结果:UNION

UNION:去除重复结果;ALL UNION:不去除重复结果

SQL Statement 1UNION ALLSQL Statement 2

 

4,统计结果:

平均值 AVG(column)
最小值 MIN(column)
最大值 MAX(column)
总和 SUM(column)
总数 COUNT(column)

分组统计:GROUP BY column

由于统计结果返回的是唯一结果,因此如果在统计结果外,需要其他列的数据,必须对这些其他列进行分组,即GROUP BY

统计结果过滤:HAVING function(column) op value

对于统计结果筛选,不能再通过where,而是通过HAVING

 

二,DDL:数据定义语言

创建数据库 CREATE DATABASE database_name
创建表 CREATE TABLE table(column1 数据类型 约束,column2 数据类型 约束,....)
修改表 ALTER TABLE table
ADD column 数据类型/ DROP COLUMN column /ALTER COLUMN column 数据类型
  

 

1,数据类型

 

integer(size)
int(size)
smallint(size)
tinyint(size)
整数。size是最大位数。
decimal(size,d)
numeric(size,d)
小数
size 是整数最大位数。d 是小数最大位数。
char(size) 固定长度字符串。
size是字符串的长度。
varchar(size) 可变长度的字符串。
size是字符串的最大长度。
date(yyyymmdd)日期

 

2,约束

 

非空NOT NULL
唯一UNIQUE
主键(非空唯一且每张表只有一个)PRIMARY KEY
外键(只能存入引用表中列中已有的值) FOREIGN KEY REFERENCES table(column)
约束 CHECK(column>0)
默认值 DEFAULT 0
自增长AUTO_INCREMENT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值