数据库和数据表 (开发常用 操作)

一,数据库的创建

一个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;

版权声明:本文为yijieyufu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yijieyufu/p/11985824.html