sqlServer 基礎入門

龙卷风吹毁停车场發表於2024-04-23
use master
go

if exists(select * from sysdatabases where name = 'CourseManageDB') --查詢是否存在這個庫
drop database CourseManageDB --刪除資料庫(不可恢復)
go --表示結束

create database CourseManageDB --建立資料庫
on primary
(
    --資料庫的邏輯檔名(就是系統用的,必須唯一)
    name='CourseManageDB_data',
    --資料庫物理檔名(絕對路徑)
    filename='E:\DB\CourseManageDB_data.mdf', --主資料檔名
    --資料庫初始檔案大小(一定要根據你實際生產需求來定)
    size=10MB,
    --資料檔案增值量(也要參考檔案本身大小)
    filegrowth=1MB
),
(
    name='CourseManageDB_data1',
    filename='E:\DB\CourseManageDB_data1.ndf',
    size=10MB,
    filegrowth=1MB
)
--日誌檔案
log on
(
    name='CourseManageDB_log',
    filename='E:\DB\CourseManageDB_log.ldf',
    size=10MB,
    filegrowth=1MB
)
go

--指定要操作的資料庫
use CourseManageDB
go
--建立講師表
if exists(select * from sysobjects where name='Teacher') --where查詢條件
drop table Teacher
go
create table Teacher
(
  ID int identity(1000,1) primary key, --key主鍵 identity表示從1000開始每次增加1
  loginUser varchar(50) not null, --varchar(50)最多50個,長度不固定 varchar(50) 表示可存放50個英文字元25個漢字 nvarchar(50)可存放50個漢字100個字元
  loginPwd varchar(18) check(len(loginPwd)>=6 and len(loginPwd) <=18) not null, --check限制條件 loginPwd的長度要大於6且小於18
  userName varchar(20) not null,
  phoneNumber char(11) not null, --char(11)長度固定11 ,not null 初始為null
  nowAddress varchar(100) default('地址不祥') --default 設定預設資料
)
go
--課程分類表
if exists(select * from sysobjects where name='CourseCategory')
drop table CourseCategory
go
create table CourseCategory
(
    Category_Id int identity(100,1) primary key,
    CategoryName varchar(20) not null
)
go

--課程表
if exists(select * from sysobjects where name = 'Course')
drop table Course
go
create table Course
(
    CourseID int identity(1,1) primary key,
    CourseName varchar(20) not null,
    CourseContent nvarchar(500) not null, --nvarchar可存放500個漢子,1000個字元
    ClassHour int not null,--課時
    Credit int check(Credit >=1 and Credit <=30) not null, --check限制約束
    Category_Id int references CourseCategory(Category_Id) not null, --外來鍵約束
    ID int references Teacher(ID)--外來鍵約束
)
go

--向表中插入資料
insert into Teacher(loginUser,loginPwd,userName,phoneNumber)
values('admin1','123456','李老師','18315000001'),
('admin2','123456','王老師','18315000002'),
('admin4','123456','高老師','18315000004')

insert into Teacher(loginUser,loginPwd,userName,phoneNumber,nowAddress)
values('admin3','123456','付老師','18315000003','重慶沙坪壩區')

--新增課程分類
insert into CourseCategory(CategoryName)
values('前端開發'),('java開發'),('.net開發'),('c#開發')

--新增課程資訊
insert into Course(CourseName,CourseContent,ClassHour,Credit,Category_Id,ID)
values('.net上位機開發','.net基礎課程,net core/sql,asp.net',500,10,102,1002),
('c#開發','c#基礎課程,net core/sql,asp.net',240,10,103,1003),
('web前端開發','javascript/css/html/vue/react',180,10,100,1001),
('java','java基礎語法,java演算法',321,10,101,1002)


--刪除id為1000的資料
delete from Teacher where ID =1000
--修改id為1003的資料
update Teacher set userName = 'mast王老師',phoneNumber='18315114070' where ID = 1003
--查詢指定某張表
--select * from Teacher
--select * from Course
--select * from CourseCategory

--關聯查詢
select CourseName,CourseContent,ClassHour,Credit,Course.Category_Id,CategoryName,userName from Course
inner join CourseCategory on Course.Category_Id=CourseCategory.Category_Id
inner join Teacher on Teacher.ID=Course.ID

執行結果