目录
前言
创建sql数据库需要设置字符集和日志文件大小,而指定字符集的目的避免在数据库中存储的数据出现乱码的情况,日志文件的话就涉及很大的学问咯不过刚开始我们只需要知道日志也是一个保护数据库的手段就比如通过二进制日志文件来修复数据库文件,查看数据库中出现的错误。
语法
CREATE DATABASE database_name --database_name 数据库名称
ON PRIMARY
(
NAME='database_name.MDF', --主数据文件的逻辑名注意后缀名是MDF
FILENAME='E:\sql\database_name.MDF', --主数据文件存储位置(唯一需要注意的是如果无法指定处sql server文件以外目录文件有可能是你的权限不够
SIZE=16MB, --主数据文件的初始大小
FILEGROWTH=8MB, --每次增容时增加的容量大小
MAXSIZE=UNLIMITED --增量速度 unlimited无限制
)
LOG ON(
NAME='database_name.LDF', --日志文件
FILENAME='E:\sql\log\database_name.LDF', --日志文件存储位置
SIZE=16MB, --日志文件初始大小
FILEGROWTH=8MB, --日志文件每次增加的容量大小
MAXSIZE=UNLIMITED
)
--创建数据库最简单列示
--当然这种方法简单并不可取
create database demo_data --demo_data是你创建的数据库名称
--官方解释
database_name
这是新数据库的名称。 数据库名称在 SQL Server 的实例中必须是唯一的,并且必须符合标识符规则。
除非没有为日志文件指定逻辑名称,否则 database_name 最多可以包含 128 个字符。 如果未指定逻辑日志文件名称,SQL Server 会通过向 database_name 追加后缀来为日志生成 logical_file_name 和 os_file_name。 这会将 database_name 限制为 123 个字符,从而使生成的逻辑文件名称不超过 128 个字符。
如果未指定数据文件名称,SQL Server 会使用 database_name 同时作为 logical_file_name 和 os_file_name。 默认路径从注册表中获得。 可使用 Management Studio 中的“服务器属性”(“数据库设置”页)更改默认路径。 更改默认路径要求重新启动 SQL Server。
ON
指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。 当后面是以逗号分隔的、用以定义主文件组的数据文件的 <filespec> 项列表时,需要使用 ON。 主文件组的文件列表可后跟以逗号分隔的、用以定义用户文件组及其文件的 <filegroup> 项列表(可选)。
PRIMARY
指定关联的 <filespec> 列表定义主文件。 在主文件组的 <filespec> 项中指定的第一个文件将成为主文件。 一个数据库只能有一个主文件。 有关详细信息,请参阅 数据库文件和文件组。
如果没有指定 PRIMARY,那么 CREATE DATABASE 语句中列出的第一个文件将成为主文件。
LOG ON
指定显式定义用来存储数据库日志的磁盘文件(日志文件)。 LOG ON 后跟以逗号分隔的用以定义日志文件的 <filespec> 项列表。 如果没有指定 LOG ON,将自动创建一个日志文件,其大小为该数据库的所有数据文件大小总和的 25% 或 512 KB,取两者之中的较大者。 此文件放置于默认的日志文件位置。 有关此位置的信息,请参阅在 SSMS 中查看或更改数据文件和日志文件的默认位置。
不能对数据库快照指定 LOG ON。
NAME
指定文件在SQL Server中的逻辑名称。当使用FOR ATTACH选项时,就不需要使用NAME选项了。
FILENAME
指定文件在操作系统中存储的路径和文件名称。
SIZE
指定数据库的初始容量大小。如果没有指定主文件的大小,则SQL Server默认其与模板数据库中的主文件大小一致,其他数据库文件和事务日志文件则默认为1MB。指定大小的数字SIZE可以使用KB、MB、GB和TB作为后缀,默认 的后缀是MB。SIZE中不能使用小数,其最小值为512KB,默认值是1MB。主文件的SIZE不能小于模板数据库中的主文件。
MAXSIZE
指定文件的最大容量。如果没有指定MAXSIZE,则文件可以不断增长直到充满磁盘。
UNLIMITED
指明文件无容量限制。
FILEGROWTH
指定文件每次增容时增加的容量大小。增加量可以用以KB、MB作后缀的字节数或以%作后缀的被增容文件的百分比来表示。默认后缀为MB。如果没有指FILEGROWTH,则默认值为10%,每次扩容的最小值64KB在创建数据库时,所要创建的数据库名称必须是系统中不存在的,如果存在相同名称的数据库,在创建数据库时系统将 会报错。另外,数据库的名称也可以是中文名称。
sql表的创建
CREATE TABLE students(
StudenID INT PRIMARY KEY IDENTITY(1,1), --主键,自增从1开始,每次增加1
FirstName NVARCHAR(50) NOT NULL, --学生名字,不允许为空
LastName NVARCHAR(50) NOT NULL, --学生姓氏,不允许为空
BirthDate DATE, --出生日期,可以为空
Sex NCHAR(1) CHECK (Sex IN ('M', 'F')), --性别,只允许 'M' 或 'F'
StudenDate DATE NOT NULL DEFAULT GETDATE(), -- 入学日期,不允许为空
classID INT NOT NULL -- 班级ID,可以为空
);
StudenID
是一个整数类型的主键字段,自增,比如每当插入一个新的学生记录时,StudenID
的值会自动增加(如1到999)。FirstName
和LastName
是学生的名字和姓氏,它们都是NVARCHAR
类型,最大长度为 50,NOT NULL
表示两个字段在插入记录时不能为空。BirthDate
和 StudenDate 是日期类型的字段。- Sex是一个字符类型的字段,只允许 'M' 或 'F' 作为值,通过
CHECK
约束来实现。ClassID
是一个整数类型的字段,不能为空。
由于没有演示环境这里就不在出演示图片了,不过小编发现一个在线sql学习网站如图1。
SQL OnLine IDE (sqliteonline.com)
好啦就这样,上手练是最快的学习方法。