sql⼀对多获得⼀条数据_结构化查询语⾔SQL学习⼊门
⼀、SQL简介
结构化查询语⾔(Structured QueryLanguage)简称SQL,是⼀种特殊⽬的的编程语⾔,是⼀种数据库查询和程序设计语⾔,⽤于存取数据以及查询、更新和管理关系数据库系统。
1974年由Boyce和Chamberlin提出,并⾸先在IBM公司研制的关系数据库系统SystemR上实现。
1980年10⽉,经美国国家标准局(ANSI)的数据库委员会X3H2批准,将SQL作为关系数据库语⾔的美国标准,同年公布了标准SQL,此后不久,国际标准化组织(ISO)也作出了同样的决定。
注:除了标准SQL外,⼤部分关系型数据库都有⾃⼰的私有扩展。
⼆、SQL功能
SQL功能的体现主要在于SQL语⾔,SQL按功能类型分以下6种语⾔,其中1-4条使⽤最多。
1、数据查询语⾔(DQL:Data Query Language):其语句,也称为“数据检索语句”,⽤以从表中获得数据,确定数据怎样在应⽤程序给出。保留字SELECT是DQL(也是所有SQL)⽤得最多的动词,其他DQL常⽤的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句⼀起使⽤。
2、数据操作语⾔(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别⽤于添加、修改和删除。
3、数据控制语⾔(DCL):它的语句通过GRANT或REVOKE实现权限控制,确定单个⽤户和⽤户组对数据库对象的访问。某些RDBMS可⽤GRANT或REVOKE控制对表单个列的访问。
4、数据定义语⾔(DDL):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREAT TABLE 或 DROP TABLE);为表加⼊索引等。
5、指针控制语⾔(CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT⽤于对⼀个或多个表单独⾏的操作。
6、事务控制语⾔(TCL):它的语句能确保被DML语句影响的表的所有⾏及时得以更新。包括COMMIT(
提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
三、SQL使⽤
DDL:CREATE,ALTER和DROP
CREATE(创建)
CREATE DATABASE 数据库名;--创建数据库
CREATE TABLE 表名称(列名1 数据类型(数据长度),列名2 数据类型(数据长度),列名3 数据类型(数据长度));--创建数据表
数据类型描述
integer(size)
int(size)
smallint(size)
tinyint(size)
仅容纳整数。在括号内规定数字的最⼤位数。
decimal(size,d) numeric(size,d)容纳带有⼩数的数字。
'size" 规定数字的最⼤位数。" d " 规定⼩数点
char(size)容纳固定长度的字符串( 可容纳字母、数字以及特殊字符)在括号中规定字符串的长度。
varchar(size)容纳可变长度的字符串( 可容纳字母、数字以及特殊字符)在括号中规定字符串的最⼤长度
date(yyyymmdd)容纳⽇期。
CREATE USER ⽤户名 IDENTIFIED BY 密码;--创建⽤户
CREATE INDEX 索引名称 ON 表名称(列名称);--创建索引
ALTER(修改)
alter table 表名称 add 列名称数据类型;--在某个表增加某个字段alter table 表名称 drop column 列名称;--删除某个表的某个字段alter table 表名称 alter column 列名称DROP(撤销)
drop database 数据库名称;--删除数据库drop table 表名称;--删除表(表的结构、属性以及索引也会删除)
DML:SELECT、INSERT、UPDATE和DELETE
SELECT(查询)
SELECT 列名称 FROM 表名称;--查询某个表中某些列值SELECT * FROM 表名称;--查询某个表中所有列的数据
INSERT(插⼊)
INSERT INTO 表名称 (列1,列2,列3,)VALUES (值1,值2,值3,);--向某个表的某些字段插⼊数据,注意列名称要与值⼀⼀对应INSERT INTO 表名称 VALUES (值1,值2,值UPDATE(更新)
UPDATE 表名称 SET 列名称=新值;--更新某个表的某列的值,实际⽣产使⽤中常与WHERE⼦句同⽤,筛选⼀条或多条数据进⾏修改update 表名称 set 列名称=REPLA DELETE(删除)
delete from 表名称;--删除某个表中数据,同样⽣产使⽤中常与WHERE⼦句同⽤,筛选⼀条或多条数据进⾏删除
DCL:GRANT或REVOKE
GRANT(授予)
GRANT ON 表名[(列名)] TO ;GRANT ON FROM ;--授权
REVOKE(回收)
REVOKE ON FROM ;--收回权限
DQL:WHERE,ORDER BY,GROUP BY和HAVING
WHERE(在某种情况下)
WHERE⼦句常与“增删改查”语句搭配作筛选数据⽤,通过运算符对⽐某个字段以此作为条件筛选部分数据进⾏其他操作;可以理解为条件语句,满⾜条件的执⾏“增删改查”操作,不满⾜条件的不进⾏“增删改查”操作。
常见运算符:
运算符描述
=等于
<>不等于
>⼤于
<⼩于
>=⼤于等于
<=⼩于等于
like相似于(模糊查询)
between某个范围内
ORDER BY(排序)
ORDER BY 关键字⽤于对结果集进⾏排序,ORDER BY DESCD倒序排列
SELECT * FROM 表名称 ORDER BY 列名称;--查询表按某列进⾏排列SELECT * FROM 表名称 ORDER BY 列名称 DESC;--查询表按某列进⾏倒序排列GROUP BY(分组)
数据库学习入门书籍GROUP BY 语句⽤于结合聚合函数,根据⼀个或多个列对结果集进⾏分组
SELECT 列名称 FROM 表名称 GROUP BY 列名称;--查询某列所有不同值显⽰
HAVING
在 SQL 中增加 HAVING ⼦句原因是,WHERE 关键字⽆法与聚合函数⼀起使⽤。
HAVING ⼦句可以让我们筛选分组后的各组数据。
推荐书籍:《SQL基础教程》,想要深⼊学习的朋友有机会可以看看
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论