SQL server增删改查(1)

SQL server数据类型

  • 整数型:

  • BIGINT

  • INT

  • SMALLINT

  • 小数型:

  • FLOAT

  • DOUBLE

  • 文本型:

  • CHAR

  • VARCHAR

  • NCHAR

  • NVARCHAR

  • TEXT

  • 日期和时间类型

  • DATE

  • TIME

  • DATETIME

  • 布尔型:

  • BIT

数据类型

含义

INT

长整数(也可以写作INTEGER)

SMALLINT

短整数

CHAR(n)

长度为n的定长字符串, 不足n个字符的空白部分用空格补齐

VARCHAR(n)

最大长度为n的变长字符串,如果输入字符串长度不足n ,不足的部分不会使用空格补齐

TEXT

文本输入

FLOAT(n)

浮点数, 精度至少为小数点后n位数字

DOUBLE(n)

双精度浮点数

DATE

日期类型,包含年月日,格式为: YYYY-MM-DD

TIME

时间类型,包含一日的时分秒,格式为: HH:MM:SS

DATETIME

日期时间类型, 是日期类型和时间类型的结合

格式为: YYYY-MM-DD HH:MM:SS

日期数据和时间数据中间用空格隔开

BIT

使用1/0 来表示 ture / false

如何正确选择数据类型

一个属性该如何来选取对应的数据类型呢?

一般来说, 像年龄这种会经常改变的属性, 同时它还包含这运算, 排序的需求,就比如书按年龄排序, 求一个表的记录的平均年龄等, 这种情况一般采用整数类型.

对于char这种定长字符串, 一般用于学号, 性别等固定不变的数据,如果信息的某一个记录集合所记录的数据长度在某个范围变化,字符长度不统一, 不确定的时候, 就可使用VARCHAR来设置最大字符串长度来限定. 他能最大程度的节省空间是一个很高效的数据类型.. char和varchar都是存储ANSI格式的字符串, 而NCHAR和NAVRCHAR是使用unicode格式来存储的字符串.

其中text也是可变长度的字符串, 但是text不需要指定字符串长度, text将根据实际录入长度来决定占用空间大小

而date,time和datetime是用才表示日期时间的.按需求选取即可.

SQL server Management studio管理工具的使用

使用前提

  1. 启动SQL server服务:

在搜索框中搜索服务并打开, 显示如下:

打开对应的数据库服务即可

  1. 连接数据库

对象资源管理器

下载安装好之后, 打开Management studio管理工具, 可以看到其左侧边栏(对象资源管理器)显示如下:

对象资源管理器

就像MySQL一样, SQLserver管理工具也有一个命令窗口

新建数据库

分如下几步:

  1. 选中数据库, 然后右键呼出目录, 点击新建数据库

  1. 输入数据库名称

  1. 点击确认

新建查询

点击新建查询

就可以看到有如下的界面 :

可以在里面输入对应的SQL语句.

一个简单的使用案例

新建一个名为test的数据库:

创建数据库中

test数据库在对象资源管理器中的展现

选中test数据库:

使用use语句选中test数据库, 或者是左边下拉栏, 选中test, 就ok了

创建一个学生表数据库:

学生表包含基本信息, 包括但不限于: 姓名, 年龄, 性别, 学号, 身份证等等.

写好SQL语句之后,点击执行

执行完之后, 如果成功则会显示, 命令已成功完成

在test的资源管理器视图当中就可以看到student的表的数据*(这里的dbo为前缀, 这里不做过多讲解)

约束条件

常用的约束条件的表示和作用

名称

语法表示

约束作用

主键约束

primary key

输入值非空不重复

非空约束

not null

输入值非空

重复约束

unique

输入值是唯一的

默认值约束

default

没有输入值的时候,设置为默认值

检查约束

check

检查输入值是否满足设置的条件

单/多字段主键

  1. 单字段主键:

create table emp (
    depid char(3) primary key,
    depname varchar(20)
)   
  1. 多字段主键

create table emp (
    depid char(3) primary key,
    depname varchar(20),
    primary key(depid, depname)
)   

创建表的时候增加约束

create table emp (
    id char(10) primary key, /*primary key == unique && not null*/
    depName varchar(20) not null,
    address varchar(20) not null default 'xxxx',
    sex char(3) check (sex = '男' or sex = '女'),
    age int check (age in between 20 and 60)
)

其中id为主键约束, not null为非空约束等等.

创建表后增加约束字段

使用alter关键字, 使用语法:

alter table 表名 alter column 字段 数据类型 约束条件

创建表格:

create table emp (
    id char(10) primary key, /*primary key == unique && not null*/
    depName varchar(20) not null,
    address varchar(20) not null default 'xxxx',
    sex char(3) check (sex = '男' or sex = '女'),
    age int check (age in between 20 and 60)
)

设置非空

语法为:

alter table emp alter column age int not null

我们查看对象资源管理器可以看到: age属性的 允许Null值 没有被勾选上了, 也就是不允许为null值

为不同字段增加不同条件的约束

语法:

alter table emp
    constraint PK_depname primary key(depname),
    constraint CK_address check(address like '%省%'),
    constraint DF_address default('xx省xx市') for address

基本表的定义删除与修改

创建表

使用语法:

create table 表名 (
    属性_1 数据类型 约束条件_1
    属性_2 数据类型 约束条件_2
    属性_3 数据类型 约束条件_3
    属性_4 数据类型 约束条件_4
   /* ......*/
)

对应的表的图形化表示可以参考Excel表格中的图形界面.例如:

例如, 建立一个属性包含学生学号(Sno), 姓名(Sname), 性别(Ssex), 年龄(Sage), 和所在系(Sdept)的学生表(Student):

create table Student (
    Sno char(9) primary key, /*primary key 为一种约束条件*/
    Ssex char(3) check (Ssex ='女' or Ssex ='男'),
    Sname varchar(20),
    Sage smallint,
    Sdept char(20)
);

修改表

有时候我们已经创建好表格了, 但是随着应用和需求不断的变化, 这个时候就需要对已经建立好的基本表进行修改, SQL 用alter table来修改基本表, 一般格式为:

alter table 表名
    add 新属性名 数据类型 完整性约束
    drop 完整新约束名
    alter column 属性名 数据类型

这个表名就是要修改的基本表, add用来增加新的属性, 也就是新的列, drop用来删除指定的完整性约束条件, alter column用于修改原有属性的定义(包括修改属性名和数据类型)

我们就以上面那张表为例子:

1.向Student表中增加"入学时间"属性, 数据类型为日期类型:

alter table Sutdent

add Sentrance date;

其中Sentrance为"入学时间"的列名, date为时间类型, 无论基本表中是否已经有数据, 新增加的属性一律为空值.

2.将Student表中年龄的数值类型改为字符型

alter table Student

alter column Sage varchar(10);

3. 为Student表中名字增加唯一性约束

alter table Student

add unique(Sname)

删除表

使用drop table来删除基本表;

drop table 表名 [restrict | cascade]

后面的restrict和cascade是选择删除模式, 如要选择restrict的话, 则该表的删除是有限制条件的, 想要删除这样的表, 就不能被其他表的约束所引用, 例如check和foreign key等, 不能有视图, 不能有触发器, 不能有存储过程和函数等, 如果存在依赖这个表的对象, 则删除会失败

若是选择cascade, 则该表的删除没有限制条件, 再删除表的同时, 相关的依赖对象(例如视图, 索引, 触发器等等)都会被一起删除.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值