SQLServer学习之表的操作

关系数据库通常包含多个表。数据库实际上是表的集合,数据库的数据或者信息都是存储在表中的。表是对数据进行存储和操作的一种逻辑结构,每一个表都代表一个对用户意义的对象。

例如在前面附加的数据库中,就含有empdept等表格

数据类型

在创建表之前,或者说在我们使用数据库之前,必须先了解有关数据类型的定义,就如我们在学编程的时候,必须先了解如何定义变量一样。

sqlserver中定义了很多的数据类型可供使用。详细情况请查询相关资料,这里只列出一些常见的数据类型,大概十几种,分为数值型,字符型,日期型和二进制类型

数值类型数据源:

  • int :整形
  • float:浮点型
  • decimal:精确型,需要注意的是,在SQLserver中没有double类型

字符类型数据:

  • char:定长的数据---char(10),保存10个字符的长度的数据,不管是否达到10字符,都需要分配10个字符的空间,但是有一个好处是该数据类型查询效率非常高
  • varchar:可变长字符数据---->长度可以随着保存内容的长度改变而改变,可以节省磁盘空间
  • text:大文本数据类型,存放的大型文本数据

日期类型数据:

  • datetime:表示日期和时间,这种数据类型存储从1753年1月1日到9999年12月3 1日间所有的日期和时间数据, 精确到三百分之一秒或3.33毫秒
  • Smalldatetime:表示从1900年1月1日到2079年6月6日间的日期和时间,精确到一分钟

二进制数据类型:

binary:存储大概8000个字节长度的二进制数据,该数据类型是定长的

varbinary:存储大概8000个字节长度的二进制数据,该数据类型是可变长的

image:image 数据类型用来存储变长的二进制数据,最大可达231-1或大约20亿字节

表的创建

为了可以在数据库中保存我们需要的数据,关系型数据库采用的是存放一张一张的表格结构的存储方式存储。

在数据库中创建表一般有两种方法:

  • 在工具 Microsoft SQL Server Management Studio采用可视化的方式创建(不推荐)
  • 书写SQL命令的方式创建

由于不推荐直接直接使用可视化的方式创建表格,这里不再讲述

书写SQL命令同样是在 Microsoft SQL Server Management Studio

案例分析:

  • 创建一个student表

    create table student
    (
    id int,
    Name varchar(50),
    clazz varchar(20),
    birthday date,
    Living_expenses float,
    achievement float,
    discription text
    );

如上,执行以上的命令,就可以创建出一个最为简单的表格student了,

  • create table代表我需要创建一个表格
  • student:为表名称
  • 括号内是表的字段,代表我需要创建的表格的列名和所能保存的数据类型
  • id int, 表示的是由一个字段名称叫id列,所能保存的数据类型是int类型,这和我们正常的编程习惯的是相反的,请注意。
  • 字段中,没一个字段定义完成后,都需要以逗号隔开,但是在最后一个字段上,不能有逗号,
  • 创建语句完成,请以分号结尾。

表的修改

在有的时候,表创建完成,但是后来才发现表创建的并不完美,需要加以修改

  • 修改表的表名和列名:将student表名称更改为students

    • 想要修改表名和字段名称,需要用到的是sql提供的存储过程(有关存储过程的内容在后面更新):sp_name
    exec sp_rename 'student', 'students';
  • 修改列名称:将students 表的id列修改成studentid

    • 修改列名,同样用到是sp_name的存储过程来修改,需要注意的是,在修改列名的时候,需要在原来的列名带上表名才能修改,否则将报错。
    exec sp_rename 'students.id', 'studentid', 'column';
  • 修改列的数据类型:将name的数据类型修改成char(50);

    • 修改列的数据类型,不需要任何的存储过,直接采用alter table 关键字即可
    alter table students alter column name char(50);
  • 添加一个字段:在students表中添加一个password字段用于保存学习密码

    • 在需要的时候,我们需要天剑一个字段,用于新内容的存放
    alter table students add password nvarchar(20);

删除表

一般来说,删除表格有两种方法

  • 一种是删除表格中的数据,保留表的结构,在需要的时候可以利用日志进行恢复

    delete from students;
  • 一种是直接删除数据和表结构,将无法恢复。

    drop table students;

SQLServer学习之表的操作的更多相关文章

  1. MYSQL数据库学习五 表的操作和约束

    5.1 表的基本概念 表示包含数据库中所有数据的数据库对象.一行代表唯一的记录,一列代表记录的一个字段. 列(Columns):属性列,创建表时必须指定列名和数据类型. 索引(Indexes):根据指 ...

  2. Oracle 11g 学习3——表空间操作

    一.表空间概述 表空间是Oracle中最大的逻辑存储结构,与操作系统中的数据文件相相应: 基本表空间:一般指用户使用的永久性表空间,用于存储用户的永久性数据          暂时表空间: 主要用于存 ...

  3. SQLServer学习笔记<> 表连接查询----交叉连接、内连接、左连接、右连接

    (1)交叉连接(cross join)即我们所说的笛卡尔积.查询出满足两张表所有的记录数,A(3条记录),B(9条记录),A*B(27条记录). 比如:雇员表(HR.employees)和货运公司(S ...

  4. salesforce零基础学习(七十一)级联表DML操作

    曾经做项目没有考虑那么多,对于级联表操作都是正常的一步一步操作,没有考虑过失败情况,最近项目遇见了失败的情况,导致碰到了相应的情况,特此mark一下,免得后期继续踩坑. 需求如下:新建页面,页面中包含 ...

  5. SQL server学习(二)表结构操作、SQL函数、高级查询

    数据库查询的基本格式为: select ----输出(显示)你要查询出来的值 from -----查询的依据 where -----筛选条件(对依据(数据库中存在的表)) group by ----- ...

  6. MySQL学习3 - 数据表的操作

    本节掌握 一.存储引擎(了解) 二.mysql支持的存储引擎 1.InnoDB 存储引擎 2.MyISAM 存储引擎 3.NDB 存储引擎 4.Memory 存储引擎 5.Infobright 存储引 ...

  7. MySql cmd下的学习笔记 —— 有关表的操作(对表中数据的增,删,改,查)

    (知识回顾) 连接数据库 mysql -uroot -p111 先建立一个新库 create database test1; use test1; 由于今天的主要内容是表的操作,建立表的详细过程不是本 ...

  8. MySQL基础学习——SQL对数据库进行操作、对数据库的表进行操作

    1.SQL对数据库进行操作: 创建数据库: 语法: create database 数据库名称 [character set 字符集 collate 字符集校对规则];字符集校对规则即所用字符集的数据 ...

  9. SQLServer学习笔记系列6

    一.写在前面的话 时间是我们每个人都特别熟悉的,但是到底它是什么,用什么来衡量,可能很多人会愣在那里.时间可以见证一切,也可以消磨一切,那些过往的点点滴滴可思可忆.回想往年清明节过后,在家乡的晚上总能 ...

随机推荐

  1. C#+Entity Frame work+MVC+Mysql+Apicloud共享汽车管理系统【论文】+Apicloud开发实例

    摘要: 共享汽车管理系统主要分为后台管理PC端和手机App端,后台管理可以对指定停车点.车辆基本信息.用户注册信息.用户订单信息.推送消息进行管理和维护,而手机app用户可以通过手机号进行短信注册,根 ...

  2. SSH 中文乱码解决

    在终端执行命令:export LC_ALL=zh_CN.GB2312;export LANG=zh_CN.GB2312是最有效的. 这种方法是临时的,只对当前SSH客户端有效,重启后依然乱码. 1.不 ...

  3. 用ST解决RMQ问题

    用ST算法解决RMQ(区间最值问题) 在解决CF上的6E Exposition时,用到了RMQ+二分的方法.学习了用ST来快速解决RMQ问题,因此做一个小记 建表 用DP的方式来建ST. dp[i][ ...

  4. vsftp 上传550 Permission denied解决办法

    在linux服务器上安装和配置了vsftp,添加用户然后现在用这个用户登录ftp成功,能下载,但是不能上传和删除,明明这个用户的主目录给了777权限了,但是始终无法上传 解决办法:是在/var/ftp ...

  5. TCP拥塞控制算法

    转自浅谈TCP拥塞控制算法 本篇文章介绍了几种经典的TCP拥塞控制算法,包括算法原理及各自适用场景. 回顾上篇文章:浅谈 redis 延迟 前言 TCP 通过维护一个拥塞窗口来进行拥塞控制,拥塞控制的 ...

  6. tensorflow feeddict问题unhashable type: 'numpy.ndarray'

    https://stackoverflow.com/a/49134587 求argmax.加newaxis.转变data类型时尽量用tf自带的函数: tf.argmax.[tf.newaxis, :] ...

  7. nginx状态码

    200:服务器成功返回网页 403:服务器拒绝请求.404:请求的网页不存在 499:客户端主动断开了连接.500:服务器遇到错误,无法完成请求.502:服务器作为网关或代理,从上游服务器收到无效响应 ...

  8. 2.jdk1.8+springboot中http1.1之tcp连接复用实现

    接上篇:https://www.cnblogs.com/Hleaves/p/11284316.html 环境:jdk1.8 + springboot 2.1.1.RELEASE + feign-hys ...

  9. Vue + Webpack-simple 怎么修改生产环境下运行的端口?

    开发环境下运行 npm run dev,默认运行在localhost:8080端口,想要修改端口,于是在"dev“后增加了--port 8081

  10. ViedoUtil获取视频的缩略图

    package com.jcf.utilsdemo; import android.graphics.Bitmap; import android.media.ThumbnailUtils; publ ...