SQL語句 創建數據庫
在SQL幫助文檔里有詳細的解析:如下CREATE DATABASE創建一個新數據庫及存儲該數據庫的文件,或從先前創建的數據庫的文件中附加數據庫。
說明 有關與 DISK INIT 向后兼容性的更多信息,請參見"Microsoft? SQL Server? 向后兼容性詳細信息"中的設備(級別 3)。語法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? SQL Server? 會通過向 database_name 追加后綴來生成邏輯名。
該操作要求 database_name 在 123 個字符之內,以便生成的日志文件邏輯名少于 128 個字符。ON指定顯式定義用來存儲數據庫數據部分的磁盤文件(數據文件)。
該關鍵字后跟以逗號分隔的
n占位符,表示可以為新數據庫指定多個文件。LOG ON指定顯式定義用來存儲數據庫日志的磁盤文件(日志文件)。
該關鍵字后跟以逗號分隔的
FOR LOAD支持該子句是為了與早期版本的 Microsoft SQL Server 兼容。數據庫在打開 dbo use only 數據庫選項的情況下創建,并且將其狀態設置為正在裝載。
SQL Server 7.0 版中不需要該子句,因為 RESTORE 語句可以作為還原操作的一部分重新創建數據庫。FOR ATTACH指定從現有的一組操作系統文件中附加數據庫。
必須有指定第一個主文件的
必須為這些文件指定
應使用 sp_attach_db 系統存儲過程,而不要直接使用 CREATE DATABASE FOR ATTACH。只有必須指定 16 個以上的
如果將數據庫附加到的服務器不是該數據庫從中分離的服務器,并且啟用了分離的數據庫以進行復制,則應該運行 sp_removedbreplication 從數據庫刪除復制。collation_name指定數據庫的默認排序規則。
排序規則名稱既可以是 Windows 排序規則名稱,也可以是 SQL 排序規則名稱。如果沒有指定排序規則,則將 SQL Server 實例的默認排序規則指派為數據庫的排序規則。
有關 Windows 和 SQL 排序規則名稱的更多信息,請參見 COLLATE。PRIMARY指定關聯的
主文件組包含所有數據庫系統表。還包含所有未指派給用戶文件組的對象。
主文件組的第一個
如果沒有指定 PRIMARY,那么 CREATE DATABASE 語句中列出的第一個文件將成為主文件。NAME為由
如果指定了 FOR ATTACH,則不需要指定 NAME 參數。logical_file_name用來在創建數據庫后執行的 Transact-SQL 語句中引用文件的名稱。
logical_file_name 在數據庫中必須唯一,并且符合標識符的規則。該名稱可以是字符或 Unicode 常量,也可以是常規標識符或定界標識符。
FILENAME為
os_file_name 中的路徑必須指定 SQL Server 實例上的目錄。os_file_name 不能指定壓縮文件系統中的目錄。
如果文件在原始分區上創建,則 os_file_name 必須只指定現有原始分區的驅動器字母。每個原始分區上只能創建一個文件。
原始分區上的文件不會自動增長;因此,os_file_name 指定原始分區時,不需要指定 MAXSIZE 和 FILEGROWTH 參數。SIZE指定
如果主文件的
size
默認值為 MB。指定一個整數,不要包含小數位。
size 的最小值為 512 。
sql創建數據庫語句
創建數據庫的SQL語句:create database stuDB on primary -- 默認就屬于primary文件組,可省略(/*--數據文件的具體描述--*/ name='stuDB_data', -- 主數據文件的邏輯名稱 filename='D:\stuDB_*', -- 主數據文件的物理名稱 size=5mb, --主數據文件的初始大小 maxsize=100mb, -- 主數據文件增長的最大值 filegrowth=15%--主數據文件的增長率)log on(/*--日志文件的具體描述,各參數含義同上--*/ name='stuDB_log', filename='D:\stuDB_*', size=2mb, filegrowth=1mb)創建表和刪除表的SQL語句如下:use StuDBgo if exists(select * from sysobjects where name='stuMarks')drop table stuMarkscreate 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 stuMarksadd constraint UQ_stuNo Unique(stuNo)alter table stuMarksdrop constraint UQ_stuNo/*--添加SQL登錄賬戶--*/exec sp_addlogin 'xie', '123456' -- 賬戶名為xie,密碼為123456--刪除xie賬戶名exec sp_droplogin 'xie'/*--在stuDB數據庫中添加兩個用戶(必須存在)--*/use stuDBgo exec sp_grantdbaccess 'xie','123456'go-- 提示:SQL Server 中的dbo用戶是具有在數據庫中執行所有活動權限的用戶,表示數據庫的所有者(owner),一般來說,-- 如果創建了某個數據庫,就是該數據庫的所有者,即dbo用戶,dbo用戶是一個比較特殊的數據庫用戶,無法刪除,且此用-- 戶始終出現在每個數據庫中/* --給數據庫用戶授權-- */-- 授權的語法如下-- grant 權限 [on 表名] to 數據庫用戶use stuDBgo grant select,update,insert on stuMarks to xie grant create table to xiego。
數據庫查詢語句
select classtitle ,count(newsid) from newsclassinfo left outer join newsinfo on *d= *dgroup by classtitle這個是最準確的,樓上各為幾級大俠們都大意了!如果使用 inner join 內聯查詢的話, newsinfo表中如果沒有newsclassinfo表中的某些標題類型的數據,那最后查出的數據不可能統計出 count 為0的項。
所以這里應該使用左內聯查詢 left outer join !剛自己寫過并查詢成功~ 你可自己試下~。
二、SQL命令建庫建表(1)創建數據庫test,要求有兩個數據文 愛問
if exists(select * from sysdatabases where name='test')drop database testgocreate database teston primary( NAME = s1_data, FILENAME = 'c:s1。
mdf', SIZE = 50MB, MAXSIZE = 300MB, FILEGROWTH = 5MB),( NAME = s2_data, FILENAME = 'c:s2。 ndf', SIZE = 100MB, MAXSIZE = 300MB, FILEGROWTH = 5MB)ALTER DATABASE test ADD FILE ( NAME = s3_ndf, FILENAME = 'd:s3。
ndf', FILEGROWTH = 50%)ALTER DATABASE test MODIFY FILE( NAME = s2_data, SIZE = 500MB)。
sql語句創建數據庫
/*創建bbsDB數據庫*/use masterif exists(select * from sysdatabases where name='bbsDB')drop database bbsDBcreate database bbsDBon(name='bbsDB_data',filename='D:\project\bbsDB_*',size=10,filegrowth=20%)log on(name='bbsDB_log',filename='D:\project\bbsDB_*',size=3,maxsize=20,filegrowth=10%)/*創建bbsUsers表*/use bbsdbif exists(select * from sysobjects where name='bbsUsers')drop table bbsUserscreate table bbsUsers(UID int identity(1,1) not null,--學號,標識列Uname varchar(15) not null,--用戶昵稱Upassword varchar(10) not null,--用戶密碼Uemail varchar(20),--郵箱地址Usex bit not null,--用戶性別Uclass int,--等級Uremark varchar(20),--備注UregDate datetime not null,--注冊日期Ustate int null, --狀態Upoint int null--用戶積分 )/*創建bbsUsers表中的約束*/alter table bbsUsersadd constraint PK_uid primary key(uid),--主鍵constraint DF_Upassword default(888888) for Upassword,--初始密碼為888888constraint DF_Usex default (1) for Usex,--性別默認為男constraint DF_UregDate default (getdate()) for UregDate,--注冊日期默認為系統日期constraint DF_Ustate default(0) for Ustate,--狀態默認為離線constraint DF_Upoint default(20) for Upoint,--積分默認為20點constraint CK_Uemail check(Uemail like '%@%'),--電子郵件必須含有@符號constraint CK_Upassword check (len(Upassword)>=6)--密碼至少為六位/*創建bbsSection表*/use bbsdbif exists(select * from sysobjects where name='bbsSection')drop table bbsSectioncreate table bbsSection(SID int identity(1,1) not null,--板塊標號,自動增長Sname varchar(32) not null,--版塊名稱SmasterID int not null,--版主用戶IDSprofile varchar(20) null,--版面簡介SclickCount int null, --點擊率StopicCount int null--發帖數)/*創建bbsSection表中的約束*/alter table bbsSectionadd constraint PK_sid primary key(sid),--主鍵constraint DF_SclickCount default(0) for SclickCount,--點擊率默認為0constraint DF_StopicCount default(0) for StopicCount,--發帖數默認為0constraint DF_SmasterID foreign key(SmasterID)references bbsUsers (UID)--外鍵/*創建bbsTopic表*/use bbsdbif exists(select * from sysobjects where name='bbsTopic')drop table bbsTopiccreate table bbsTopic(TID int identity(1,1) not null,--帖子編號,自動增長TsID int not null,--發帖人IDTuID int not null,--版主用戶IDTreplyCount int null,--回復數量Tface int null, --發帖表情Ttopic varchar(20) not null,--標題Tcontents varchar(30) not null,--正文Ttime datetime null,--發帖時間TclickCount int null,--點擊數Tstate int not null,--狀態TlastReply datetime null--回復時間)/*創建bbsTopic表的約束*/alter table bbsTopicadd constraint DF_TreplyCount default(0) for TreplyCount,--回復數量默認為0constraint PK_tid primary key(tid),--主鍵constraint DF_TclickCount default (0) for TclickCount,--點擊數默認為0constraint DF_Tstate default (1) for Tstate,--狀態默認為1constraint DF_Ttime default (getdate()) for Ttime,--發帖時間默認為系統日期constraint CK_Tcontents check (len(Tcontents)>=6),--正文必須大于六個字符constraint CK_TlastReply check ((TlastReply)>(Ttime)),--最后回復時間必須晚于發帖時間constraint DF_TsID foreign key(TsID)references bbsSection (SID),--外鍵constraint DF_TuID foreign key(TuID)references bbsUsers (UID)--外鍵/*創建bbsReply表*/use bbsdbif exists(select * from sysobjects where name='bbsReply')drop table bbsReplycreate table bbsReply(RID int identity(1,1) not null,--自動編號,帖子編號RtID int not null,--主貼IDRsID int not null,--板塊IDRuID int not null,--回帖人IDRface int null, --回帖表情Rcontents varchar(30) not null,--正文Rtime datetime null,--回帖時間RclickCount int null--點擊數)/*創建bbsReply表的約束*/alter table bbsReplyadd constraint DF_Rtime default (getdate()) for Rtime,--回帖時間默認為系統日期constraint CK_Rcontents check (len(Rcontents)>=6),--正文必須大于六個字符constraint DF_RtID foreign key(RtID)references bbsTopic (TID),--外鍵constraint DF_RsID foreign key(RsID)references bbsSection (SID),--外鍵constraint DF_RuID foreign key(RuID)references bbsUsers (UID)--外鍵差不多,你改一下吧!。