如何用SQL语句创建数据库

如何用SQL语句创建数据库,第1张

在SQL语句中,CREATE DATABASE 语句用于创建数据库

具体用法如下:

示例:

下面的 SQL 语句创建一个名为 “my_db” 的数据库:

-from 树懒学堂

数据库表可以通过 CREATE TABLE 语句来添加。

CREATE DATABASE 为SQl语句,用于创建数据库。

语法

CREATE DATABASE database_name

[ ON

[ <filespec >[ ,...n ] ]

[ ,<filegroup >[ ,...n ] ]

]

[ LOG ON { <filespec >[ ,...n ] } ]

[ COLLATE collation_name ]

[ FOR LOAD | FOR ATTACH ]

<filespec >::=

[ PRIMARY ]

([ NAME =logical_file_name ,]

FILENAME ='os_file_name'

[ ,SIZE =size ]

[ ,MAXSIZE ={ max_size| UNLIMITED } ]

[ ,FILEGROWTH =growth_increment ] )[ ,...n]

<filegroup >::=

FILEGROUP filegroup_name<filespec >[ ,...n]

参数

database_name

新数据库的名称。数据库名称在服务器中必须唯一,并且符合标识符的规则。database_name最多可以包含 128 个字符,除非没有为日志指定逻辑名。如果没有指定日志文件的逻辑名,则 Microsoft&regSQL Server™ 会通过向 database_name追加后缀来生成逻辑名。该 *** 作要求 database_name在 123 个字符之内,以便生成的日志文件逻辑名少于 128 个字符。

ON

指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。该关键字后跟以逗号分隔的 <filespec>项列表,<filespec>项用以定义主文件组的数据文件。主文件组的文件列表后可跟以逗号分隔的 <filegroup>项列表(可选),<filegroup>项用以定义用户文件组及其文件。

n

占位符,表示可以为新数据库指定多个文件。

LOG ON

指定显式定义用来存储数据库日志的磁盘文件(日志文件)。该关键字后跟以逗号分隔的 <filespec>项列表,<filespec>项用以定义日志文件。如果没有指定 LOG ON,将自动创建一个日志文件,该文件使用系统生成的名称,大小为数据库中所有数据文件总大小的 25%。

FOR LOAD

支持该子句是为了与早期版本的 Microsoft SQL Server 兼容。数据库在打开 dbo use only数据库选项的情况下创建,并且将其状态设置为正在装载。SQL Server 7.0 版中不需要该子句,因为 RESTORE 语句可以作为还原 *** 作的一部分重新创建数据库。

FOR ATTACH

指定从现有的一组 *** 作系统文件中附加数据库。必须有指定第一个主文件的 <filespec>条目。至于其它 <filespec>条目,只需要与第一次创建数据库或上一次附加数据库时路径不同的文件的那些条目。必须为这些文件指定 <filespec>条目。

附加的数据库必须使用与 SQL Server 相同的代码页和排序次序创建。应使用 sp_attach_db系统存储过程,而不要直接使用 CREATE DATABASE FOR ATTACH。只有必须指定 16 个以上的 <filespec>项目时,才需要使用 CREATE DATABASE FOR ATTACH。

如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行 sp_removedbreplication从数据库删除复制。

collation_name

指定数据库的默认排序规则。排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。如果没有指定排序规则,则将 SQL Server 实例的默认排序规则指派为数据库的排序规则。

有关 Windows 和 SQL 排序规则名称的更多信息,请参见 COLLATE。

PRIMARY

指定关联的 <filespec>列表定义主文件。主文件组包含所有数据库系统表。还包含所有未指派给用户文件组的对象。主文件组的第一个 <filespec>条目成为主文件,该文件包含数据库的逻辑起点及其系统表。一个数据库只能有一个主文件。如果没有指定 PRIMARY,那么 CREATE DATABASE 语句中列出的第一个文件将成为主文件。

NAME

为由 <filespec>定义的文件指定逻辑名称。如果指定了 FOR ATTACH,则不需要指定 NAME 参数。

logical_file_name

用来在创建数据库后执行的 Transact-SQL 语句中引用文件的名称。logical_file_name在数据库中必须唯一,并且符合标识符的规则。该名称可以是字符或 Unicode 常量,也可以是常规标识符或定界标识符。

FILENAME

为 <filespec>定义的文件指定 *** 作系统文件名。

'os_file_name'

*** 作系统创建 <filespec>定义的物理文件时使用的路径名和文件名。os_file_name中的路径必须指定 SQL Server 实例上的目录。os_file_name不能指定压缩文件系统中的目录。

如果文件在原始分区上创建,则 os_file_name必须只指定现有原始分区的驱动器字母。每个原始分区上只能创建一个文件。原始分区上的文件不会自动增长;因此,os_file_name指定原始分区时,不需要指定 MAXSIZE 和 FILEGROWTH 参数。

SIZE

指定 <filespec>中定义的文件的大小。如果主文件的 <filespec>中没有提供 SIZE 参数,那么 SQL Server 将使用 model数据库中的主文件大小。如果次要文件或日志文件的 <filespec>中没有指定 SIZE 参数,则 SQL Server 将使文件大小为 1 MB。

size

<filespec>中定义的文件的初始大小。可以使用千字节 (KB)、兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。size的最小值为 512 KB。如果没有指定 size,则默认值为 1 MB。为主文件指定的大小至少应与 model数据库的主文件大小相同。

MAXSIZE

指定 <filespec>中定义的文件可以增长到的最大大小。

max_size

<filespec>中定义的文件可以增长到的最大大小。可以使用千字节 (KB)、兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。如果没有指定 max_size,那么文件将增长到磁盘变满为止

说明在磁盘即将变满时,Microsoft Windows NT&regS/B 系统日志会警告 SQL Server系统管理员。

UNLIMITED

指定 <filespec>中定义的文件将增长到磁盘变满为止。

FILEGROWTH

指定 <filespec>中定义的文件的增长增量。文件的 FILEGROWTH 设置不能超过 MAXSIZE 设置。

growth_increment

每次需要新的空间时为文件添加的空间大小。指定一个整数,不要包含小数位。0 值表示不增长。该值可以 MB、KB、GB、TB 或百分比 (%) 为单位指定。如果未在数量后面指定 MB、KB 或 %,则默认值为 MB。如果指定 %,则增量大小为发生增长时文件大小的指定百分比。

如果没有指定 FILEGROWTH,则默认值为 10%,最小值为 64 KB。指定的大小舍入为最接近的 64 KB 的倍数。

扩展资料

组成

在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:

1、一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。

2、一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。

3、一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。

4、一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。

5、用户可以用SQL语句对视图和基本表进行查询等 *** 作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。

6、SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。

参考资料来源:百度百科-SQL数据库

参考资料来源:百度百科-Create Database

1.使用sql语句创建

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

use master -- 设置当前数据库为master,以便访问sysdatabases表goif exists(select * from sysdatabases where name='stuDB')--检查是否存在drop database stuDB--存在就删除go

create database stuDB --创建数据库

on primary -- 默认就属于primary文件组,可省略

(

/*--数据文件的具体描述--*/

name='stuDB_data', -- 主数据文件的逻辑名称

filename='D:\stuDB_data.mdf', -- 主数据文件的物理名称

size=5mb, --主数据文件的初始大小

maxsize=100mb, -- 主数据文件增长的最大值

filegrowth=15%--主数据文件的增长率

)

log on

(

/*--日志文件的具体描述,各参数含义同上--*/

name='stuDB_log',

filename='D:\stuDB_log.ldf',

size=2mb,

filegrowth=1mb

)

go

2.使用SQL Server Management Studio新建数据库

2.1. 登录SQL Server Management Studio

2.2 右击左侧菜单栏中的数据库项

2.3 在出现的右键菜单上以鼠标左键点击新建数据库

2.4 在出现的窗口中输入数据库名称并选择文件位置

2.5 点击确定

建表相关

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

use StuDB

go

if exists(select * from sysobjects where name='stuMarks')

drop table stuMarks

create table stuMarks

(

ExamNo int identity(1,1) primary key,

stuNo char(6) not null,

writtenExam int not null,

LabExam int not null

)

go

-- 其中,列属性"identity(起始值,递增量)" 表示"ExamNo"列为自动编号, 也称为标识列

alter table 表名

add constraint 约束名 约束类型 具体的约束说明

alter table 表名

drop constraint 约束名

alter table stuMarks

add constraint UQ_stuNo Unique(stuNo)

alter table stuMarks

drop constraint UQ_stuNo

/*--添加SQL登录账户--*/

exec sp_addlogin 'xie', '123456' -- 账户名为xie,密码为123456

--删除xie账户名

exec sp_droplogin 'xie'

/*--在stuDB数据库中添加两个用户(必须存在)--*/

use stuDB

go

exec sp_grantdbaccess 'xie','123456'

go

-- 提示:SQL Server 中的dbo用户是具有在数据库中执行所有活动权限的用户,表示数据库的所有者(owner),一般来说,

-- 如果创建了某个数据库,就是该数据库的所有者,即dbo用户,dbo用户是一个比较特殊的数据库用户,无法删除,且此用

-- 户始终出现在每个数据库中

/* --给数据库用户授权-- */

-- 授权的语法如下

-- grant 权限 [on 表名] to 数据库用户

use stuDB

go

grant select,update,insert on stuMarks to xie

grant create table to xie

go


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9623593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存