zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    Linux外部设备的使用
    Linux硬件信息查询
    Linux中swap分区设置
    状态检测型防火墙
    CentOS更换源,亲测可用
    Linux文件权限序列简述
    Linux终端打印文本色彩
    Linux 系统命令之netstat
    Linux配置DNS服务器
    水题一枚
  • 原文地址:https://www.cnblogs.com/yijieyufu/p/11985824.html
Copyright © 2011-2022 走看看