温馨提示:各位同窗朋友在学习常用的SQL命令"增删改查"可直接从 ”2.数据表” 开始
1.数据库
1.1创建数据库
CREATE DATABASE 数据库名称
[ON
[FILEGROUP 文件组名称]
(
NAME=数据库文件逻辑名称,
FILENAME='路径+数据文件名',
SIZE=数据文件初始大小,
MAXSIZE=数据文件最大容量,
FILEGROWTH=数据文件自动增长容量,
)]
[LOG ON
(
NAME=日志文件逻辑名,
FILENAME='路径+日志文件名',
SIZE=日志文件初始大小,
MAXSIZE=日志文件最大容量,
FILEGROWTH=日志文件自动增长容量,
)]
[COLLATE 数据库校验方式名称]
[FOR ATTACH]
- 用 [ ] 括起来的语句,表示在创建数据库时可以自己选择要或者不要,不写的情况下系统也会按照默认的属性参数创建数据库
- "FILEGROWTH"可以是具体的容量,也可以是UNLIMITED,表示文件无增长容量限制
- "数据库校验方法名称"可以是WIndows校验方式名称,也可以是SQL校验方式名称
- "FOR ATTACH"表示将已经存在的数据库文件附加到新的数据库中
1.2修改数据库
ALTER DATABASE 数据库名称
ADD FILE(
具体文件格式)
[,...n]
[TO FILEGROUP 文件组名]
|ADD LOG FILE(
具体文件格式)
[,...n]
|REMOVE FILE 文件逻辑名称
|MODIFY FILE(
具体文件格式)
|ADD FILEGROUP 文件组名
|REMOVE FILEGROUP 文件组名
|MODIFY FILEGROUP 文件组名
{
READ_ONLY|READ_WRITE,
| DEFAULT,
| NAME = 新文件组名
}
1.具体文件格式为
(
NAME = 文件逻辑名称
[ , NEWNAME = 新文件逻辑名称]
[ , SIZE = 初始文件大小]
[ , MAXSIZE = 文件最大容量]
[ , FILEGROWTH = 文件自动增长容量]
)
2.各修改指令说明:
ADD FILE 向数据库中添加数据文件
ADD LOG FILE 向数据库中添加日志文件
REMOVE FILE 从数据库文件中删除逻辑文件,并删除物理文件。如果文件不为空,则无法删除
MODIFY FILE 指定要修改的的文件
ADD FILEGROUP 数据库中增加文件组
REMOVE FILEGROUP 从数据库中删除文件组。若文件组非空,无法将其删除,需要从文件组中删除所有文件
MODIFY FILEGROUP 修改文件组名称、设置文件组的只读或读写属性,指定文件组为默认文件组
1.3删除数据库
DROP DATABASE 数据库名称
1.4查看数据库信息
Sp_helpdb [[@dbname =] 'name'] # 查看数据库结构
Sp_helpfile [[@filename =] 'name'] # 查看数据库信息
Sp_helfilegroup [[@filegroup =] 'name'] # 查看文件组信息
2.数据表
2.1创建数据表
CREATE TABLE <表名> (<列定义>[{,<列定义>|<表约束>}])
例如 创建一个S表:
CREATE TABLE S
(
SNo VARCHAR(6) CONSTANT S_CONS NOT NULL,
SN NVARCHAR(10),
Sex NCHAR(1),
Age INT,
Dept NVARCHAR(20))
2.2修改数据表
2.2.1删除表的字段
#注:为了命令演示的连续性,暂把删除表的字段放在此处
ALTER TABLE S DROP Age;
2.2.2增加表的字段
ALTER TABLE S ADD Age1 INT;
2.2.3修改表的字段
ALTER TABLE S CHANGE Age1 Age type;
2.2.4增加表内记录
insert INTO S (SNo,SN,Sex,Age,Dept)VALUES('001','Tom','1',20,'计算机');
2.2.5更新表内记录
UPDATE S SET SN='Jack' WHERE SNo='001';
2.3删除表或表的记录
2.3.1删除表的字段(与2.2.1重复)
ALTER TABLE S DROP Age;
2.3.2删除表内的记录
DELETE FROM S WHERE SN = 'Tom'; # 删除满足条件的记录
DELECT FROM S; # 删除 整张表的数据
2.3.3删除表
DROP TABLE S;
2.4查看数据表
在此处笔者想分为两部分来归纳SQL的命令,一个是简单的SELECT语句,另外一个是连接查询
2.4.1简单的SELECT语句
一般格式
SELECT [ALL|DISTINCT][TOP N [PERCENT][WITH TIES]]
<列名>[AS 别名1] [{,<列名>[ AS 别名2]}]
FROM <表名> [[AS] 表别名]
[WHERE <检索条件>]
[GROUP BY <列名1>[HAVING <条件表达式>]]
[ORDER BY <列名2>[ASC|DESC]]
例子:
#最简单的
SELECT * FROM S;
#加大一点点难度
SELECT SNo FROM S;
#再加大一点点难度
SELECT SNo FROM S WHERE SN='Tom';
大家可以线下随心练习一下各种查找语句,笔者在此就列出几条超级简单的语句,勿怪
2.4.2多张表的连接查询语句
2.4.2.1 内连接 INNER JOIN
显示符合条件的记录,此为默认值
2.4.2.2 左(外)连接 LEFT JOIN
用于显示符合条件的数据行以及左边表中不符合条件的数据行。此时右边数据行会以NULL来显示
2.4.2.3 右(外)连接 RIFHT JOIN
用于显示符合条件的数据行以及右边表中不符合条件的数据行。此时左边数据行会以NULL来显示
2.4.2.4 FULL JOIN
用于显示符合条件的数据行以及左边表和右边表中不符合条件的数据行。此时缺乏数据的数据行会以NULL来显示
2.4.2.5 CROSS JOIN
将一个表的每一个记录和另一个表的每个记录匹配成新的数据行
对以上集中连接方法,笔者就不一一举例说明了,举一个例子以供参考
SELECT X.TN,X.Sal,Y.Sal
FROM T AS X INNER JOIN T AS Y
ON X.Sal > Y.Sal AND Y.TN='刘伟'
附表(一些常用的运算符及函数)
码字不易,好好学习,有误的地方望多多指出