1. 程式人生 > >SQL server 練習1(SQL server 資料庫基本操作)

SQL server 練習1(SQL server 資料庫基本操作)

  本篇部落格用來記錄,編者做sql server練習的題目及解答,以及遇到的一些問題和總結。

題目

1、資料庫建立
名稱:stuManage
主資料檔案:
邏輯檔名:stuManage_M_data
物理檔名:stuManage__data.mdf
初始大小:3M
遞增:10%
限制檔案增長:500M
次資料檔案:
邏輯檔名:stuManage_N_data
物理檔名:stuManage__data2.ndf
初始大小:3M
遞增:1M
限制檔案增長:不限
日誌檔案:
邏輯檔名:stuManage_log
物理檔名:stuManage__log.ldf
其他資訊:預設
物理檔案的路徑請設定為D盤的myData資料夾。

2、表的建立
在stuManag資料庫中建立下面的表
這裡寫圖片描述
這裡寫圖片描述

3、表中資料的SQL方式編輯
(1)在表中新增1個新的系,併為該系新增2個專業資訊和2條教師資訊,具體資料自擬。
(2)將所有出生年月在年齡超過41歲職稱為講師的教師的職稱改為“副教授”。
(3)將“d01006”號院系所有的專業名稱前面加上“網際網路”三個字。
(4)刪除“d01006”號院系及其的所有相關資訊。

4、思考題
(1)請思考如何使用SQL語句快速刪除表中的全部資料?
(2)如果要實現一個巨型表並行讀取,以提高讀取效率,應當如何實現?

解答

1.建資料庫

-- 建立資料庫
create
database stuManage ON ( name = stuManage_M_data, fileName = 'D:\myData\stuManage_data.mdf', size = 5, -- 由於sql server允許的最小值為5m,只能從5m開始,不能從3m開始,否則報錯主檔案必須至少是 5 MB 才能容納 model 資料庫的副本 maxsize = 500, filegrowth = 10%) LOG ON( name = stuManage_N_data, fileName = 'D:\myData\stuManage__log.ldf', size = 3, filegrowth = 1
);

2.建資料庫表

-- 建立表
-- 建立院系資訊表
use stuManage;
create table department(
    dNo char(6)  primary key, -- 院系號
    dName varchar(20) not null, -- 院系名稱
    dTel varchar(11) -- 院系電話
);

-- 建立專業資訊表
create table major(
    mNo char(6) primary key, -- 專業號
    mName varchar(40) not null, -- 專業名稱
    mFirSubject varchar(40) not null, -- 一級學科
    mSecSubject varchar(40),-- 二級學科
    dNo char(6) constraint dNo_fore foreign key references department(dNo)  -- 院系編號
);

-- 建立教師資訊表
create table teacher(
    tNo char(6) primary key, -- 教師號 
    tName varchar(20) not null,-- 姓名
    tSex char(4), -- 性別
    tBirth datetime, -- 出生年月
    tRank varchar(20) not null, -- 職稱
    dNo char(6) constraint dNo_teacher_fore foreign key references department(dNo)   -- 院系編號
);

3.表中資料的SQL方式編輯
(1)

-- 新增紀錄
-- 新增系記錄
insert into department(dNo,dName,dTel) values('161','金融數學與統計學院','1234567');
-- 新增專業記錄
insert into major(mNo,mName,mFirSubject,mSecSubject,dNo)
values(151612,'資訊與計算科學','理科','數理科','161')
,(151611,'金融數學','理科','數理科','161');
-- 新增教師記錄
insert into teacher(tNo,tName,tSex,tBirth,tRank,dNo)
values('1','張三三','男','1990-10-10 12:10:00','教授',161),
('2','李四四','女','1950-10-10 12:10:00','教授',161);

(2)將所有出生年月在年齡超過41歲職稱為講師的教師的職稱改為“副教授”。

-- 法一
update teacher set tRank = '副教授' where  datediff(yy,tBirth,getDate())>41 and tRank='講師';
-- 法二:自連線刪除,順便複習了一下自連線
update tem1 set tRank = '副教授' 
from teacher as tem1
inner join teacher as tem2 on  datediff(yy,tem1.tBirth,getDate())>41 and tem1.tRank='講師';

(3)將“d01006”號院系所有的專業名稱前面加上“網際網路”三個字。

update major set mName='網際網路'+mName where dNo= 'd01006';

(4)刪除“d01006”號院系及其的所有相關資訊。

-- 法一,逐個刪除,先刪除子表再刪夫表
delete major where dNo='d01006';
delete teacher where dNo='d01006';
delete department where dNo='d01006';
-- 法二,建立了級聯操作,可以直接刪除父表
alter table major drop constraint dNo_fore; 
alter table major add constraint dNo_fore foreign key(dNo) references department(dNo) ON UPDATE CASCADE ON DELETE CASCADE;
alter table teacher drop constraint dNo_teacher_fore;
alter table teacher add constraint dNo_teacher_fore foreign key(dNo) references department(dNo) ON UPDATE CASCADE ON DELETE CASCADE;
delete department where dNo='161';

4.思考題
1.
法一:delete from 刪除的資料可以回滾(事務)
法二:truncate table: 可以全表刪除
2.
暫時還不知怎麼解答,因為對於並行沒有太多瞭解。

總結

  這次練習主要做了一些sql語句建庫,建表的操作,都是比較簡單的,不過需要注意的一些地方是在建庫,增長量的時候是可以有兩個度量單位選擇的,filegrowth =10%時,是以10%來增長,如果是filegrowth =10則預設單位是m,以10m來增長。本次練習對於我來說是比較簡單,因為之前有學過mysql資料庫的相關課程,對於外來鍵,查詢,插入之類的操作已經是比較熟悉了的。就我個人體會來看,初次接觸sql server的時候,感覺sql server操作與mysql操作並沒有什麼不同。

相關推薦

SQL server 練習1SQL server 資料庫基本操作

  本篇部落格用來記錄,編者做sql server練習的題目及解答,以及遇到的一些問題和總結。 題目 1、資料庫建立 名稱:stuManage 主資料檔案: 邏輯檔名:stuManage_M_data 物理檔名:stuManage__data

數據庫介紹-1體系結構、基本管理

rom pro 進行 use 切換 能夠 含義 idc class 第2章 Mysql體系結構與基本管理 2.1 客戶端與服務器端模型 2.1.1 mysql服務結構 mysql是一個典型的c/s模式,服務端與客戶端兩部分組成 服務端程序 m

機器學習與深度學習系列連載: 第二部分 深度學習十三迴圈神經網路 1Recurre Neural Network 基本概念

迴圈神經網路 1(Recurre Neural Network 基本概念 ) 迴圈神經網路的特點: • RNNs 在每個時間點連線引數值,引數只有一份 • 神經網路出了輸入以外,還會建立在以前的“記憶”的基礎上 • 記憶體的要求與輸入的規模有關 當然,他的深度不只有一層:

JS基礎知識1最最基礎的基本概念

文檔對象模型 版本 核心 -s 組成 span ron 最新版本 最新版 1.JS的三大組成部分 ECMAScript(核心) DOM(文檔對象模型) BOM(瀏覽器對象模型) 2.ECMA版本兼容性 最新版本的ECMAScript只有在IE 9下完全兼容,第三版

SQL server 練習4資料庫設計E-R圖

CREATE DATABASE [sauims] CONTAINMENT = NONE ON PRIMARY ( NAME = N'sauims', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL

Windows Server 2008伺服器上訪問SQL Server異常慢SQL資料庫設定為空密碼情況下

這兩天把工作主機從Windows Server 2003 R2 換成了 Windows Server 2008 R2  , 在連線遠端 SQL SERVER 2000  中,如果SQL資料是空密碼,就會異常慢或連線不上。如: 企業管理器 註冊網路SQL SERVER 時,異常

sql語句練習1

之間 let 創建 名稱 示例 ble 通用函數 經理 ati Oracle系列《一》:簡單SQL與單行函數 使用scott/tiger用戶下的emp表和dept表完成下列練習,表的結構說明如下 emp員工表(empno員工號/ename員工姓名/job工作/mgr

sql語句練習1

建表 CREATE TABLE students (sno VARCHAR(3) NOT NULL,  sname VARCHAR(4) NOT NULL, ssex VARCHAR(2) NOT NULL,  sbirthday DATETIME, class VARC

例題SQL語句詳解-資料庫基本操作1

1.1 連線伺服器 通過命令列面板連線 host:主機 -h username:使用者名稱 -u password:密碼 -p port:埠 -P 多學一招:如果MySQL伺服器在本地,IP

SQL Server中的Image資料型別的基本操作

準備工作,在庫Im_Test中建立一張表Im_Info,此表中有兩個欄位,分別為Pr_Id (INT),Pr_Info (IMAGE),用來儲存圖形編號及圖形資訊。其語法如下: CREATE TEALE Im_Info ( Pr_Id INT NULL , Pr_Info

sql線上練習網站http://sqlzoo.cn答案解析

一:SELECT(http://www.sqlzoo.cn/1.htm)     1a. 檢視關於bbc表的詳細說明         SELECT name, region, population FROM bbc     2a. 給出人口不小於2億的國家的名稱.(2億是2

sql語句常用功能null值轉換為0

span stock left coalesce 產品 post and 客戶 sel COALESCE(規格,‘ ‘) 或者 COALESCE(規格,0) select * from ( SELECT p2.name_template 產品, p3.pname 材料

sql 常用的語句sql 創建表結構 修改列 清空表

eight key perl ont ide class 一個 comm 表結構 1.創建表 create Table WorkItemHyperlink ( ID bigint primary key ,--主鍵 WorkItemID bigint identity(

python 練習1流控制

控制 pos 用戶 str 輸入 pri bin imp else #!/usr/bin/python #_*_ coding:utf-8 _*_ #練習題 #1、使用while循環輸入 1 2 3 4 5 6 8 9 10 #a.定義一個變量存放數字 #b

Oracle12c中SQL性能優化SQL TUNING新特性之自動重優化automatic reoptimization

num sysdba number 並行執行 loop pdb state 周期性 align Oracle12c中的自適應查詢優化有一系列不同特點組成。像自適應計劃(AdaptivePlans)功能可以在運行時修改執行計劃,但並不允許計劃中連接順序的改變。自動重優化

SQL複製資料表 select * into 與 insert into

SQL複製資料表 (select * into 與 insert into)   select * into 目標表名 from 源表名 where ..... insert into 目標

Mysql 資料庫基本操作1

1、庫的管理 1)庫的基本操作: ①檢視所有庫:show databases; ②建立庫(指定字符集):create database 庫名 character

SQL 使用總結二 不同庫的日期總結

以下內容都是基於ANSI標準,針對不同的庫可能已經有新的內容,此處僅僅作為參考使用。如有遺漏的也歡迎大家補充!   不同平臺的日期型別 產品 資料型別 用途 Oracle DA

資料庫實驗1建立school資料庫

一、實驗課: (注意:如果用機房的機器,資料庫記得帶走下次繼續用) 建立school資料庫 在school下建立如下資料庫表,根據表中資料選取合適的資料型別及寬度,設定各表的主鍵及表間外來鍵聯絡: 注意:欄位名是對應漢字欄位名的漢語拼音第一個字母組合而成 學生表S:

例題SQL語句詳解-資料庫基本操作2

1.4 表的操作 1.4.1 顯示所有表 語法: show tables 1.4.2 建立表 語法: create table [if not exists] 表名( 欄位名 資料型別 [null|not null] [auto_in