sql server建库建表(数据库和数据表的常用操作)
数据库和数据表 (开发常用 操作)
一,数据库的创建
一个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;