数据库SQL命令大全

数据库SQL命令大全一 关于数据库的 SQL 命令 1 创建数据库 CREATEDATABA 数据库名称 ON FILEGROUP 文件组名称 NAME 数据文件逻辑名称 FILENAME 路径 数据文件名 SIZE 数据文件初始大小 MAXSIZE 数据文件最大容量 FILEGROWTH 数据文件自动增长容量 LOGON NAME 日志文件逻辑名称 FILENAME 路径 日志文件名 SIZE 日志文件初始大小 MAXSIZE 日志文件最大容量 FILEGROWTH

一、关于数据库的SQL命令

1.创建数据库

CREATE DATABASE 数据库名称 [ON [FILEGROUP 文件组名称] ( NAME=数据文件逻辑名称, FILENAME='路径+数据文件名', SIZE=数据文件初始大小, MAXSIZE=数据文件最大容量, FILEGROWTH=数据文件自动增长容量, )] [LOG ON ( NAME=日志文件逻辑名称, FILENAME='路径+日志文件名', SIZE=日志文件初始大小, MAXSIZE=日志文件最大容量, FILEGROWTH=日志文件自动增长容量, )] [COLLATE 数据库校验方式名称] [FOR ATTACH] 

注释:

2.修改数据库

ALTER DATABASE 数据库名称 //1.向数据库中添加数据文件 ADD FILE( 具体文件格式) [TO FILEGROUP 文件组名] //2.向数据库中添加数据文件 |ADD LOG FILE( 具体文件格式) //3.向数据库删除逻辑文件,并删除物理文件 |REMOVE FILE 文件逻辑名称 //4.指定要修改的文件 |MODIFY FILE( 具体文件格式) //5.向数据库中添加文件组 |ADD FILEGROUP 文件组名 //6.从数据库中删除文件组 |REMOVE FILEGROUP 文件组名 //7.修改文件组名称,或设置文件组的只读、读写,指定文件组为默认文件组 |MODIFY FILEGROUP 文件组名 { 
    READ_ONLY|READ_WRITE, | DEFAULT, | NAME = 新文件组名 } 其中,“具体文件格式”为: ( NAME = 文件逻辑名称 [,NEWNAME = 新文件逻辑名称] [,SIZE = 初始文件大小] [,MAXSIZE = 文件最大容量] [,FILEGROWTH = 文件自动增长容量] ) 其中“|”表示单选 

3.删除数据库

DROP DATABASE 数据库名称 

4.查询数据库

4.1用系统存储过程显示数据库结构

Sp_helpdb [[@dbname=] 'name'] 

4.2用系统存储过程显示文件信息

Sp_helpfile [[@filename =] 'name'] 

4.3用系统存储显示文件组信息

Sp_helpfilegroup [[@filegroupname =] 'name'] 

二、数据类型介绍

1.数值

在这里插入图片描述

2.字符串

在这里插入图片描述

3.时间日期

在这里插入图片描述

4.数据库的字段属性

4.1

UnSigned

4.2

ZEROFILL

4.3

Auto_InCrement

4.4

NULL 和 NOT NULL

4.5

DEFAULT

默认的,用于设置默认值

4.6

三、关于数据表的SQL命令

1.创建数据表

CREATE TABLE 表名 ( 列名 数据类型 表约束, . . . ) 例子: CREATE TABLE S ( SNO VARCHAR(6), SN NVARCHAR(10), SEX NCHAR(1) DEFAULT '男', ) 

2.数据表的约束

2.1 NULL/NOT NULL约束

2.2 UNIQUE约束(唯一约束)

用于指明基本表在某一列或多个列的组合上取值必须唯一

建立UNIQUE约束时,需要考虑以下几个因素。

2.3 PRIMARY KEY 约束(主键约束)

PRIMARY KEY 约束用于定义基本表的主键,起唯一标识作用,其值不能为空.

PRIMARY KEY与 UNIQUE约束类似,通过建立唯一索引来保证基本表在主键列取值的唯一性,但它们之间存在着很大的区别.

2.4 FOREIGN KEY 约束(外键约束)

例子: CREATE TABLE SC ( SNO VARCHAR(6) NOT NULL FOREIGN KEY REFERENCES S(SNO), CNO VARCHAR(6) NOT NULL FOREIGN KEY REFERENCES C(CNO), CONSTRAINT S_C_Prim PRIMARY KEY (SNO,CNO) ) 1.外部键必须是主表中的一个主键值或唯一值,因此才有最后一行SQL命令 2.其次主键值不能为空,因此有NOT NULL 

外键约束作用:

2.5 CHECK约束

例子: 建立一个SC表,定义 Score的取值范围为0~100之间。 CREATE TABLE SC ( SNO VARCHAR(6) CNO VARCHAR(6) Score NUMERIC(4, 1) CHECK (Score>=0 AND Score<=100) ) 

建立CHECK约束,需要考虑以下几个因素

3.修改数据表

3.1 ADD方式

ADD方式用于增加新列和完整性约束

 语法格式: ALTER TABLE 表名 ADD 列名 数据类型 .... 

3.2 ALTER方式

ALTER方式用于修改某些列

ALTER TABLE 表名 ALTER COLUMN 列名 数据类型 .... 

使用此方式有如下一些限制

3.3 DROP方式

DROP方式只用于删除完整性约束定义

其语法格式为 ALTER TABLE<表名> DROP CONSTRAINT<约束名> 
【例】删除S表中的主键。 ALTER TABLE S DROP CONSTRAINT S Prim 

4.删除数据表

语法格式: DROP TABLE 表名 

四、关于数据表查询的SQL命令

1.单关系表的数据查询

1.1 无条件查询

语法格式: SELECT 列名 FROM 表名 //1. *表示表的全部列名 SELECT * FORM S //2. DISTINCT关键字用于消除重复行 SELECT DISTINCT SNO FROM SC //3. AS 表示别名,输出别名 SELECT SN AS Name,SNO,AGE FROM S 

1.2 条件查询

运算符 含义
=、>、<、>=、<= 、!=、<> 比较大小
AND、OR、NOT 多重条件
BETWEEN AND 确定范围
IN 确定集合
LIKE 字符匹配
IS NULL 空值
语法格式: SELECT 列名 FROM 表名 WHERE 条件 

1.比较大小

> SELECT SNO,SCORE > FROM SC WHERE CNO='C1' 

2.多重条件查询 优先级从高到低:NOT、AND、OR

:查询工资在1000~1500元之间的教师的教师号、姓名及职称。 SELECT TNO, TN, Prof FROM T WHERE Sal BETWEEN 1000 AND 1500 等价于 SELECT TNO, TN Prof FROM T WHERE Sal>=1000 AND Sal<=1500 
【例】查询选修C1或C2的学生的学号、课程号和成绩。 SELECT SNO, CNo, Score FROM SC WHERE CNO IN('C1,C2) 此语句也可以使用逻辑运算符“OR”实现。 SELECT SNO, CNo, Sco FROM SC WHERE CNO='Cl' OR 'CNo' = C2 利用“NOTN”可以查询指定集合外的元组。 【例3-30】查询没有选修C1,也没有选修C2的学生的学号、课程号和成绩。 SELECT SNO, CNo, Score FROM SC WHERE CNo NOT IN ('C1,'C2') 等价于 SELECT SNO, CNo, Score FROM-SC WHERE (CNO <>'C1)AND (CNo<>'C2') 

4.部分匹配查询

语法格式: <属性名> LIKE <字符串常量> 
通配符 实例
% ab%,’ab‘后可接任意字符串
_(下划线) ‘a_b’,’a’与’b’之间可有一个字符
[ ] [0-9],0~9之间的字符
[^ ] [^0-9],不在0~9之间的字符
 【例3-31】查询所有姓张的教师的教师号和姓名。 查询结果如下 SELECT TNO, TN FROM T WHERE TN LIKE'张%' 
【例3-32】查询姓名中第二个汉字是“力”的教师号和姓名。 SELECT TNO,TN FROM T WHERE TN LIKE’_力%' 
【例333】查询没有考试成绩的学生的学号和相应的课程号 SELECT SNO,CNO FROM SC WHERE SCORE IS NULL 

1.3常用库函数及统计查询

函数 功能
AVG 按列计算平均值
SUM 按列计算值的总和
MAX 求一列中的最大值
MIN 求一列中的最小值
COUNT 按列值统计个数
【例】求学号为S1的学生的总分和平均分。 SELECT SUM(Score) As TotalScore, AVG(Score) As AvgScore FROM SC WHERE (SNO =S1) 
【例3-35】求选修C1号课程的最高分、最低分及之间相差的分数。 SELECT MAX (Score) AS MaxScore,MIN (Score) AS MinScore, MAX(Score)- MIN(Score) AS Diff FROM SC WHERE (CNO ='C1') 【例3-36】求计算机系学生的总数。 SELECT COUNT( SNO) FROM S WHERE Dept='计算机' 【例3-37】求学校中共有多少个系 SELECT COUNT (DISTINCT Dept) As DeptNum FROM S //注加入关键字 DISTINCT后表示消去重复行, //可计算字段“Dept”不同值的数目。COUNT(*)来统计元组个数. 

1.4分组查询

1.4.1 GROUP BY子句

GROUP BY子句可以将查询结果按属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组合上具有相同的值。

【例3-40】查询每个教师的教师号及其任课的门数。 SELECT TNO, COUNT(*)AS C_Num FROM TC GROUP BY TNo GROUP BY子句按TNo的值分组, 所有具有相同TNo的元组为一组, 对每一组使用函数COUNT进行计算, 统计出各位教师任课的门数。 
1.4.2 HAVING子句
【例3-41】查询选修两门以上(含两门)课程的学生的学号和选课门数。 表的连接方法 SELECT SNO, COUNT(*) AS SC_Num FROM SC GROUP BY SNO HAVING ( COUNT(*)>=2 ) GROUP BY子句按SNo的值分组, 所有具有相同SNo的元组为一组, 对每一组使用函数 COUNT进行计算, 统计出每个学生选课的门数。 HAVING子句去掉不满足 COUNT(*)>=2的组。 

注意:

一、.当在一个SQL查询中同时使用 WHERE子句, GROUP BY子句和 HAVING子句时,其顺序是WHERE、 GROUP BY、HAVING。

二、WHERE与 HAVING子句的根本区别在于作用对象不同。

1.5查询结果的排序

1.5.1 结果排序 ORDER BY子句

当需要对查询结果排序时,应该使用 ORDER BY子句, ORDER BY Y子句必须出现在其他子句之后。

排序方式可以指定,DESC为降序,ASC为升序,缺省时为序案犬认人

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205677.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午5:27
下一篇 2026年3月19日 下午5:28


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号