学习数据库,理论上来说,应该先从学习理论开始,但我觉得这种实践性强的,直接从实践开始是学习速度和效率最好

一、新建一张学生表

新建一张表和写一篇文章是一样的,你需要构思和打草稿。基本大体需要考虑定下来,不能定下来的后续打补丁,但主体架构要越细越好

这里举例新建一张学生表,首先要收集学生基本信息,包括哪些信息呢?

学号、姓名、手机号码、年龄、性别、年纪等

其中正确的手机号码一定是11位数,这个要定死。其次学生年龄应该是一个正常人年龄,初步估计一个正常人年龄(0 < age < 150),当然学生年龄不会到100多岁,这里没有考虑更细致。

学生性别,这个没有好说的,不是男就是女,虽然其他国家可以有介于男女之间的,但再中国肯定只有男或女

同时为了后续查询方便,额外加一个入库日期/时间属性(date_time),以及增加对于一个学生的文字描述属性(stu_remark)

1-1 创建表

根据前期的准备,将文字转换成代码表现形式:

if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[student]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
  -- 创建表
  CREATE TABLE student
  (
  	stu_id        INTEGER       NOT NULL PRIMARY KEY,
  	stu_name      NCHAR(10)     NOT NULL,
  	stu_phone     CHAR(11)      NOT NULL CHECK(LEN(stu_phone)=11),
  	stu_age       INTEGER       NOT NULL CHECK(stu_age > 0 and stu_age < 150),
  	stu_sex       NCHAR(1)      NOT NULL CHECK(stu_sex='男' or stu_sex='女'),
  	stu_grade     NCHAR(10)     NOT NULL,
  	stu_remark    NVARCHAR(256) NULL,  
  	date_time     DATETIME2(3)  NOT NULL DEFAULT GETDATE()
  );
else
  print('表student已经存在!')

sql server创建学生资料表 sql server怎么创建学生表_数据

1-2 添加学生信息

学生表创建好了,就可以添加学生信息了,工作人员根据表的属性收集学生信息,然后再通过sql语句插入到表中

-- 插入一条记录
INSERT INTO student(stu_id, 
		stu_name, 
		stu_phone, 
		stu_age,
		stu_sex,
		stu_grade) 
	VALUES(1001,
		'张三',
		'13566668888',
		15,
		'男',
		'高中一年级');

1-3 查询学生信息

当学生数据添加完毕后,即可查询学生表中的数据

-- 查询表中所有字段的所有记录
SELECT * FROM student

sql server创建学生资料表 sql server怎么创建学生表_SQL Server 2019_02

二、表的基础和特性

2-1 主键(PRIMARY KEY)

往学生表中再次插入一条记录

-- 插入一条记录
INSERT INTO student(stu_id, 
		stu_name, 
		stu_phone, 
		stu_age,
		stu_sex,
		stu_grade) 
	VALUES(1001,
		'李四',
		'13568688080',
		15,
		'男',
		'高中一年级');

sql server创建学生资料表 sql server怎么创建学生表_sql server创建学生资料表_03


插入记录失败

在定义学生表的时候,定义了stu_id属性为主键,之前插入过stu_id=1001的记录,这次再次插入stu_id=1001的记录,表会跟据主键检查新插入stu_id是否冲突

2-2 约束

往学生表中再次插入一条记录

-- 插入一条记录
INSERT INTO student(stu_id, 
		stu_name, 
		stu_phone, 
		stu_age,
		stu_sex,
		stu_grade) 
	VALUES(1002,
		'王五',
		'1356767818',
		15,
		'男',
		'高中一年级');

sql server创建学生资料表 sql server怎么创建学生表_sql server创建学生资料表_04


插入记录失败

在定义学生表的时候,定义了stu_phone属性添加约束,字符长度必须满足11位