--使用SQL最简单备份,还原数据库:
1、备份:backup database Test to disk='D:/Test.bak'
2、还原:restore database Test from disk='D:/Test.bak'
DDL:数据定义语言。包括:alter、drop、add、create
--DML:数据操作语言。包括:insert、update、delete
--DCL:数据控制语言。
1、--修改表的结构,将age列删除
alter table Emp drop column age;
2、--修改表的结构,增加age列
alter table Emp add age int;
3、--修改表的结构,给Emp中的id列加一个非空约束
alter table Emp alter column id int not null;
4、--修改表的结构,给Emp表的id列加一个主键约束
alter table Emp add constraint PK_Emp_id primary key(id);
5、--修改表的结构,给Emp表的name列加一唯一约束
alter table Emp add constraint UQ_Emp_name unique(name);
6、--修改表的结构,给Emp表的age列加一个检查约束,只允许年龄介于0到120之间
alter table Emp add constraint CK_Emp_age check(age>=0 and age<=120);
7、--修改表的结构,给Emp表的gender列加一个检查约束,只允许输入'男'或'女'
alter table Emp add constraint CK_Emp_gender check(gender='男' or gender='女');
8、--修改表的结构,给Emp表的DepId加一个外键约束(为什么要加?加了后这个列就不能随便输入,必须要是主键表中的主键列存在的数据)
alter table Emp add constraint FK_Emp_DepId foreign key(DepId) references Dep(id);
9、--修改表的结构,给Emp表的gender列加一个默认约束,默认为'女';
alter table Emp add constraint DF_Emp_gender default('女') for gender;
10、--修改表的结构,将Emp表中的gender列的所有约束删掉(目的是为下面的修改gender数据类型做准备)
alter table Emp drop constraint DF_Emp_gender;
alter table Emp drop constraint CK_Emp_gender;
A、--修改表的结构,将Emp表中的gender修改为bit类型
alter table Emp alter column gender bit;
B、--修改表的结构,将Emp表中的所有约束一块删除(一个sql全部删除)
alter table Emp drop
constraint PK_Emp_id,
constraint FK_Emp_DepId,
constraint UQ_Emp_name,
constraint CK_Emp_age;
--修改表的结构,一次性给Emp表加一堆约束
alter table Emp add
constraint PK_Emp_id primary key(id),
constraint FK_Emp_DepId foreign key(DepId) references Dep(id),
constraint UQ_Emp_name unique(name),
constraint CK_Emp_age check(age>=0 and age<=120);
--机器--汇编--面向过程的语言(C语言)-- 面对对象的语言(java、c++、php)--自然语言(给我添加一个员工)
C、--修改表的结构,给Emp表设置一个外键约束,并且是级联删除
alter table Emp add
constraint FK_Emp_DepId foreign key(DepId) references Dep(id) on delete cascade;
D、--以上都是在表创建完之后修改表的结构,下面需要在创建表的同时(也就是说这个表正在设计还没保存)增加约束
E、--创建一个员工表,同时增加以上的约束
create table Emp2
(
id int identity(1,1) constraint PK_Emp2_id primary key ,
name nvarchar(100) constraint UQ_Emp2_name unique not null,
age int constraint CK_Emp2_age check(age>=18 and age<=60) not null,
gender nchar(1) constraint CK_Emp2_gender check(gender='男' or gender='女') constraint DF_Emp2_gender default('女'),
DepId int constraint FK_Emp2_DepId foreign key references Dep(id)
);
更改 字段的数据类型
Alter Table TB_ITM_ITEM
alter column is_timing int NULL;
新增字段:
alter table WeiboSmartCategorySetting add AccountLevelMaxFilter int null
更改字段长度
alter table TB_ITM_ITEM alter column input_pids nvarchar(200)
将某个int(bigint)型的字段变为自增字段
ALTER TABLE TB_ITM_PROMOTION DROP COLUMN Id //先把这个非自增的字段drop掉。
ALTER TABLE TB_ITM_PROMOTION ADD Id bigint IDENTITY (1,1) NOT NULL //再新增一个自增字段,
如果将一个字段直接改成自增,会出错。
SQL ALTER TABLE 语句
ALTER TABLE 语句
ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
SQL ALTER TABLE 语法
如需在表中添加列,请使用下列语法:
ALTER TABLE table_name
ADD column_name datatype
要删除表中的列,请使用下列语法:
ALTER TABLE table_name
DROP COLUMN column_name
注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。
要改变表中列的数据类型,请使用下列语法:
ALTER TABLE table_name
ALTER COLUMN column_name datatype
原始的表 (用在例子中的):
Persons 表:
Id | LastName | FirstName | Address | City |
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
SQL ALTER TABLE 实例
现在,我们希望在表 "Persons" 中添加一个名为 "Birthday" 的新列。
我们使用下列 SQL 语句:
ALTER TABLE Persons
ADD Birthday date
请注意,新列 "Birthday" 的类型是 date,可以存放日期。数据类型规定列中可以存放的数据的类型。
新的 "Persons" 表类似这样:
Id | LastName | FirstName | Address | City | Birthday |
1 | Adams | John | Oxford Street | London | |
2 | Bush | George | Fifth Avenue | New York | |
3 | Carter | Thomas | Changan Street | Beijing |
改变数据类型实例
现在我们希望改变 "Persons" 表中 "Birthday" 列的数据类型。
我们使用下列 SQL 语句:
ALTER TABLE Persons
ALTER COLUMN Birthday year
请注意,"Birthday" 列的数据类型是 year,可以存放 2 位或 4 位格式的年份。
DROP COLUMN 实例
接下来,我们删除 "Person" 表中的 "Birthday" 列:
ALTER TABLE Person
DROP COLUMN Birthday