這是如何使用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