數據庫和數據表 (開發常用 操作)
一,數據庫的創建
一個SQLServer 是由兩個文件組成的:數據文件(mdf) 和日志文件(ldf),所以我們創建數據庫就是要為其指定數據庫名、數據文件和日志文件。
a) create database 數據庫名;
例:
create database mydb;
數據文件和日志文件存放在默認文件夾
數據庫文件名為mydb.mdf,日志文件的名字為mydb.ldf
b) 創建數據庫的完整語句(自己定義數據文件和日志文件的位置)
create database mydb on( name='mydb123', filename='C:\mydb.mdf',--數據文件保存位置 size=10,--數據庫初始大小 以M 為單位 maxsize=50,--數據庫大小的最大值 filegrowth=5 --當數據庫數據大小超過默認值,每次增長的大小 ) log on( name='mydb_ldf', filename='C:\mydb_log.ldf', size=5, maxsize=50, filegrowth=5 );
2) 使用數據庫
use 數據庫名;
3) 刪除數據庫
drop database數據庫名;
二,數據庫的備份和還原
1. 數據庫的備份:將數據庫文件生成一個本份文件(dat文件)
backup database 數據庫名 to disk=’路徑’;
backup database mydb to disk='D:\mmm.dat' with format;
2. 數據庫的還原:根據備份文件恢復數據庫
a) 查看備份文件的信息
restore filelistonly from disk='D:\mmm.dat';
b) 將數據庫文件還原到備份前的位置
restore database mydb from disk='D:\mmm.dat';
c) 將數據庫文件還原到指定位置
restore database mydb from disk='D:\mmm.dat' with move 'mydb' to 'F:\mydb.mdf', move 'mydb_log' to 'F:\mydb_log.ldf';
三,模式(命名空間)
1. 創建模式
create schema 模式名 authorization 登錄名;
例:create schema model01 authorization sa;
2. 刪除模式
a) 級聯刪除:如果模式中有表,先刪除表再刪除模式。
drop schema model01 cascade;
b) 限制刪除:如果模式中有表,則刪除失敗。
drop schema model01 restrict;
四,建表
數據表的創建 語法: create table <表名>( 字段名 數據類型 約束, … ); 表名和列名的命名規范 ■ 必須以字母, _開頭 ■ 長度不能超過128字符 ■ 不要使用sql server的保留字 ■ 只能使用如下字符 A-Z,a-z,0-9,$,#,_等 表就是存儲數據的單位,表中的一列被稱之為“字段”,表中的一行稱之為“元組” 學生(*學號,姓名,性別,年齡,專業) create table student( sno char(13) primary key, sname varchar(20) not null, ssex char(2), sage smallint, sdept varchar(30) ); 課程(*課程號,課程名,學分) create table course( cno char(4), cname varchar(40) not null, ccredit smallint not null, 我們可以將字段的定義和主外鍵的定義分開 primary key (cno) ); 選課(學號,課程號,分數) create table sc( sno char(13), cno char(4), grade smallint, primary key (sno,cno),--定義聯合主鍵 foreign key (sno) references student(sno), constraint FK_sc_cno foreign key (cno) references course(cno) ); 創建一個用戶表 create table tb_user( userid int identity(1,1),【設置整型字段自動增長】 username varchar(20) not null, userpass varchar(16) not null, groupid int ); 創建用戶組表 create table tb_group( groupid int primary key identity(1001,1), groupname varchar(30) not null );
五,修改表結構
修改表結構 1. 添加字段 alter table student add birthday datetime; 2. 修改字段 alter table student alter column birthday varchar(12); 3. 刪除字段 alter table student drop column birthday; 4. 設為主鍵 alter table tb_user add constraint pk_user primary key(userid); 5. 設置外鍵 alter table tb_user add constraint fk_user_groupid foreign key (groupid) references tb_group(groupid); 6. 修改表的字段約束 exec sp_rename 'tb_group.groupname','gname','column'; 7. 修改表的名字 exec sp_rename 'tb_user','user';
6,視圖
創建視圖
create view v_student as select * from student where sage>20 with check option;
修改視圖
將信息系學生視圖is_Student中學號為的學生姓名改為“劉辰” update is_Student set sname='劉辰' where Sno='95002'; 向信息系學生視圖is_Student中插入一個新的學生記錄,其中學號為,姓名為趙新,年齡為歲 insert into is_Student values('95029', '趙新', 20); DBMS將其轉換為對基本表的更新: insert into Student(Sno,Sname,Sage,Sdept) values('95029', '趙新', 20, 'IS'); 這里系統自動將系名'is'放入values子句中。
刪除視圖
drop view v_student;
七,索引
創建索引:在指定表的指定字段建立起索引,此后再根據這個索引進行查詢操作的時候會大大提高查詢效率.
create index tb_user_name on tb_user(user_name);
create index tb_user_name_pass on tb_user(user_name,user_pass);
create index tb_user_name_pass on tb_user(user_name asc,user_pass desc);
刪除索引
drop index tb_user_name_pass on tb_user;