欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于SQLServer数据库的SQL语言使用--插入数据

程序员文章站 2023-02-20 14:46:27
的数据库,查看新建的表插入数据之前,必须知道表有多少列,每列的数据类型是什么。防止插入非法数据。新建的表有俩个select * from table_1;select * from table_2;1. 查看创建表的语句有四个约束的table_1create tabletable_1(id int not null primary key,age int not null check(age <= 33),gender varchar(5) default(‘男’),p...

查看新建的表

插入数据之前,必须知道表有多少列,每列的数据类型是什么。防止插入非法数据,引起错误。
新建的表有俩个

select * from table_1;
select * from table_2;

1. 查看创建表时使用的SQL语句

有四个约束的table_1

在这里插入代码片

able_1表在创建时设定的约束和类型分别是:**

  1. id列,为int(整型),不能为空,设定为主键primary key;
  2. age(年龄)列,int(整型),不能为空,检查约束check(age <= 33)–年龄小于等于33;
  3. gender(性别)列,varchar(5)字节为5的变长型字符串,默认约束default(‘男’)–不输入性别时,性别默认为‘男’(因为设定了默认约束,所有没有指定是否为空;因为即使不填数据也会有默认值被添加进去);
  4. phone(电话)列,int(整型),不能为空,唯一约束unique–这个列中,每一行的数据都是唯一的。

有一个主键和一个外键约束的table_2;

create table
table_2
(name varchar(5) not null,
site varchar(10) not null,
nowdate datetime,
id int not null primary key foreign key references table_1(id));

table_2表在创建时设定的约束和类型分别是

  1. name名称列,varchar(5)字节为5个字节的变长型字符串,不能为空;
  2. site地点列,varchar(10)字节为10个字节的变长型字符串,不能为空;
  3. nowdate现在日期列,日期时间类型,可以为空(没有设定not null);
  4. id列,int整型,不能为空,primary key设置为主键,foreign key外键 feferences关键字参考
    table_1(id)设置外键(此表中的此列与表table_1中的id列相互关联–(俩个列中的值必须相等))。

2. 使用SQL语句查看已经创建的表的结构

此方法得到的结果非常详细。

sp_help table_1;

输入 sp_help 表名;即可查看此表的结构。

  1. Name表名称, Owner属于谁, Type表的类型, Created_datetime表的创建时间;
  2. Column_name列名称, Type列类型, Length列的长度, Prec小数位, Scale标度, Nullable是否为空,
    collation排序规则;
  3. Identity同一性,Seed种子,Increment增量,Not For Replication不是循环复制;)。

此方法得到表结构的信息

sp_columns table_1;

输入sp_columns 表名;
(TABLE_QUALIFIER可以查看表属于那个数据库,TABLE_OWNER表的拥有者是谁,TABLE_NAME表的名称,COLUMN_NAME有多少列列名称是什么,DATA_TYPE数据类型,TYPE_NAME数据类型名称,PRECISION精度,LENGTH长度规,SCALE规模,RADIX基数,NULLABLE是否为空,REMARKS备注,COLUMN_DEF默认值是什么,等…)。

当知道表中列和列的类型及约束后,可以根据实际情况插入数据。

数据插入–insert

在数据表中插入数据使用关键字:insert
insert 关键字有几个个插入选项:
插入一行数据;
插入行的一部分;

  1. 列对值的方式插入数据

insert into
table_1
(id,age,gender,phone)
values(1,33,‘男’,123456);

查询插入数据后的表
select * from table_1;

以与表列不同的次序插入数据

insert into
table_1
(id,gender,phone,age)
values(2,‘女’,234567,31);

查询插入数据后的表
select * from table_1;

一次插入多条数据

insert into
table_1
(id,age,gender,phone)
values
(3,29,‘男’,345678),
(4,27,‘女’,456789);

查询插入数据后的表
select * from table_1;

设定默认的列不插入数据

insert into
table_1
(id,age,phone)
values(5,25,567890);

查询插入数据后的表
select * from table_1;

虽然gender列没有添加数据,但设置的默认约束会自动将默认值填入列。

table_1简称表1
table_2简称表2

表1与表2以ID列进行外键关联,
而且是表2设定的外键关联表1,表2需要引用表1数据,
所以单个表添加数据时需要先从表1开始。

给表2插入一条数据

insert into
table_2
(name,site,nowdate,id)
values
(‘老大’,‘张家坡’,2020-3-3,1);

查询插入数据后的表
select * from table_2;

给表二添加多条数据

insert into
table_2
(name,site,nowdate,id)
values
(‘老二’,‘张家庄’,9-9-2012,2),
(‘老三’,‘张家沟’,2020-2-2-12-20-20,3),
(‘老四’,‘张家卯’,2020-3-3-13-30-30,4),
(‘老五’,‘张家泉’,2000-1-1-11-10-10,5);

查询插入数据后的表
select * from table_2;

一次为俩个表插入数据(分为俩句以;分割)
insert into
table_1
(id,age,gender,phone)
values(7,21,‘男’,789012);
insert into
table_2
(name,site,id)
values
(‘老七’,‘张家磊’,7);

查询插入数据后的表
select * from table_1;
select * from table_2;

本文地址:https://blog.csdn.net/weixin_47123312/article/details/107321714