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

一,数据库的创建

一个SQLServer 是由两个文件组成的:数据文件(mdf) 和日志文件(ldf),所以我们创建数据库就是要为其指定数据库名、数据文件和日志文件。

a)       create database 数据库名;

例:

create database mydb;

数据文件和日志文件存放在默认文件夹

数据库文件名为mydb.mdf,日志文件的名字为mydb.ldf

b)      创建数据库的完整语句(自己定义数据文件和日志文件的位置)

  1. create database mydb
  2.  
  3. on(
  4.  
  5. name='mydb123',
  6.  
  7. filename='C:\mydb.mdf',--数据文件保存位置
  8.  
  9. size=,--数据库初始大小 M 为单位
  10.  
  11. maxsize=,--数据库大小的最大值
  12.  
  13. filegrowth= --当数据库数据大小超过默认值,每次增长的大小
  14.  
  15. )
  16.  
  17. log on(
  18.  
  19. name='mydb_ldf',
  20.  
  21. filename='C:\mydb_log.ldf',
  22.  
  23. size=,
  24.  
  25. maxsize=,
  26.  
  27. filegrowth=
  28.  
  29. );

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)       将数据库文件还原到指定位置

  1. restore database mydb from disk='D:\mmm.dat'
  2.  
  3. with move 'mydb' to 'F:\mydb.mdf',
  4.  
  5. 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;

四,建表

  1. 数据表的创建
  2. 语法:
  3.  
  4. create table <表名>(
  5.  
  6. 字段名 数据类型 约束,
  7.  
  8.  
  9. );
  10.  
  11. 表名和列名的命名规范
  12.  
  13. 必须以字母, _开头
  14.  
  15. 长度不能超过128字符
  16.  
  17. 不要使用sql server的保留字
  18.  
  19. 只能使用如下字符 A-Z,a-z,-,$,#,_
  20.  
  21. 表就是存储数据的单位,表中的一列被称之为“字段”,表中的一行称之为“元组”
  22.  
  23. 学生(*学号,姓名,性别,年龄,专业)
  24.  
  25. create table student(
  26.  
  27. sno char() primary key,
  28.  
  29. sname varchar() not null,
  30.  
  31. ssex char(),
  32.  
  33. sage smallint,
  34.  
  35. sdept varchar()
  36.  
  37. );
  38.  
  39. 课程(*课程号,课程名,学分)
  40.  
  41. create table course(
  42.  
  43. cno char(),
  44.  
  45. cname varchar() not null,
  46.  
  47. ccredit smallint not null,
  48.  
  49. 我们可以将字段的定义和主外键的定义分开
  50.  
  51. primary key (cno)
  52.  
  53. );
  54.  
  55. 选课(学号,课程号,分数)
  56.  
  57. create table sc(
  58.  
  59. sno char(),
  60.  
  61. cno char(),
  62.  
  63. grade smallint,
  64.  
  65. primary key (sno,cno),--定义联合主键
  66.  
  67. foreign key (sno) references student(sno),
  68.  
  69. constraint FK_sc_cno foreign key (cno) references course(cno)
  70.  
  71. );
  72.  
  73. 创建一个用户表
  74.  
  75. create table tb_user(
  76.  
  77. userid int identity(,),【设置整型字段自动增长】
  78.  
  79. username varchar() not null,
  80.  
  81. userpass varchar() not null,
  82.  
  83. groupid int
  84.  
  85. );
  86.  
  87. 创建用户组表
  88.  
  89. create table tb_group(
  90.  
  91. groupid int primary key identity(,),
  92.  
  93. groupname varchar() not null
  94.  
  95. );

五,修改表结构

  1. 修改表结构
  2. . 添加字段
  3.  
  4. alter table student add birthday datetime;
  5.  
  6. . 修改字段
  7.  
  8. alter table student alter column birthday varchar();
  9.  
  10. . 删除字段
  11.  
  12. alter table student drop column birthday;
  13.  
  14. . 设为主键
  15.  
  16. alter table tb_user add constraint pk_user
  17.  
  18. primary key(userid);
  19.  
  20. . 设置外键
  21.  
  22. alter table tb_user add constraint
  23.  
  24. fk_user_groupid foreign key (groupid) references tb_group(groupid);
  25.  
  26. . 修改表的字段约束
  27.  
  28. exec sp_rename
  29.  
  30. 'tb_group.groupname','gname','column';
  31.  
  32. . 修改表的名字
  33.  
  34. exec sp_rename 'tb_user','user';

6,视图

创建视图

  1. create view v_student as select * from student where sage> with check option;

修改视图

  1. 将信息系学生视图is_Student中学号为的学生姓名改为“刘辰”
  2.  
  3. update is_Student set sname='刘辰' where Sno='';
  4.  
  5. 向信息系学生视图is_Student中插入一个新的学生记录,其中学号为,姓名为赵新,年龄为岁
  6.  
  7. insert into is_Student values('', '赵新', );
  8.  
  9. DBMS将其转换为对基本表的更新:
  10.  
  11. insert into Student(Sno,Sname,Sage,Sdept) values('', '赵新', , 'IS');
  12.  
  13. 这里系统自动将系名'is'放入values子句中。

删除视图

drop view v_student;

七,索引

创建索引:在指定表的指定字段建立起索引,此后再根据这个索引进行查询操作的时候会大大提高查询效率.

  1. create index tb_user_name on tb_user(user_name);
  2.  
  3. create index tb_user_name_pass on tb_user(user_name,user_pass);
  4.  
  5. create index tb_user_name_pass on tb_user(user_name asc,user_pass desc);

删除索引

drop index tb_user_name_pass on tb_user;

sql server建库建表(数据库和数据表的常用操作)的更多相关文章

  1. SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型

    原文:SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测 ...

  2. sql server 主从库设计和数据库镜像设计

    sql server 主从设计可以通过sql server 的发布订阅实现,在大数据量的时候不要用快照发布,要使用事务发布的方式实现. 主从的设计后,要将数据库的读写分离,实现数据库效率的提示 而数据 ...

  3. sql server 2008 把远程的数据库的数据转移到本地数据数据库里

    如题:把远程的数据库对应表里的数据转移到本地数据数据库的对应表里 比如把192.168.188.160的DB的A表的数据转移到本地的DB的A表里 第一步:连接远程服务器前准备 exec sp_addl ...

  4. SQL Server建库-建表-建约束

    ----------------------------------------SQL Server建库-建表-建约束创建School数据库------------------------------ ...

  5. 【ITOO 2】.NET 动态建库建表:使用SQL字符串拼接方式

    导读:在最近接手的项目(高效云平台)中,有一个需求是要当企业用户注册时,给其动态的新建一个库和表.刚开始接手的时候,是一点头绪都没有,然后查了一些资料,也问了问上一版本的师哥师姐,终于有了点头绪.目前 ...

  6. C# 利用*.SQL文件自动建库建表等的类

    /// <summary> /// 自动建库建表 /// </summary> public class OperationSqlFile { SqlConnection sq ...

  7. MySQL建库建表

    一直使用SQL SERVER 数据库:最近项目使用MY SQL感觉还是有一点不适应.不过熟悉之后就会好很多. MY SQL 安装之后会有一个管理工具MySQL Workbench 感觉不太好用,数据库 ...

  8. 使用T-sql建库建表建约束

    为什么要使用sql语句建库建表? 现在假设这样一个场景,公司的项目经过测试没问题后需要在客户的实际环境中进行演示,那就需要对数据进行移植,现在问题来了:客户的数据库版本和公司开发阶段使用的数据库不兼容 ...

  9. 【ITOO 3】.NET 动态建库建表:实用EF框架提供的codeFirst实现动态建库

    导读:在上篇博客中,介绍了使用SQL字符拼接的方式,实现动态建库建表的方法.这样做虽然也能够实现效果,但是,太麻烦,而且,如果改动表结构,字段的话,会对代码修改很多.但是EF给我们提供了一种代码先行的 ...

随机推荐

  1. ArangoDB 界面介绍

    目录: 安装并运行本地ArangoDB服务器 使用Web界面与之交互 BASHBOARD COLLECTIONS QUERIES GRAPHS SERVICES USERS LOGS 安装: 下载地址 ...

  2. 有关logistic(sigmoid)函数回归

    在神经网络中,经常用到sigmoid函数,y = 1 / (1+e-x) 作为下一级神经元的激活函数,x也就是WX(下文,W以θ符号代替)矩阵计算结果. 这个函数通常用在进行分类,通常分为1或0的逻辑 ...

  3. 如何做seo优化才能获取搜索引擎排名?

    现在网络上有很多网站,但是排名和流量都不理想,所以很多企业会很苦恼.所以我们经常思考如何使网站被搜索引擎喜欢,被用户喜欢,有一个良好的排名和流量? 在这个鱼龙混杂的网络中,seo优化实际上是seo网站 ...

  4. P3084 [USACO13OPEN]照片(差分约束)

    (已经有了简化版题面) 又秒了一次dp233 本来按照感觉瞎写了一发... 但还是老老实实列式子吧.... 对差分约束有了更深的理解 #include<cstdio> #include&l ...

  5. Win7安装解压版MySQL

    1.下载MySQL 访问https://dev.mysql.com/downloads/mysql/5.6.html#downloads,下载操作系统对应的版本(无账号需先注册一个),以mysql-5 ...

  6. Hadoop3.2.1版本的环境搭建

    最近有人提出能不能发一些大数据相关的知识,No problem ! 今天先从安装环境说起,搭建起自己的学习环境. Hadoop的三种搭建方式以及使用环境: 单机版适合开发调试: 伪分布式适合模拟集群学 ...

  7. m96-97 lsc nc赛

    这一次 lsc 再一次一道题都没AC,看来lsc已经凉了! 出了分,旁边的_LH大喊了一声 “woc,lsc,你真是太垃圾!”...........“好吧!” 我确实很垃圾!(大佬这次都没考,所以我更 ...

  8. 003.Kubernetes二进制部署准备

    一 前置准备 1.1 前置条件 相应的充足资源的Linux服务器: 设置相应的主机名,参考命令: hostnamectl set-hostname k8smaster Mac及UUID唯一: 若未关闭 ...

  9. 201871010114-李岩松《面向对象程序设计(java)》第七周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  10. 服务器上传文件到oss,以及备份

    公司的前端js,css是发布到oss的,所以要求后台在发布的同时先把即将要覆盖的文件备份到服务器上 步骤是先上传文件到服务器,服务器上传到oss服务器之前先备份相同文件名的文件 public clas ...