SQL SERVER上课笔记

SQL 数据库 笔记
##############


目录

SQL 数据库 笔记##############

一、初次使用数据库

.二、用SSMS工具工具采用图形化的方法创建数据库(第二种方法通过T-SQL语句创建数据库)

三、利用T-sql创建数据库

四、删除数据库

五、数据库的相关操作分离,附加,改变数据库

六、创建表


一、初次使用数据库

{
1. 连接
}
###############

.二、用SSMS工具工具采用图形化的方法创建数据库(第二种方法通过T-SQL语句创建数据库)

eg:
任务:

步骤1:

 步骤2:

ps: sqlsrver 排序规则:

步骤3:

步骤4:

 sql 恢复模式分类:

 

步骤5:

三、利用T-sql创建数据库

重点概念:

数据库分为:数据文件|||||||文件事务日志文件(至少一个)

                            |---------------------------

                    |                                        |

        主要数据文件(1个)       次要数据(0个多个)

现在我来开始用T-sql创建数据库:

先理解定义:

步骤1:

CREATE DATEBASE   shujukumingcheng//创建主要数据文件
ON PRIMARY(

name=shujumingcheng_data,

filename='D:\db\shujukumingcheng_data.mdf',

size=5MB,  //MB可以省略

maxsize=10,//文件最大容量

filegrowth=15%//增长量为文件量的%15

)

log on(      //创建日志文件

name=shujumingcheng_data,

filename='D:\db\shujukumingcheng_data.ldf',

size=5kb,//初始容量 ,这个kb不能省略,我的建议就是都写上就不用记住了

maxsize=unlimited,//日志最大容量不受限制

filegrowth=500kb//增长量kb不能省略

)

什么???只有一步好吧,完了!!!!

###############################################33

四、删除数据库

我们之前先用ssms创建数据库,使用我们还是先ssms再用t-sql语句

很简单!!完了

接下来

t-sql语句

也很简单

DROP DATABASE abc(数据库名称)

ps:t-sql语句可以删除多个数据库

###################################################

五、数据库的相关操作分离,附加,改变数据库

分离数据库的概念

 重点:数据文件和对应日志完好无损,相当于搬走东西吧

接下来是方法,放张图明明白白

 

累了这部分直接搬ppt

 

分离和附加应该是相辅相成吧,我理解是这样,没听,自学哈哈哈

 改变数据库状态

 

########################################################

六、创建表

创建了数据库该表了吗??

还是老样子两种工具

但是咱们先理解下表的概念

表分为三大要素

列名

数据类型

约束条件

 接下来,终于到用ssms工具创建表了

 

发个表的例题(数据库表的题)

T-sql创建表:

 

 

 

 

 

        我找找有没有详细的链接教程

:【Microsoft SQL Server 新建数据库|创建基本表|学生表|字符型数据|数值型数据|默认值】 https://www.bilibili.com/video/BV19Y4y1c7ED?share_source=copy_web&vd_source=860bbf14227ff86888ae920ee49ec4f3

ok就这个吧,不错,偷懒不用自己录了

表的三大完整性:

alter table

-add 定义字段 字段名 数据类型

-drop columnn 字段名

-alter column 字段名 数据类型

-add <constranit约束名>定义约束

-drop constraint 约束名

修改表名

exec sp_rename 旧表名,新表名

exec sp_rename 'course','cname','coursename'修改表中的表名字段

add constraint 添加表的主键

课上的复习内容

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

 

/**/

/*

1.回顾:

关系是什么的集合?

行的集合(记录、元组

创建表的命令?

create table 表名

(字段名称 数据类型 [列级约束])

常见数据类型有哪些?

int\char varchar\float

decimal numeric(6,3)\date\time\datetime\money

约束有哪些?

primary key 主码 唯一且非空

候选码:唯一性和最小性

unique 唯一约束

not null 非空约束

check 检查约束

default 默认约束

foreign key 外码约束

参照关系:

有外码的表是子表,参照了父表的主码

2.创建表的语法

1)练习

创建department表

字段名称 数据类型 约束 字段说明

DepartmentID char(8) 主键 系部编号

DepartmentName varchar(20) 非空 系部名称

DepartmentHeader char(8)   系部主任

TeacherNum int >0 教师人数

*/

use student --调用数据库 student库

drop table department

create table department(

departmentid char(8) primary key,

departmentname varchar(20) not null,

departmentheader char(8),

teachernum int check(teachernum>0)

)

/*创建class表

字段名称 数据类型 约束 字段说明

ClassID char(8) 主键 班级编号

ClassName varchar(20) 非空 班级名称

Monitor char(8)   班导师

StudentNum int >0 学生人数

DepartmentID char(4) 外键 所属系部

*/

create table class1

(classid char(8) primary key,

classname varchar(20) not null,

monitor char(8),

studentnum int check(studentnum>0),

departmentid char(8) references department(departmentid)

)

/*

2)三大完整性

实体完整性、参照完整性、用户自定义完整性

3)复合主键=>表级约束

创建选课表register

选课表的关系模式: register(sid,cid,score,rdate)

create table register

(sid char(8),

cid char(10),

score decimal(4,1),

rdate datetime default getdate(),

primary key(sid,cid),

check(score between 0 and 100),

foreign key (sid)references student(studentid),

constraint fk_rc_cid foreign key(cid) references course(courseid)

)

3.自增字段identity

identity(种子,递增量) identity(1001,1)

创建getorder表

字段名称 数据类型 约束 字段说明

orderID int 主键,自动编号 订单编号

ordertime datetime 非空,默认为当前时间 订单时间

ordermoney money >0 订单金额

*/

create table order1

(orderID int primary key identity,

ordertime datetime default getdate() not null,

ordermoney money check(ordermoney>0),

)

create table student

(studentid char(8) primary key,

studentname char(10) not null)

create table course

(courseid char(8) primary key,

coursename char(10) not null)

create table register

(sid char(8),

cid char(8),

score decimal(4,1),

rdate datetime default getdate(),

primary key(sid,cid),

check(score between 0 and 100),

foreign key (sid)references student(studentid),

constraint fk_rc_cid foreign key(cid) references course(courseid)

)

/*

4.删除表

Drop table 表名

!先删子表再删父表

5.修改表结构 : alter table 表名

1)增加字段和删除字段(add / drop)

2)修改字段的数据类型(alter column)

3)修改字段名称或者表名(exec sp_rename)

4)新增约束(add <constraint 约束名>)

5)删除约束(drop constraint 约束名)

*/

/*

创建department表

字段名称 数据类型 约束 字段说明

DepartmentID char(8) 主键 系部编号

DepartmentName varchar(20) 非空 系部名称

DepartmentHeader char(8)   系部主任

TeacherNum int >0 教师人数

创建class表

字段名称 数据类型 约束 字段说明

ClassID char(8) 主键 班级编号

ClassName varchar(20) 非空 班级名称

Monitor char(8)   班导师

StudentNum int >0 学生人数

DepartmentID char(4) 外键 所属系部

创建getorder表

字段名称 数据类型 约束 字段说明

orderID int 主键,自动编号 订单编号

ordertime datetime 非空,默认为当前时间 订单时间

ordermoney money >0 订单金额

*/

/*

create table department

(

departmentid char(8) primary key,

departmentname varchar(20) not null,

departmentheader char(8),

teachernum int check(teachernum>0)

)

create table Class(

ClassID char(8),

ClassName varchar(20) not null,

Monitor char(8),

StudentNum int check(StudentNum>0),

DepartmentID char(8) ,

primary key(ClassID),

foreign key(DepartmentID) references Department(departmentID)

)

*/

题目:

  • 1. 给course表增加新字段
    字段名称 数据类型 约束 字段说明
    bookname varchar(60) 非空 教材名称
    period int 非空 总学时
    credit int 非空 学分

  • 2. 修改grade表中 字段grade的数据类型为 保留一位小数的百分制数

    3. 给Teacher表增加新字段
    字段名称 数据类型 约束 字段说明
    sex char(2) 非空,男或女,默认女 教师性别
    profession char(8) 助教、讲师、副教授、教授 教师职称

    4. 给schedule表增加新字段
    字段名称 数据类型 约束 字段说明
    teacherid char(8) 联合主键 外键 教师编号

    5. 给schedule表设置courseid、classid、teacherid的联合主键

  • create table product( pro_name varchar(20), pro_type varchar(20), primary key (pro_name,pro_type) );

  • 第一种方法,新建表时增加联合

  • create table t_students(

  • id int not null,

  • name varchar(10) not null Primary Key (id, name),

  • age int,

  • dept_id int

  • )

  • 第二种方法,给已有表增加联合主键:

        create table t_dept(
        id int,
        name varchar(20),
        stamp varchar(100)
        )
        --先设置非空约束
        Alter table t_dept alter column dept_id int not null
        Alter table t_dept alter column dept_name varchar(20) not null
        --增加主键
        Alter table t_dept add constraint pk_t_dept primary key( id, name)

  • 再添加一个check 的用法

  • check (sgnder  in(‘男’,‘女’))检查约束

  • CONSTRAINT 外键名称 FOREIGN KEY (字段2) REFERENCES 外表表名(约束字段),

  • 联合主键

  • create table temp3(
        id int,
        name varchar(10),
        sex varchar(10),
        primary key (id,name)
    );
    
  • 前面关于一系列的表的代码实在有点混乱我得找时间整理一下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值