1、建库
create database 库名
2、使用库
use 库名
3、建表和表约束
create table 表明(字段1 类型 约束,字段1 类型 约束.... )
--外键约束(子表字段 类型 key references 主表(主表主键字段) [约束])、
------------------------------------① 新增数据------------------------------------------
1、单行插入数据
1.1 标准格式:
insert into 表名(列名1,列名2,列名3...)
values(值1,值2,值3...)
1.2 格式二:交换列名,实际不会改变表结构
insert into 表名(列名1,列名3,列名2...)
values(值1,值3,值2...)
1.3 格式三:忽略列名,输入数据顺序要跟表中列名的顺序一致
insert into 表名
values(值1,值2,值3...)
2、默认值的插入
2.1 格式一:用default代替默认值,仅适用于单行插入
insert into 表名(列名1,列名2,列名3...)
values(值1,default,值3...)
2.2 格式二:不写列名,不插值
insert into 表名(列名1,列名3,...)
values(值1,值3...)
3、空值的插入
3.1 格式一:插入NULL或null,记住NULL一定不要加引号
insert into 表名(列名1,列名2,列名3...)
values(值1,值2,NULL...)
3.2 格式二:不写列名,不插值
4、标识列的创建和数据插入
create table bslie(
id int identity(1001,2),
stuname varchar(30) not null
)
--标识列名不写,值不插
insert into bslie(stuname)
values('小王')
5、多行插入
--格式一:
--insert into 表名(列名1,列名2...)
--select 值1,值2... union
--select 值1,值2...
--格式二:多行插入带默认值,只能使用“不写列名,不插值”
--格式三:多行插入空值,使用NULL或null,也可以使用“不写列名不插值”
6、多行插入的应用,数据备份
--6.1 将一张表的数据插入到另一张新表(新表自动生成,没有表约束和关联关系)
select stuno,stuname,age ----》备份的数据,*代表所有字段
into stubak1 ---------》新表
from stuinfo ---------》源表
6.2 备份数据时增加一个标识列,作为新表新的列
select identity(int,1,1) id,stuname,age
into stubak2
from stuinfo
--6.3 将一张表的数据备份到另一张已经存在的表中,要求两表的结构一致
--建表
create table stubak3(
stuNo int primary key,
stuName varchar(30) not null,
age int check(age between 18 and 40) not null,
sex char(4) default('男') check(sex in ('男','女')) not null,
email varchar(50) check(email like '_%@_%._%'),
addr varchar(30)
)
--备份
insert into stubak3
select *
from stuinfo