日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

创建数据库和表

發(fā)布時(shí)間:2025/5/22 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 创建数据库和表 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、創(chuàng)建數(shù)據(jù)庫

  我們知道表是屬于架構(gòu)的,而架構(gòu)又是屬于數(shù)據(jù)庫的。要在SQL Server環(huán)境中創(chuàng)建一個(gè)名為TestDB的數(shù)據(jù)庫,可以運(yùn)行以下代碼:

IF DB_ID('TestDB') IS NULLCREATE DATABASE TestDB;

  如果不存在名為TestDB的數(shù)據(jù)庫,這段代碼就會(huì)創(chuàng)建一個(gè)新的。DB_ID函數(shù)接受一個(gè)數(shù)據(jù)庫名稱作為輸入,返回它的內(nèi)部數(shù)據(jù)庫ID。如果輸入名稱指定的數(shù)據(jù)庫不存在,這個(gè)函數(shù)將返回NULL。這是一種檢查數(shù)據(jù)庫是否存在的簡單方法。注意:在這個(gè)簡單的CREATE DATABASE語句中,采用了默認(rèn)的文件設(shè)置(例如,區(qū)域和初始大小)。在產(chǎn)品環(huán)境中,通常應(yīng)該顯示指定所需要的數(shù)據(jù)庫和文件的設(shè)置。

  在例子中使用的架構(gòu)是dbo,在每個(gè)數(shù)據(jù)庫中都會(huì)自動(dòng)創(chuàng)建這個(gè)架構(gòu)。當(dāng)用戶沒有默認(rèn)架構(gòu)顯示關(guān)聯(lián)到其他架構(gòu)時(shí),就會(huì)將這個(gè)dbo作為默認(rèn)架構(gòu)。

二、創(chuàng)建表

  以下代碼在TestDB數(shù)據(jù)庫中創(chuàng)建一個(gè)名為Employees的表:

USE TestDBIF OBJECT_ID('dbo.Employees','U') IS NOT NULLDROP TABLE dbo.Employees;CREATE TABLE dbo.Employees(empid INT NOT NULL,firstname VARCHAR(30) NOT NULL,lastname VARCHAR(30) NOT NULL,hiredate DATETIME NOT NULL,mgrid INT NULL,ssn VARCHAR(20) NOT NULL,salary MONEY NOT NULL);

  USE語句將當(dāng)前的數(shù)據(jù)庫上下文切換為TestDB。在創(chuàng)建對象的腳本中加入U(xiǎn)SE語句,它的重要作用是確保要在正確的數(shù)據(jù)庫中創(chuàng)建對象。

  IF語句調(diào)用調(diào)用OBJECT_ID函數(shù)來檢查當(dāng)前數(shù)據(jù)庫中是否已經(jīng)存在Employees表。OBJECT_ID函數(shù)接受一個(gè)對象名稱和類型作為它的輸入。這里,類型'U'代表用戶表。如果匹配給定輸入名稱和類型的對象存在,這個(gè)函數(shù)就會(huì)返回內(nèi)部的對象ID,否則返回NULL。如果該函數(shù)返回NULL,就可以知道檢查的數(shù)據(jù)庫對象是不存在的。在這個(gè)例子中,如果Employees表已經(jīng)存在,代碼就先刪除(DROP)這個(gè)表,接著再創(chuàng)建一個(gè)新的。當(dāng)然,也能夠選擇不同的處理辦法,例如,當(dāng)Employees表已經(jīng)存在時(shí),可以簡單地不創(chuàng)建這個(gè)對象。

  CREATE TABLE語句負(fù)責(zé)定義前面提到的關(guān)系的主題。在這個(gè)語句中先指定表的名稱,接著在圓括號中定義它的各個(gè)屬性(列)。注意表名使用了兩部分組成的名稱dbo.Employees。如果省略了架構(gòu)名稱,SQL Server將使用與運(yùn)行這段代碼的數(shù)據(jù)庫用戶相關(guān)聯(lián)的默認(rèn)架構(gòu)。

  對于表的每個(gè)屬性,需要指定它的屬性名稱、數(shù)據(jù)類型和是否允許NULL數(shù)據(jù)值。在Employees表中,empid(雇員ID)和mgrid(經(jīng)理ID)定義為INT(4字節(jié)的整數(shù)類型);firstname、lastname和ssn(社會(huì)保險(xiǎn)號,social security number)定義為VARCHAR(可變長長度的字符串類型,指定最多支持的字符個(gè)數(shù));hiredate定義為DATETIME,在SQL Server 2008中可以定義為DATE,DATE數(shù)據(jù)類型是SQL Server 2008新增的,salary定義為MONEY。

  如果不顯示指定一個(gè)列是否允許NULL值,SQL Server則采用默認(rèn)值。ANSI規(guī)定:如果不指定一個(gè)列是否允許NULL值,則假設(shè)應(yīng)該是NULL(允許NULL值)。但SQL Server提供了一些設(shè)置可以改變這一默認(rèn)行為。我們強(qiáng)烈推薦在這種情況下要顯示指定設(shè)置,不要依賴其默認(rèn)值。而且,也強(qiáng)烈推薦將列定義為NOT NULL,除非有明顯的原因而需要支持NULL。即使認(rèn)為一個(gè)列不允許NULL值,但沒有用NOT NULL約束加以限制時(shí),NULL值仍然可以插入這個(gè)列中。在Employees表中,除了mgrid列,其他所有列都定義為NOT NULL。mgrid屬性為NULL值表示雇員沒有經(jīng)理,例如企業(yè)的CEO這種情況。

轉(zhuǎn)載于:https://www.cnblogs.com/ShaYeBlog/archive/2012/09/20/2695499.html

總結(jié)

以上是生活随笔為你收集整理的创建数据库和表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。