SQL Server菜鸟入门

一、数据定义

  1. 模式的定义与删除

定义模式

模式定义语句:

CREATE SCHEMA<模式名>AUTHORIZATION<用户名>

如果没有指定<模式名>,那么<模式名>隐含为<用户名>,也就是默认创建在dbo模式下。总之,要创建模式,调用该命令的用户必须拥有数据库管理员权限,或者获得了数据库管理员授予的CREATE SCHEMA的权限。

定义模式实际上定义了一个命名空间,在这空间中可以进一步定义该模式包含的数据库对象,例如基本表、视图、索引等。事实上,在将来的应用中,我们经常会建立不同表,表内容不同,但表名大多相同,此时,在不同的模式中也就是不同的命名空间中可以存在相同的名字(同一个模式中表名不能相同)。

另:创建用户 指路>>>http://t.csdn.cn/SVWlH

目前,在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW 和GRANT子句。也就是说用户可以在创建模式的同时在这个模式定义中进一步创建基本表、视图,定义授权。即

CREATE SCHEMA<模式名>AUTHORIZATION<用户名>[<表定子句名>|<视图定义子句>|<授权定义子句>]

实例:

--为用户ZHANG创建一个模式TEST,并且在其中定义一个表TAB1.
CREATE SCHEMA TEST AUTHORIZATION ZHANG
--创建模式
CREATE TABLE TAB1(COL1 SMALLINT,
--创建表TAB1
                  COL2 INT,
                  COL3 NUMERIC(10,3)
                  COL4 NUMERIC(5,2)
--COL一共4个属性及其数据类型
                  );

删除模式

删除模式语句:

DROP SCHEMA <模式名><CASCADE|RESTRICT>

CASCADE 和 RESTRICT两者必选其一。选择了CASCADE(级联),表示在删除模式的同时把该模式中所有的数据库对象全部删除;选择了RESTRICT(限制),表示如果模式中已经定义了下属的数据库对象(如表,视图等),则拒绝删除该语句的执行。只有当该模式中没有任何下属的对象时才能执行DROP SCHEMA语句。

上面的不太理解可以先略过,暂时只在master(默认的系统数据库)里面进行下面的操作


  1. 基本表(表)的定义,删除与修改

定义基本表语句:

CREATE TABLE <表名>(<列名><数据类型>[列级完整性约束条件]
                    [,<列名><数据类型>[列级完整性约束条件]]
                    ...
                    [,<表级完整性约束条件>]
                   )

完整性约束:实体完整性,参照完整性,定义完整性

实体完整性:用实体完整性来保证”关系数据库中每个元组应该是可区分的,是唯一的“这样的约束条件。

实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。

参照完整性:设F是基本关系R的一个或一组属性,但不是关系R的码,K'是基本关系S的主码。如果F与K'相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系(关系R和S不一定是不同的关系)。

参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K'相对应(基本关系R和S不一定是不同 的关系),则对于R中每个元组再F上的值必须:

或者取空值(F的每个属性值均为空值);

或者等于S中某个元组的主码值。

用户定义的完整性:针对某一具体关系数据库的约束条件,反映某一具体应用涉及的数据必须满足的语义要求。

实例:

--建立一个“学生“表Student
CREATE TABLE Student
(Sno CHAR(9)PRIMARY KEY,
--列级完整性约束条件,Sno是主码
Sname CHAR(20) UNIQUE,
--Sname取唯一值
Ssex SMALLINT,
Sdept CHAR(20)
--注意逗号和空格的使用,SQL语句不分大小写,仅看个人习惯

候选码:若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码

主码:若一个关系有多个候选码,则选定其中一个为主码

--建立一个”课程“表Course
CREATE TABLE Course
    (Cno CHAR(4)PRIMARY KEY,
--列级完整性约束,Cno是主码
     Cname CHAR(40)NOT NULL,
--立即完整性约束,Cname不能取空值
     Cpon CHAR(4),
--Cpno的含义是先修课
     Ccredit SMALLINT,
     FOREIGN KEY (Cpon)REFERENCES Course(Cno)
--表级完整性约束,Cpno是外码,被参照表是Course,被参照列是Cno

--参照表和被参照表可以是同一个表
--建立学生选课表SC
CREATE TABLE SC
    (Sno CHAR(9),
     Cno CHAR(4),
     Grand SMALLINT,
     PRIMARY KEY(Sno,Cno),
--主码由两个属性构成,必须作为表级完整性定义
     FOREIGN KEY(Sno)REFERENCES Course(Sno)
--表级完整性,Sno是外码,被参照表是Student
     FOREIGN KEY(Cno)REFERENCES Course(Cno)
表级完整性,Cno是外码,被参照表是Course
    );

修改基本表

修改语句:

ALTER TABLE<表名>
[ADD [COLUMN]<新列名><数据类型>[完整性约束]]
[ADD<表级完整性约束>]
--增加列(属性
DROP [COLUMN<列名>[CASCADE|RESTRICT]
DROP CONSTRAINT<完整性约束名>[RESTRICT|CASCADE]]
--删除列(属性
[ALTER COLUMN<列名><数据类型>];
--修改列(属性
--增加
--向Student表增加“入学时间”列,其数据类型为日期型
ALTER TABLE Student ADD S_entrance DATE;(下划线是干嘛的可以去掉吗)
--修改
--将年龄的数据类型由原来的字符型改为整数
ALTER TABLE Studebt ALTER COLUMN Sage INT;
--增加课程名称为必须取唯一值的约束条件
ALTER TABLE Course ADD UNIQUE(Cname);

删除基本表

删除语句:

DROP TABLE <表名>[RESTRICT|CASCADE];
--与模式操作相同

若选择RESTRICT,则该表的删除是有限制条件。用法同上述删除模式。

  1. 索引的建立与删除

建立索引语句:

CREATE [UNIQUE][CLUSTER]INDEX<索引名>
--UNIQUE表明此索引的每一个索引值只对应唯一的数据记录
ON<表名>(<列名>[<次序>][,<列名>[<次序>]]...);
--可选ASC(升序)或DESC(降序),默认是ASC

实例:

--为学生-课程数据库中的Student,Course和SC三个表建立索引。
--其中Student表按学号升序建唯一索引,Course表按课程号升序
--建唯一索引,SC表按学号升序和课程号降序建唯一索引。
CREATE UNIQUE INDEX Student ON Student(Sno);
CREATE UNIQUE INDEX Student ON COURSE(Cno);
CREATE UNIQUE INDEX Student ON SC(Sno ASC,Cno DESC);

修改索引:

--修改索引命
ALTER INDEX <旧索引名>RENAME TO <新索引名>

删除索引

DROP INDEX<索引名>

数据类型

数据类型

含义

CHAR(n),CHARACTER(n)

长度为n的定长字符串

VARCHAR(n)

最大长度为n的变长字符串

CLOB

字符串大对象

BLOB

二进制大对象

INT,INTEGER

长整数(4字节)

SMALLINT

短整数(2字节)

BIGINT

大整数(8字节)

NUMERIC(p,d)

定点数,由p位数字(不包括符号、小数点)组成,小数点后面有d位数字

DECIMAL(p,d),DEC(p,d)

同NUMERIC

REAL

取决于机器精度的单精度浮点数

DOUBLE PRECISION

取决于机器精度的双精度浮点数

FLOAT(n)

可选精度的浮点数,精度至少为n位数字

BOOLEAN

逻辑布尔量

DATE

日期,包含年、月、日,格式为YYYY-MM-DD

TIME

时间,包含一日的时、分、秒,格式为HH:MM:SS

TIMESTAMP

时间戳类型

INTRVAL

时间间隔类型

SQL的动词

SQL功能

动词

数据查询

SELSECT

数据定义

CREATE,DROP,ALTER

数据操纵

INSERT,UPDATE,DELETE

数据控制

GRANT,REVOKE

SQL的数据定义语句

操作对象

操作方式

创建

删除

修改

模式

CREATE SCHEMA

DROP SCHEMA

CREATE TABLE

DROP TABLE

ALTER TABLE

视图

CREATE VIEW

DROP VIEW

索引

CREATE INDEX

DROP INDEX

ALTER INDEX

需要注意的是,CHAR一个数字/字母是一个字符,一个汉字是两个字符

每个表中都有一个主键

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQL Server是一种关系数据库管理系统,它被广泛应用于企业级数据库的开发和管理。SQL(Structured Query Language)是一种用于管理和操作数据库的标准查询语言,SQL Server是一种支持SQL数据库管理系统。 SQL Server入门教程可以帮助初学者了解SQL Server数据库的基本概念和操作。在学习SQL Server之前,需要了解数据库和表的概念,以及如何使用SQL语句进行查询、插入、更新和删除数据。 首先,了解数据库的概念。数据库是一个组织数据的容器,它由表组成。表是数据的集合,类似于Excel表格。每个表由多个列组成,每列存储某种类型的数据。使用SQL语句可以创建、修改和删除数据库和表。 其次,学习SQL语句的基本语法和功能。SQL语句由关键字、表名、列名和条件组成。常用的SQL语句包括SELECT、INSERT、UPDATE和DELETE,它们分别用于查询、插入、更新和删除数据。 从SELECT语句开始学习,它用于从表中查询数据。可以指定要查询的列、要查询的表和查询条件。使用WHERE子句可以过滤数据,使用ORDER BY可以按照指定列的顺序排序结果。 学习INSERT语句可以向表中插入数据,可以指定要插入的表名和要插入的值。使用UPDATE语句可以更新表中的数据,可以指定要更新的列和更新的值,并使用WHERE子句指定更新条件。使用DELETE语句可以删除表中的数据,可以指定要删除的表和删除条件。 此外,了解其他常用的SQL语句和功能也是学习SQL Server的重要部分。例如,可以使用JOIN语句将多个表连接在一起,使用GROUP BY和HAVING进行分组和聚合操作。 总结来说,SQL Server是一种常用的数据库管理系统,学习它的入门教程可以帮助初学者掌握基本的SQL语句和操作,进而能够进行数据库的开发和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫名其_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值