上次博客写到了数据库的创建与管理,但是创建的库里面什么东西都没有,现在我们需要在库里面添加数据表内容
在创建表之前,我们需要先知道表里面有哪些东西,知己知彼,才知道自己在干什么,怎么干!!
数据表和excel里面的表差别不大,是由列名、数据类型和约束组成。
常见的列名有学号、姓名、性别等等。数据类型和java,c语言的有的一样,有的不一样,有单独的一节专门讲类型,常见的有int、char等等。
约束是通过限制列的取值来强制实现域的完整性,例如年龄不能低于0岁,性别默认为男等等。
1、主键约束
2、外键约束
3、unique唯一约束
4、default默认约束
5、check范围约束
6、not null 不为空约束
关键字:primary key
作用:用来标识这个表中唯一的列,这一列里面的数必须都不相同,就像我们的身份证号。
在这个course表中,这个符号就代表主键 !!
关键字:foreigh key
作用:当两个表需要连接或者有关系时,我们就需要外键把它们联系在一起,组成一个整体表。
外键的颜色比主键淡一点,且方向相反!!
关键字:unique
作用:再去定义一列或多列唯一的值,每列的数也必须不一样!
与主键的区别:1、主键列只能有一列,唯一列可以有多列
2、主键列不能为空,而唯一列可以为空null
关键字:defalte
作用:用来默认一些内容,例如计算机专业男生多,就默认性别为男,当你不填写这行内容时,它会自动添加男这个性别。
(5)范围约束
关键字:check
作用:用来约束一些数据的取值范围,例如年龄在60岁以下,成绩在100分以内等等。
(6)不为空约束
关键字:not null
作用:当我们不写某行数据时,系统会默认写上null,如果你不想这列数据有空值就可以限制它。
构建:create --->table
学生信息表(student)
字段名称 | 字段类型及长度 | 说明 | 备注 |
sno | Char(20) | 学生学号 | 主关键字 |
sname | Char(6) | 学生姓名 | 非空 |
ssex | Char(2) | 学生性别 | 默认为男 |
sage | Int | 学生年龄 | 范围在0~30 |
创建一个student表,要求如上!
create table student( --创建名为student的表 sno char(20) primary key, --主键 sname char(6) not null, --不为空 ssex char(2) default '男', --默认为男 sage int check (sage between 0 and 30)--范围在0到30之间 )
我们怎样用肉眼观察到我们已经把表建好了呢?
(1)用鼠标点击软件看图形
在表student的列中,我们可以很清晰的看到我们所建的东西
(2)用查询语句
select * from student -- 查询表student
查询后我们能看见我们所创建的每一列的列名,但是我们只是建了一个空表,是没有内容的,接下来我们就开始进行内容的填写代码实现!!!
构建:insert into --> values
学生信息表(student)
sno | sname | ssex | sage |
202115001 | 赵菁菁 | 女 | 23 |
202115002 | 李勇 | 男 | 20 |
202115003 | 张力 | 男 | 19 |
202115004 | 张衡 | 男 | 18 |
202115005 | 张向东 | 男 | 20 |
202115006 | 张向丽 | 女 | 20 |
202115007 | 王芳 | 女 | 20 |
202115008 | 王民生 | 男 | 25 |
将表中内容添加到student学生表中,要求如上!
insert into student values(202115001,'赵菁菁','女',23), (202115002,'李勇','男',20), (202115003,'张力','男',19), (202115004,'张衡','男',18), (202115005,'张向东','男',20), (202115006,'张向丽','女',20), (202115007,'王芳','女',20), (202115008,'王民生','男',25)
添加完成后再次查看这个表
select *from student
构建 alter---> column,
(1)修改表的名字
修改表student新名称为student1
exec sp_rename 'student','student1'
刷新后可看见
(2)修改表字段名字
修改表 student1 中字段 “ssex” 名称为 “gender”
exec sp_rename 'student1.ssex','gender' --exec sp_rename '表名.列名','新列名'
(3)添加一个新的字段
为student1添加一个爱好字段 love char(10)
alter table student1 add love char(10)
(4)删除一个字段
为student1删除字段 love
alter table student1 drop column love
(5)修改表字段操作
修改表 student1 中字段名为 “sname” 的字段长度由原来的6改为8;
alter table student1 alter column sname char(8)
修改内容
修改表李勇的名字改为李华
update student1 set sname = '李华' where sname = '李勇'
修改李华的性别为女
update student1 set gender = '女' where sname = '李华'
将学号为“202115003”的学生信息重新设置为“王丹丹、女、20
update student1 set sname = '王丹丹',gender = '女',sage = 20 where sno = 202115003
删除内容
删除数据表student1年龄大于24的男同学的记录
delete student1 where gender = '男' and sage>24
删除表student1
drop table student1
在对架构进行一系列操作之前,我们首先得明白什么是架构,有什么用途
架构:简单来说就是一个数据库对象容器,相当于一个文件夹,这个文件夹下面可以放很多不同的表、视图的文件。
数据库是有一个默认的架构 --dbo,在每一个表的前面是可以看见的!!
现在我们要弄一个新的架构,然后放入这些表!!!
为用户dbo定义一个新的架构,架构名为myself
create schema myself authorization dbo
目前就有了一个新的myself架构
将默认架构dbo中的student1表传输到myself架构中。
alter schema myself transfer dbo.student1
将表移回来
将架构myself中的student1表传输到dbo架构中。
alter schema dbo transfer myself.student1
删除架构myself
drop schema myself
从大致上看,在数据库下面有不同的架构,这些架构下面放上表、视图等文件,我们可以对表进行一系列的增删查改操作
首先得创建表create、然后用图形或者查询语句进行查看,然后需要进行增加表里面的内容insert into 表明 values(...),做了这些之后表里面的内容是需要修改的,从大范围的修改alter 到小范围的修改update、delete等,最后可以删除这个表drop。
学习sql server数据库得先看森林再见树木、由于很多书本杂乱无章没有总结,因此自己想做这个系列,接下来还会继续做表的查询等相关内容,希望文章能够帮助到你!!!