先说为什么要自学数据库吧
计算机本科毕业论文设计类基本上都会用到数据库,从教师的身份出发,应该了解掌握数据库的设计和应用。
在日常学习设计中,无论用python还是c#储存数据,都是通过操作excel达到储存数据目的,这种方法缺陷非常大。最主要就是不安全,不科学,数据量大了非常不方便。
在现代的大型项目中,一定会有数据库的设计。现在的淘宝、QQ、微信这些应用,都用数据库来储存数据。
虽然sql-server应用范围不一定是最广的,但是目前应付小型项目问题不大。而且数据库都是相通的,学完一个,其他的上手也不是问题。
数据库学习的主线就是增、删、查、改,而且是利用sql语句实现。在语法上十分简单,掌握几个关键词就可以。
进入正题
数据库创建的方式有两种,一种通过可视化操作创建,一种通过代码创建。
1、通过可视化创建
鼠标右键数据库,选择新建数据库
数据名称:给数据库起个名字,一般都是英文
数据文件:分为数据和日志。数据可以有多个,储存具体的数据。日志是操作数据库的记录,类似于监控一样,如果发生意外,可以查看日志,分析错误原因,甚至能恢复数据。
初始大小和动态增长:初始大小是数据或者日志的初始大小,如果溢出,按照增长的设定增长,增长可以是百分比,也可以是具体大小。
路径:数据和日志存储的具体位置
新建成功后,再鼠标右击“表”,创建数据表。
这里涉及到数据类型,参考博客:https://www.cnblogs.com/mslong/p/13787026.html
表设计完成之后,点刷新,就会看到在“test”下,有刚才新建的表。删除数据库和表方法很简单,还是鼠标右键,有删除项。
到这里简单的可视化新建数据库、新建表就完成了。
如果想移动数据,换一台电脑,只需要把对应的文件,复制粘贴到另一台电脑,再右键“数据库”,找到“附件”,就可以添加完成了。
下面来说代码新建数据库:
--创建数据库 --database 是数据库的意思 Student是数据库名称 create database Student --创建数据文件 on ( name = 'Student', filename = 'E:sql-server-dataStudent.mdf', size = 5MB,--初始大小 filegrowth = 2MB ---增长大小 ) --创建日志文件 log on ( name = 'Student_log',--日志文件要用"_log" filename = 'E:sql-server-dataStudent.ldf',--日志文件后缀是".ldf" size = 5MB, filegrowth = 2MB )
SQL-Server语句执行,需要选中要执行的语句,然后点“执行”。和其他语言不太一样,注意需要选中要执行的部分。
下边再说创建表
--use 关键词表示下面的操作在哪一个库中进行 use Student --create 关键词是创建;table 是表;Student是表名 create table Student ( --表中列名 数据类型 限定条件,not null 不能为空;primary key 是主键;identity 是动态增长,(1,1)从1开始,每次增加1 --这些限制的关键词可以前后颠倒 Number int not null identity(1,1), StudentID int not null primary key, -- "Name"是系统中的关键词,所以用括号括起来,避免歧义 [Name] varchar(50) not null, Sex varchar(50) not null , Score float not null, )
其中的约束部分下部分再详细说。
执行这段代码,列就建好了,下一步是插入具体的数据。
--insert 是插入; --语法 insert into 表名(列名1,列名2,列名3……) --values(数据1,数据2,数据3……) --要求列和数据要对应 --这只是插入一行,如果插入多行,需要写很多次 insert into Student(StudentID,[Name],Sex,Score) values(2020,'张三','男',20) insert into Student(StudentID,[Name],Sex,Score) values(2021,'李四','男',40) insert into Student(StudentID,[Name],Sex,Score) values(2022,'王五','女',60) insert into Student(StudentID,[Name],Sex,Score) values(2023,'赵六','女',80)
如果要插入多行数据:
insert into Student(StudentID,[Name],Sex,Score) values(2020,'张三','男',20),(2021,'李四','男',40),(2022,'王五','女',60),(2023,'赵六','女',80)
这样,简单的建数据库、建表就完成了