哎~~~~~和两天听老师讲课是这个状态,有点晕晕的感觉,有点乱,总结一下吧 希望你不要看的晕倒!
--新建数据表
create table T_Order (FID int not null,FNumber varchar(50) not null,Fprice numeric(10,2)
not null,FCustomerId int,FTypeId int not null,primary key(FId));
--删除表格
drop table T_Order;
--添加字段(一列)(修改)
alter table T_Order add FName varchar(20) not null;
--删除字段(一列)(修改)
alter table T_Order drop column FName;
--修改某列的类型
alter table T_Class alter column FclsName int;--将FclsName的类型转换
--增加一列
alter table Employees add EmpDepmId int
--删除一列
alter table Employees drop column EmpAds
--插入记录
insert into T_Order(FId,FNumber,FPrice,FTypeId) values(1,'K001',100.00,1);
insert into T_Order(FId,FNumber,FPrice,FCustomerId,FTypeId) values(2,'K002',200.00,1,1);
insert into T_Order(FId,FNumber,FPrice,FCustomerId,FTypeId) values(3,'K003',300.00,1,2);
--删除表的内容(一行)
delete from T_Order
where FId=1;
--修改表内容
update T_Order set FPrice=300.00
where FId=1;
--筛选数据select
--查询FCustomerId=1的订单号
select FNumber as '订单号' from T_Order
where FCustomerId=1;
--修改某列的类型
alter table T_Class alter column FclsName int;--将FclsName的类型转换
--为自动编号插入数据
set identity_insert T_Teather on
insert into T_Teather(FteaId,FteaAge) values(9,29);
set identity_insert T_Teather off
--一次插入好多数据union(考虑重复) / union all(不考虑重复)
insert into T_Teather
select 'Chris',1,20,1500,'1999-9-9' union
select 'Jim',1,20,1500,'1999-9-9' union
select 'tom',1,20,1500,'1999-9-9' union
select 'Danny',1,20,1500,'1999-9-9'
--还插入四行数据
--备份数据 讲一个表中的数据备份到另一个表中
--将T_Teather表中的数据备份到另外一个表NewT_Taether(不存在)中
select * from T_Teather
select * into NewT_teather from T_Teather
--前提 NewT_Teather不存在,如果存在就会报错
--向一个已存在的表中传数据,数据的来源是另一张表
insert into NewT_teather(FteaAge,FteaBirthday)
select FteaAge,FteaBirthday from T_Teather
--在写SQl语句的时候,如果有字符串常量在前边加上N
insert into T_Teather(FteaName)values(N'小明');
--跨数据访问:数据库名..表名
use TextSchool
select * into myteacher from School..T_Class;
--建数据库
create database School
on primary
(
name='School',
size=10mb,
filename='E:\SQL 作业与练习\School.mdf',
filegrowth=10,
maxsize=100mb
)
log on
(
name='School_log',
filename='E:\SQL 作业与练习\School_log.ldf'
)
--运算符的优先级 not>and>or
--删除表
truncate table T_taether
--delete from 和 truncate table 删除表的区别
--(1) delete 不能使自动编号返回为起始值 但是truncate 能使自动增长的值返回为默认的种子
--(2) truncate 只能一次清空 不能按条件清除 delete 可以按条件清除 部分记录
--(3) truncate 清空数据表的性能 要比 delete 快的多得多
--(4) truncate 不会记录到 系统日志 不会触发delete 触发器
--增加一列
alter table Employees add EmpDepmId int
--删除一列
alter table Employees drop column EmpAds
--添加[主键约束]
alter table Employees add constraint PK_Employees_EmpId primary key(EmpId)
--为EmpName增加一个非空约束(要先建非空约束,再建唯一约束)
alter table Employees alter column EmpName varchar(50) not null
--为EmpName增加唯一建约束
alter table Employees add constraint UQ_Employees_EmpName unique(EmpName)
--删除唯一建
alter table Employees drop constraint UQ_Employees_EmpName
--为性别增加默认约束,使默认值为‘男’
alter table Employees add constraint DF_Employees_EmpGender default('男') for EmpGender
--修改表的字段
alter table Employees drop column EmpDpmId
alter table Employees add EmpDepId int
--修个数据类型
alter table Employees alter column EmpEmail varchar(200)
--位年龄增加检测约束 0-120含0和120
alter table Employees add constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120)
--为性别增加检测约束 非男即女
alter table Employees add constraint CK_Employees_EmpGender check(EmpGender='男' or EmpGender='女')
--为员工表增加外键约束
--首先设置部门表中的DepId为主键
alter table Department add constraint PK_Department_DepId primary key(DepId)
--增加外键约束
alter table Employees add constraint FK_Employees_EmpDepId foreign key(EmpDepId) references Department(DepId)on delete cascade
--删除外建关系
alter table Employees drop constraint FK_Employees_EmpDepId
--为员工表增加外键约束
--首先设置部门表中的DepId为主键
alter table Department add constraint PK_Department_DepId primary key(DepId)
--增加外键约束
alter table Employees add constraint FK_Employees_EmpDepId foreign key(EmpDepId) references Department(DepId)on delete cascade
--删除外建关系
alter table Employees drop constraint FK_Employees_EmpDepId
--一条语句删除多个约束,约束名用逗号隔开
alter table Employees drop constraint FK_Employees_EmpDepId,CK_Employees_EmpAge,UQ_Employees_EmpName
--一条语句为表增加多个约束
alter table Employees add constraint UQ_Employees_EmpName unique(EmpName),constraint CKSSS check(EmpAge>=0 and EmpAge<=120)
--select后可以更几个表达式,而不是from....
select '哈哈','嘿嘿','呵呵'
--top, Distinct(去掉重复数据)
--获取年龄最大的前五名
--首先要排序
select top 5 * from MyStudents order by FAge desc
select distinct uname,ugender from Text