SQL語句(建庫、建表、修改語句)

来源:http://www.cnblogs.com/yangliping/archive/2016/09/19/5884162.html
-Advertisement-
Play Games

這是如何使用SQL server來 編寫 資料庫 表的 操作方式 學習要點: SQL之-建庫、建表、建約束、關係SQL基本語句大全.txt舉得起放得下叫舉重,舉得起放不下叫負重。頭要有勇氣,抬頭要有底氣。學習要加,驕傲要減,機會要乘,懶惰要除。人生三難題:思,相思,單相思。SQL之-建庫、建表、建約 ...


 這是如何使用SQL server來  編寫 資料庫  表的 操作方式 

 

學習要點:

  SQL之-建庫、建表、建約束、關係SQL基本語句大全.txt舉得起放得下叫舉重,舉得起放不下叫負重。頭要有勇氣,抬頭要有底氣。學習要加,驕傲要減,機會要乘,懶惰要除。人生三難題:思,相思,單相思。
SQL之-建庫、建表、建約束、關係、部分T-sql語句


---創建庫 創建庫之前 先進行 查看資料庫中是否 已存在 次資料庫 有便刪除 

--- if exists(select * from sys.sysdatabases where name='ConstructionDB')begin use master drop database ConstructionDB end go create database ConstructionDB on()

if exists(select * from sysobjects where name ='ConstructionDB') --查找命令
drop DATABASE ConstructionDB --刪除 命令

Create database ConstructionDB
on(
name='ConstructionDB_date',
filename='E:\技能抽查試題第二模塊(資料庫)\試題——1\任務一\ConstructionDB_date.mdf',
size=3mb,
maxsize=10mb,
filegrowth=5% --增長速度為
)
log on(
name='ConstructionDB_log',
filename='E:\技能抽查試題第二模塊(資料庫)\試題——1\任務一\ConstructionDB_date.ldf',
size=2mb,
maxsize=5mb,
filegrowth=1mb
)
--使用T-SQL語句創建表
use ConstructionDB
go
---查詢 庫中是否存在 此表 存在則刪除
if exists(select * from sysobjects where name = 'T_flow_step_def') 
drop table T_flow_step_def
--- 方法二
IF OBJECT_ID (N'bas_CardType') IS NULL
BEGIN --如果不存在該表,則進行創建
--drop table com_CodeRecord

--流程步驟定義表 
create table T_flow_step_def(
Step_no    int not null,     --流程步驟ID 
Step_name    varchar(30)    not null, --流程步驟名稱 
Step_des    varchar(64)    not null,    --流程步驟描述
Limit_time    int not null,     --時限
URL     varchar(64)    not null,     --二級菜單鏈接 
備註    varchar(256)    not null, 
)

---流程類別表
create table T_flow_type(
Flow_type_id char(3) not null, --流程類別號 
Flow_type_name    varchar(64)    not null, --流程類別名稱 
In_method_id    char(3) not null, --招標方式代號 
In_choice_id    char(3) not null, --項目選項代號 
備註    varchar(256)    not null, 
)
---標段情況表
create table T_sub_project(
Project_id varchar(32)    not null, ---工程編號 
Sub_pro_id char(2) not null, -- 標段編號 
Flow_type_id char(3) not null, --流程類別號 
Sub_pro_name varchar(64)    not null,--標段名稱(招標項目名稱) 
Usb_no varchar(64)    not null, --密碼鎖號
In_method_id char(3) not null, --招標方式代號 
In_scope_id char(3) not null, --招標範圍代號 
In_choice_id char(3) not null, --項目選項代號 
Proj_type_id char(3) not null, --項目性質代號 
Engi_type_id char(1) not null, --工程性質代號
Pack_type char(1) not null, ---發包方式 
Grade_type_idv char(1) not null,--評分類別號
Flag_done char(1) not null,--完成標誌 
Flag_forcebreak char(1) not null,--強制中斷標誌 
備註    varchar(256)    not null,
)

 

 

--創建一個資料庫名為‘sql_test’

  1 create database sql_test
  2 go 
  3 --打開資料庫 sql_test
  4 use sql_test
  5 go
  6 
  7 --建立學生表
  8 create table 學生
  9 (學生編號 char(4) primary key, 學生名字 varchar(50)not null)
 10 go
 11 
 12 --修改學生表
 13 alter table 學生 
 14 add 班級編號 char(4) null --添加班級編號欄位
 15 -- (註意如果添加的欄位不為空的話,是不能被添加的)
 16 go
 17 
 18 --建立班級表
 19 create table 班級
 20 (班級編號 char(4) primary key ,班級名稱 varchar(50)not null)
 21 go
 22 
 23 --建立課程表
 24 create table 課程
 25 (課程編號 char(4) primary key ,課程名稱 varchar(50) not null,開課日期 datetime )
 26 go
 27 
 28 --修改課程表
 29 alter table 課程
 30 add 課程代號 varchar(10) null --添加課程代號欄位
 31 go
 32 
 33 alter table 課程
 34 drop column 開課日期  --刪除開課日期欄位
 35 go
 36 
 37 alter table 課程
 38 alter column  課程名稱 varchar(20) not null   --修改課程名稱欄位
 39 go
 40 
 41 --建立一個product_test_one 表,與下個表類似,只不過在constraint前面有個‘逗號’不影響執行
 42 create table product_test_one
 43 (
 44 id char(10) not null, name varchar(20) null, price money default 20.5,quantity smallint null, constraint pk_id primary key clustered (id)
 45  )
 46 go
 47 
 48 
 49 --建立一個product_test_two 表
 50 
 51 create table product_test_two
 52 (
 53 id char(10) not null, name varchar(20) null, price money default 20.5,quantity smallint null constraint pk_id2 primary key clustered (id)
 54  )
 55 go
 56 
 57 --刪除表 pruduct_test_one表
 58 drop table product_test_one
 59 go
 60 
 61 --建立一個student表,使其中的 name 欄位具有唯一性
 62 create table student 
 63 (
 64 id char(8), name char(10) --表欄位
 65 constraint pk_id primary key (id), --添加一個主鍵約束 
 66 constraint uk_name unique (name) --添加一個唯一性約束
 67 )
 68 go
 69 
 70 --建立一個student4表,同上 (註意:constraint 與constraint 之間一定要有逗號,否則出錯!)
 71 create table student4 
 72 (
 73 id char(8), name char(10) --表欄位
 74 constraint pk_id4 primary key (id), constraint uk_name4 unique (name)
 75 )
 76 go
 77 -- 刪除表student4
 78 drop table student4
 79 go
 80 
 81 --建立一個student3表,同上
 82 create table student3
 83 (
 84 id char(8), name char(10), --表欄位
 85 constraint pk_id3 primary key (id) ,constraint uk_name3 unique (name)
 86 )
 87 go
 88 
 89 --刪除表student3
 90 drop table student3
 91 go
 92 
 93 
 94 --constraint 約束名 check(邏輯條件表達式)
 95 
 96 --創建一個‘員工‘表,使其輸入的性別欄位(sex)只能接受‘m’或則‘f’,而不能接受其他數據
 97 --並且為phone欄位創建檢查約束,限制只能輸入類似0108564712之類的數據,而不能隨意輸入其他數據
 98 create table 員工
 99 (
100 id char(5),name char(20),sex char(2),phone int
101 constraint pk_zid primary key (id),      --此間一定要有‘逗號’分隔 ,定義主鍵約束
102 constraint chk_sex check (sex in (‘f‘,‘m‘) ),
103 constraint chk_phone check (phone like ‘(010) [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]‘)
104 )
105 go
106 
107 
108 --constraint 約束名 default 約束表達式 [for 欄位名]
109 
110 -- 創建一個表‘預設約束’,為欄位sex創建預設約束
111 create table 預設約束
112 (
113 id char(5) primary key ,sex varchar(2) constraint con_sex default ‘m‘ 
114 )
115 go
116 
117 --修改‘預設約束’表
118 alter table 預設約束
119 add name varchar(10)null constraint con_name default ‘你好寶貝‘ --增加一個欄位為‘name’,預設值為‘你好寶貝’
120 go
121 
122 --往班級表裡添加8條記錄
123 insert into 班級 values(‘bj01‘,‘一班‘)
124 insert into 班級 values(‘bj02‘,‘二班‘)
125 insert into 班級 values(‘bj03‘,‘三班‘)
126 insert into 班級 values(‘bj04‘,‘四班‘)
127 insert into 班級 values(‘bj05‘,‘五班‘)
128 insert into 班級 values(‘bj06‘,‘六班‘)
129 insert into 班級 values(‘bj07‘,‘七班‘)
130 insert into 班級 values(‘bj08‘,‘八班‘)
131 go
132 --顯示班級所以記錄
133 select * from 班級
134 go
135 --刪除班級表裡班級編號大於bj06的記錄
136 delete from 班級 where 班級編號>‘bj06‘
137 go
138 --顯示班級所以記錄
139 select * from 班級
140 go
141 
142 --向學生表裡添加記錄
143 insert into 學生 values(‘xs01‘,‘one‘,‘bj01‘)
144 insert into 學生 values(‘xs02‘,‘two‘,‘bj01‘)
145 insert into 學生 values(‘xs03‘,‘three‘,‘bj01‘)
146 insert into 學生 values(‘xs04‘,‘four‘,‘bj02‘)
147 insert into 學生 values(‘xs05‘,‘five‘,‘bj03‘)
148 insert into 學生 values(‘xs06‘,‘six‘,‘bj02‘)
149 insert into 學生 values(‘xs07‘,‘seven‘,‘bj04‘)
150 insert into 學生 values(‘xs08‘,‘eight‘,‘bj03‘)
151 insert into 學生 values(‘xs09‘,‘nine‘,‘bj04‘)
152 insert into 學生 values(‘xs10‘,‘ten‘,‘bj05‘)
153 insert into 學生 values(‘xs11‘,‘eleven‘,‘bj06‘)
154 insert into 學生 values(‘xs12‘,‘twleve‘,‘bj06‘)
155 go
156 --顯示學生所有的記錄
157 select * from 學生
158 go
159 
160 --連接查詢
161 select * from 學生,班級 where 學生.班級編號=班級.班級編號
162 go
163 
164 --以下效果同上一條相同
165 
166 --選擇的連接查詢
167 select 學生.學生編號,班級.班級編號, 學生.學生名字,班級.班級名稱 from 學生,班級 where 學生.班級編號=班級.班級編號
168 go
169 --以下效果同上一條相同
170 
171 
172 
173 --查詢一班的學生
174 select* from 學生 where 班級編號 in(select 班級編號 from 班級 where 班級編號=‘bj01‘)
175 go
176 --與上面一條查詢語句一樣功能
177 select a.學生編號,a.學生名字,a.班級編號 from 學生 as a ,班級 as b where a.班級編號=b.班級編號 and b.班級編號=‘bj01‘
178 go
179 
180 --統計一班學生人數
181 select count(學生編號)as 學生統計 from 學生 
182 where 班級編號 in(select 班級編號 from 班級 where 班級編號=‘bj01‘)
183 go
184 
185 --group的用法和count()函數的用法
186 
187 
188 --統計一班學生人數,並顯示學生的名字和所在班級
189 select count(學生編號)as 學生統計, 學生名字,班級編號 from 學生 
190 where 班級編號 in(select 班級編號 from 班級 where 班級編號=‘bj01‘)
191 group by 班級編號,學生名字
192 go

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上一篇,我們講述了Hive的CLI和JDBC,從編程和使用的角度進入了Hadoop生態。這裡就介紹下Hadoop DataBase,簡稱HBase。   下麵我們開始介紹HBase的介紹及安裝。 ...
  • http://stackoverflow.com/questions/4862911/how-to-throw-an-error-in-mysql-procedure 9down votefavorite What is the mechanism to force the MySQL to thr ...
  • enq: TX - row lock contention等待事件,這個是資料庫裡面一個比較常見的等待事件。enq是enqueue的縮寫,它是一種保護共用資源的鎖定機制,一個排隊機制,先進先出(FIFO)。enq: TX - row lock contention等待事件,OACLE將其歸類為app... ...
  • 1.首先先看下什麼是MySQL。 MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 最流行的關係型資料庫管理系統,其開放源碼這一特點,使得一般中小型網站的開發都選擇 MySQL 作為網站資料庫。 2、安裝。 安裝參考:http:// ...
  • 在取消執行 Restore HeaderOnly 命令時,發現取消不了,Session長時間處於PARALLEL_BACKUP_QUEUE 等待狀態。 官方文檔:Occurs when serializing output produced by RESTORE HEADERONLY, RESTOR ...
  • https://www.sitepoint.com/cursors-mysql-stored-procedures/ After my previous article on Stored Procedures was published on SitePoint, I received quite ...
  • 在Ubuntu 下配置 Mysql 的字元編碼。安裝完 Mysql 後,系統預設的字元編碼是 latin1 ,輸入的是中文,可是輸出卻是一堆亂碼。現在要做的就是把 Mysql的預設字元編碼設置為支持中文的編碼,如 GBK、GB23112、等。 說正經的,我大天朝程式員開發麵臨的兩座智障大山是編碼問題 ...
  • 好記心不如爛筆頭,很多東西當時沒記下來,過了就忘了,下次用到時又得浪費好多時間才能解決。今天又遇到修改MySQL預設字元集編碼的問題,折騰了半天解決了,趕快記錄下來,以後就不用每次折騰了。 查看MySQL字元集的命令是“show variables like '%char%';”。 以MySQL5. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...