- --选择库
- use HMI
- go
- --去重复
- if exists(select * from sysobjects where name='维修电工')
- drop table 维修电工
- go
- create table 维修电工
- (
- 编号 int identity(10000,2) primary key , --编号,主键
- 账号 varchar(25) not null, --账号
- 密码 varchar(18) check(len(密码)>=6 and len(密码)<=18) not null,
- 名字 varchar(20) not null,
- 手机号 char(11) not null, --电话
- 地址 nvarchar(100) default('地址不详') --住址
- )
- go
什么是表:表的作用和成绩单一样。是集合。它的每一行都是一个对象。这些对象都是相同类型。
表的列:就是对象的属性。有多少属性就能有多少列名。
重点在于对象的属性。一个对象由属性和方法等组成,表只能存属性,不能存方法。但可以用Dictionary < K , V > 字典 还原出“”对象“”。
C#经常new出对象,相同类型的每个对象方法是一样的,但属性值是不同的。比如幼儿园的小朋友,对于老师而言他们不都是一样的么,只是名字不一样。名字就是众多属性中的一个。List可以看做是一个数据表。
取出数据表的一个对象,就相当于克隆出一个对象。
表必须保存在库里(就像电影必须保存在U盘或硬盘里)
下面来新建个库
1先定位表, master是系统表,相当于总管(所有的库名,都由它统计)
- use master
- go
2 再判断有没有这个库,如果有,就删除(避免重复)
作用是:班里已经有小明了,你再插入小明,显然不合理。所以要删掉再重建
- if exists(select * from sysdatabases where name='维修电工')
- drop database 维修电工
- go
3 开始创建你需要的库名 维修电工 mdf, ndf, ldf
库名和文件名没有直接关系,不必设置成一致。文件是用来保存库名内生成的数据
- create database 维修电工
- on primary
- (
- --数据库的逻辑文件名(就是系统用的,必须唯一)
- name='维修电工_主data1',
- --数据库物理文件名(绝对路径)
- filename='D:\DB\维修电工_主data1.mdf',--主数据文件名
- --数据库初始文件大小(一定要根据你的实际生产需求来定)
- size=20MB,
- --数据文件增值量(也要参考文件本身大小)
- filegrowth=1MB
- )
- ,
- (
- name='维修电工_次data2',
- filename='D:\DB\维修电工_次data2.ndf',--次要数据文件名
- size=20MB,
- filegrowth=1MB
- )
-
- log on
- (
- name='维修电工_日志log',
- filename='D:\DB\维修电工_日志log.ldf',--日志文件名
- size=10MB,
- filegrowth=1MB
- )
- go
- use master
- go
- --执行
- if exists(select * from sysdatabases where name='HMI')
- drop database HMI
- go
- --重复的话,删除再重建
- create database HMI --新建 HMI
- on primary
- (
- --数据库的逻辑文件名(就是系统用的,必须唯一)
- name='HMI_主',
- --数据库物理文件名(绝对路径)
- filename='D:\DB\HMI_主件.mdf',--主数据文件名
- --数据库初始文件大小(一定要根据你的实际生产需求来定)
- size=20MB,
- --数据文件增值量(也要参考文件本身大小)
- filegrowth=1MB
- )
- ,
- (
- name='HMI_副',
- filename='D:\DB\HMI_副件.ndf',--次要数据文件名
- size=20MB,
- filegrowth=1MB
- )
-
- log on
- (
- name='HMI_日志',
- filename='D:\DB\HMI_日志log.ldf',--日志文件名
- size=10MB,
- filegrowth=1MB
- )
- go
-
-
-
现在就可以用了。 go相当于执行,库大于表。表相当于啤酒,库相当于啤酒的箱子。
有了库,就可以新建表了。在新建表之前,还是要判断一下,有没有重复。
- --指向要操作的数据库
- use 维修电工
- go
- --创建讲师表
- if exists(select * from sysobjects where name='成绩表')
- drop table 成绩表
- go
新建表后,就要添加对象的属性名(列名)
- create table Teacher
- (
- TeacherId int identity(1000,1) primary key , --讲师编号,主键
- LoginAccount varchar(50) not null, --登录账号
- LoginPwd varchar(18) check(len(LoginPwd)>=6 and len(LoginPwd)<=18) not null,
- TeacherName varchar(20) not null,
- Phonenumber char(11) not null, --电话
- NowAddress nvarchar(100) default('地址不详') --住址
- )
- go
Teacher是表名,里面的就是属性。
表可以很多个(对象类型可以很多个),同样的方法,再写个其他的
- if exists (select * from sysobjects where name='CourseCategory')
- drop table CourseCategory
- go
- create table CourseCategory
- (
- CategoryId int identity(10,1) primary key,
- CategoryName varchar(20) not null
- )
- go
可以看到只建了2个属性。 id 和名字
必须定位库后,才能操作库里面的所有表。
- use CourseManageDB
- go
- --添加测试数据(必须要学会自己写测试数据)
- --insert into Teacher(TeacherId,LoginAccount,LoginPwd,TeacherName,PhoneNumber)
- --values(10001,'xiketang01','12345678','常老师','13600000001'),
- --(10002,'xiketang02','123456','刘老师','13600000002'),
- --(10003,'xiketang03','123456','张老师','13600000003')
- insert into Teacher(LoginAccount,LoginPwd,TeacherName,PhoneNumber)
- values('xiketang01','12345678','常老师','13600000001'),
- ('xiketang02','123456','刘老师','13600000002'),
- ('xiketang03','123456','张老师','13600000003')
要注意的是 属性的名字不能写错,插入的数据和属性位置要对应。