SQL常用命令与语法

本文介绍了SQL(结构查询语言),它是强大的数据库操纵语言。说明了其使用场合,包括应用程序与数据库通讯等。还介绍了SQL命令分组,如DML、DDL、DCL。概述了SQL功能,如建表、授权等,并详细讲解了常用的Select命令及其子句。

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

开发工具与关键技术:SQL

SQL简介:
SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库操纵语言。
SQL使用场合:
应用程序与数据库的通讯
通过DBMS或第三方工具,完成一些数据库的操作任务,比如在数据库中更新数据,或者从数
据库中检索数据
SQL命令分组:
DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据
DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删
除数据库对象
DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限
SQL功能概述
建立数据库的表格
改变数据库系统环境设置
针对某个数据库或表格,授予用户存取权限
对数据库表格建立索引值
修改数据库表格结构。(新建、删除或是修改表格字段)
对数据库进行数据的新建、删除、修改、查询

常用SQL命令:
Select命令:功能:从数据库中检索所需要信息。
(1)Select 命令语法:

SELECT 
    [predicate]
    {*|table.*| [table.]field [,[table.]field2 [,...]]} 
        [AS alias1 [,alias2[,...]]] 
    FROM tableexpression [,...]  [IN externaldatabase]
[WHERE...]
[GROUP BY...]
[HAVING...]
[ORDER BY...]
[WITH OWNERACCESS OPTION] 

(2)predicate:

		ALL,DISTINCT, DISTINCTROW
DISTINCT:
     	Select DISTINCT SNAME from student

(3)查询字段
所有字段:

		Select * from Student

指定查询字段:

Select SNO,SNAME from Student

字段换名:

Select SNO as 学号,SNAME as 姓名 from Student

查询多表字段:

    	  Select a.SNO,a.SNAME,b.CNAME,b.SCORE 
            from Student a,Curse b where a.SNO=b.SNO
     	  Select a.*,b.CNAME,b.SCORE 
            from Student a,Curse b where a.SNO=b.SNO

(4)From子句:
指定从哪些表中获取数据,可以同时给表取一个别名。

Select top 2 Student.SNO, Student.SNAME, Curse.CNAME, Curse.SCORE from Student,Curse 
where Student.SNO= Curse.SNO
Select top 2 a.SNO, a.SNAME, b.CNAME, b.SCORE from Student a,Curse b  where a.SNO= b.SNO

(5)where子句
指定从表中获取哪些记录。

Select * from student where SSEX=‘女’
Select  a.SNO, a.SNAME, b.CNAME, b.SCORE from Student a,Curse b  where a.SNO= b.SNO and b.SCORE>=90
Select  a.SNO, a.SNAME, b.CNAME, b.SCORE from Student a,Curse b  where a.SNO= b.SNO and ((b.SCORE>=90 and a.SSEX=‘男’) or (b.SCORE>=80 and a.SSEX=‘女’))

(6)order by子句
指定结果如何排序:升序:ASC;降序:DESC。

Select * from student order by SNAME
Select  a.SNO, a.SNAME, b.CNAME, b.SCORE from Student a,Curse b  where a.SNO = b.SNO order by a.SNAME, b.SCORE DESC

(7)group by子句
对查询结果进行分组合并。
例:查询学生的平均成绩并按平均成绩排序

Select  a.SNO, a.SNAME, AVG(b.SCORE) as AVG_SCORE from Student a,Curse b  where a.SNO= b.SNO Group by a.SNO,a.SNAME Order By AVG(b.SCORE)

(8)having子句
与group by子句配套使用,与where类似,但主要是针对分组字段的条件。
例:查询平均成绩在85分以上的学生,并显示平均成绩

Select  a.SNO, a.SNAME, AVG(b.SCORE) as AVG_SCORE from Student a,Curse b  where a.SNO= b.SNO Group by a.SNO,a.SNAME having AVG(b.SCORE) >=85

错误写法:

Select  a.SNO, a.SNAME, AVG(b.SCORE) as AVG_SCORE from Student a,Curse b  where a.SNO= b.SNO  and AVG(b.SCORE) >=85   Group by a.SNO,a.SNAME
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值