04 SqlServer

数据库的注释 –(两个横线)

主键表 外键表

 

主键,组合主键

 

SqlServer

使用附加

 

权限

 

主文件mdf

日志文件ldf

 

 

数据类型

 

char varchar nchar nvarchar

char(4)    固定   存的4个字母2个汉字 不足用空格

varchar(4) 不固定 存4个字母2个汉字 不会用空格补

nchar(4)   固定   存4个汉字4个字母 不足用空格

nvarchar(4) 不固定 存4个汉字4个字母 不会用空格补

 

带var的变长、不用空格补

带n的表示unicode字符集,所有字符用两个字节表示,存的字母和汉字一样多

 

通过sqlserver脚本来实现分离和附加数据库

 

数据库的插入

修改 update set..

删除 delete from class

     drop table

truncate table class –

truncate 主要nb的地方是会把自动编号重置

如自增的主键

 

新增和修改

 

约束——保证数据的完整性

 

 

 

约束—保证数据完整性

·先用设计器创建约束、再用代码创建约束

·数据库约束是为了保证数据的完整性(正确性)而实现的一套机制,见文件Employee.sql

 

·非空约束 不让改的时候就工具选项,干掉勾

·主键约束

IDENDITY(标识规范)

IDENTITY(1,1)中,第一个1代表标识列的第一行的值,第二个1代表每次增长1,也就是说标识列的第二行值是2,以此类推。

·唯一约束

右键索引

·默认约束

·检查约束

·外键约束

 

 

 

 

 

 

 

数据库

前天内容复习

 

主键---每个表都应该有一个主键

业务主键 逻辑主键 组合主键

A表有主键,B表也有主键,B表中使用了A表中的主键作为一列 B表是外键表 A表是主键表

 

创建数据库 ,Create database on primary() log on()

创建表 ,Create table 表名()primary key,not null

数据类型 ,bit true false 1,0, 添加时间数据,用单引号 引起来

char(2),一个汉字,两个字母,

varchar(2),一个汉字,两个字母,

nchar(2),两个汉字,两个字母

nvarchar(2),两个汉字,两个字母

 

drop 与 truncate

truncate 删除后主键从默认值开始

 

6种约束,保证数据的完整性

非空约束,主键约束,唯一约束,默认约束,检查约束,外键约束

 

 

删除一列

alter table Employees drop column EmpAddress

添加一列

alter table Employees add EmpAddr varchar(100)

 

--手动修改一下EmpEmail的数据类型(varchar(200))

alter table Employees alter column EmpEmail varchar(200)

 

--为EmpId添加一个主键约束

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 add constraint DF_Employees_EmpGender default('男') for EmpGender

 

--为年龄增加一个检查约束,年龄必须在1-120岁之间

alter table Employees add constraint CK_Employees_EmpAge check(EmpAge>=1 and EmpAge<=120)

 

--增加外键约束

alter table Employees add constraint FK_Employees_Department_DepId

foreign key(DepId) references Department(DepId)

 

 

select GETDATE();

--查询所有的数据中的前10条数据

select top 10 * from student

 

--按照年龄从小到大排序

select * from student order by TSAge asc

 

--从大到小排序

select top 10 percent * from student order by TSAge desc

 

--去除重复

select distinct TSName from student;

 

聚合函数

·SQL聚合函数

 

MAX(最大值),

MIN(最小值)

 

 

 

min sum avg…..

 

select MAX(tsenglish) as 英语最高成绩,MIN(tsenglish) as 最低成绩,SUM(tsenglish)as 总和,AVG….

 

In Between和and

查询以张开头的所有名字

select * from student where TSName like '张%'

查询以张开头的名字,只有两个字

select * from tblstudent where TSName like ‘张__’

查询的是以张开头的名字,三个字

select * from Tblstudent where tsName like ‘张%’ and LEN(tSName) = 3

查询以张开头的名字中有字母的,三个字

select * from Tblstudent where tSname like ‘张[a-z]%’

 

select * from TblStudent where

 

查询里面就带百分号的

select * from TblStudent where TSname like ‘张[%]%’

 

 

名字里没有数字 并且就三个字

 

 

 

分组

having是在分组后进行筛选用的

 

转换

--第一种

select ‘当前时间’ +CAST(GETDATE() as varchar(20))

--第二种

select ‘当前时间’ +CONVERT(varchar(20),GETDATE(),109)

 –这里按f1查看支持的type,这里type为109

union合并

默认有distinct功能

 

而union all 是没有的

 

 

 

 

 

 

select LOWER('HELLO') --转小写

select UPPER('word') --转大写

 

select LTRIM('       哈哈,不再相信爱情了')

select RTRIM('呵呵哒           ')

select RTRIM LTRIM('     a       ')

--没有直接trim

 

 --获取几年

select DATEDIFF(YEAR,'2010',GETDATE())

 

--获取时间的某个部分

select DATEPART(year,getdate())

 

--添加数据的同时,获取该餐桌的id(主键)

--在数据库中@@开头 全局变量

insert into DeskInfo values(‘1好餐桌’,’pinyin’,0,’123’);select @@identity;      

insert into Class(DeskName,DeskNamePinYin) output inserted.DeskId,inserted.cName vales()

 

posted @ 2018-02-28 17:30  hh9515  阅读(134)  评论(0编辑  收藏  举报