您当前的位置:首页 > 互联网教程

通过SQL语句使用什么命令创建数据库

发布时间:2025-05-15 16:59:30    发布人:远客网络

通过SQL语句使用什么命令创建数据库

一、通过SQL语句使用什么命令创建数据库

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

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

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

FILENAME='os_file_name'

[,MAXSIZE={max_size| UNLIMITED} ]

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

FILEGROUPfilegroup_name< filespec> [,...n]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

每次需要新的空间时为文件添加的空间大小。指定一个整数,不要包含小数位。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

二、在MySQL中创建带有IN和OUT参数的存储过程的方法

中创建储存过程的语法很难记,除非你经常跟储存过程打交道,原因很简单,语法不是什么小笑话。如果你通过命令行控制

MySQL,你需要记住准确的语法。一个快速示例可以很好的帮助你做到这点。在MySQL

入门教程中,我们能够看到很多关于如何创建储存过程

参数调用存储过程的示例。这些示例都很简单,能够很好的帮助你理解

中创建带参数存储过程的语法。这些示例已在

中通过测试。我们将用下面的雇员表创建并测试这些储存过程:

+--------+----------+---------+--------+

+--------+----------+---------+--------+

+--------+----------+---------+--------+

创建和使用带In参数的MySQL存储过程

下面是一个命令行方式创建MySQL存过的例子,我们根据

department从employee表中获取一个总数,dept_id是department表的

usp_totalEmployeeByDeparment(IN

首先我们改变默认的分隔符为“//”来作为存储过程结束的标识,随后再恢复默认值。使用“usp”前缀是区分系统存过过程和用户自定义存储过程的最佳实践。现在你可以在MySQL命令行像这样来调用存过:

usp_totalEmployeeByDeparment(2);

创建和使用带IN和OUT参数的存储过程

在这个MySQL例子中,我们创建了一个IN和一个OUT参数的存储过程

usp_GetEmployeeName。当调用这个存储过程时,你需要传递2个参数:id和name,一个作为输入参数id,另外一个作为输出参数返回结果。

这就是怎样从命令行方式创建和调用存储过程的所有内容,在这个教程中,我们创建了带IN和OUT参数的存储过程多个例子。这是记住MySQL数据库存过语法的最好方式。

三、mysql存储过程怎么写

MySQL存储过程是一些 SQL语句的集合,比如有的时候我们可能需要一大串的 SQL语句,或者说在编写 SQL语句的过程中还需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程。下面我们来介绍一下如何创建一个存储过程。

可以使用 CREATE PROCEDURE语句创建存储过程。

CREATE PROCEDURE<过程名>( [过程参数[,?] ])<过程体>

[ IN| OUT| INOUT ]<参数名><类型>语法说明如下:

存储过程的名称,默认在当前数据库中创建。若需要在特定数据库中创建存储过程,则要在名称前面加上数据库的名称,即 db_name.sp_name。需要注意的是,名称应当尽量避免选取与 MySQL内置函数相同的名称,否则会发生错误。

存储过程的参数列表。其中,<参数名>为参数名,<类型>为参数的类型(可以是任何有效的 MySQL数据类型)。当有多个参数时,参数列表中彼此间用逗号分隔。存储过程可以没有参数(此时存储过程的名称后仍需加上一对括号),也可以有 1个或多个参数。

MySQL存储过程支持三种类型的参数,即输入参数、输出参数和输入/输出参数,分别用 IN、OUT和 INOUT三个关键字标识。其中,输入参数可以传递给一个存储过程,输出参数用于存储过程需要返回一个操作结果的情形,而输入/输出参数既可以充当输入参数也可以充当输出参数。需要注意的是,参数的取名不要与数据表的列名相同,否则尽管不会返回出错信息,但是存储过程的 SQL语句会将参数名看作列名,从而引发不可预知的结果。

存储过程的主体部分,也称为存储过程体,包含在过程调用的时候必须执行的 SQL语句。这个部分以关键字 BEGIN开始,以关键字 END结束。若存储过程体中只有一条 SQL语句,则可以省略 BEGIN-END标志。

在存储过程的创建中,经常会用到一个十分重要的 MySQL命令,即 DELIMITER命令,特别是对于通过命令行的方式来操作 MySQL数据库的使用者,更是要学会使用该命令。

在 MySQL中,服务器处理 SQL语句默认是以分号作为语句结束标志的。然而,在创建存储过程时,存储过程体可能包含有多条 SQL语句,这些 SQL语句如果仍以分号作为语句结束符,那么 MySQL服务器在处理时会以遇到的第一条 SQL语句结尾处的分号作为整个程序的结束符,而不再去处理存储过程体中后面的 SQL语句,这样显然不行。为解决这个问题,通常可使用 DELIMITER命令将结束命令修改为其他字符。

DELIMITER$$语法说明如下:$$是用户定义的结束符,通常这个符号可以是一些特殊的符号,如两个“?”或两个“¥”等。当使用 DELIMITER命令时,应该避免使用反斜杠“\”字符,因为它是 MySQL的转义字符。

在 MySQL命令行客户端输入如下SQL语句。

mysql> DELIMITER??成功执行这条 SQL语句后,任何命令、语句或程序的结束标志就换为两个问号“??”了。

若希望换回默认的分号“;”作为结束标志,则在 MySQL命令行客户端输入下列语句即可:

mysql> DELIMITER;注意:DELIMITER和分号“;”之间一定要有一个空格。在创建存储过程时,必须具有 CREATE ROUTINE权限。可以使用 SHOW PROCEDURE STATUS命令查看数据库中存在哪些存储过程,若要查看某个存储过程的具体信息,则可以使用 SHOW CREATE PROCEDURE<存储过程名>。

存储过程的作用是从学生成绩信息表中查询学生的成绩信息,输入的 SQL语句和执行过程如下所示。

mysql> CREATE PROCEDURE ShowStuScore()

-> SELECT* FROM tb_students_score;

Query OK, 0 rows affected(0.09 sec)