数据库整理



数据库笔记

创建一数据 至少 添加了两个文件 .mdf主文件和.ldf日志文件

管理系统 

一个系统创建一个数据库datebase

便于个性化管理 避免命名冲突 安全性更高

表是由行和列组成的 一个表表示一个实体或一个对象的集合

列:又叫做字段或属性 用来描述实体的,列用来表示实体的特征

数据库中 新建表table 打开表设计器

数据类型

char 定长的字符 不足长用空格字符补齐

vrchar 可变的char类型 不会补空格

在这里 不加n时候 一个汉字占两个字符位

若加在数据类型前n  一个英文字母占两个字符空间 其他语言则占一个

image text ntext datetime int smallint money Bit

主键primary key 用唯一确定的一行作为索引 有两种 业务主键 逻辑主键

数据冗余 (重复)

缺点:浪费空间  修改时麻烦易出错

解决办法 拆分成两个关系的表(外键foreign key)(把一个[]表的主键作为另一个[]表的字段)

自增identity1,1

SQL语句入门  

大小写不敏感主要分类 

DDL数据定义语言 creat  drop alter  

DML数据操作语言 insert update delete

DQL数据查询语言 select 

DCL数据库控制语言 grant授权  revoke取消授权commit rollback

创建数据库 create datebase 数据库名  on primaryname,filename,size,filegrowthlog on( )

删除数据库 use master drop datebase 数据库名

创建表create table class(类型名 字段名 相关的约束)

删除表drop table 表名 

 

 

查询select*from 表名 where 条件

逻辑运算符 <> and or not

插入数据 insert into表名(列名1,列名2values(1,值2)

更新数据 up date 表名 set 要更新的字段=,要更新字段=2 where 条件

数据删除 delete from 表名 (drop不同 不删除表格式;另truncate可删除自动编号) where 条件

重新初始化表 truncate table 表名

 

添加约束 

保证数据的完整(正确)性而实现的一套机制

主键约束(PKprimary key constraint   唯一且不为空

唯一约束(UQunique constraint  唯一 允许为空 但只能出现一次

默认约束(DFdefault constraint 默认值

检查约束(CKcheck constraint 范围以及格式限制

外键约束(FKforeign key constraint 表关系

约束删除 drop 

alter table 表名

add 约束名 constraint primary key(约束名)

select 

top 取得前几项

distinct 

 

排序

最大值 

最小值

count行数

sum 求和

 

too通配符 %  _   [ ]  [^9]

分组 group by

having 对结果进行查询

连接 union union all

插入一个表或一个结果集 可用union all

也可insert  into student_temp select *from student

复制一个表select*into class_temp from studetent where   sage>=20

select identity_insert studen_temp on

 

安全 快速 准确

一些字符串函数

查找 1,2中的位置,X是起始位置 charindex(字符串1,字符串2X

查字符串长度 select 列名  ,len(列名) as'字符长度' from 表名

lower()转大写 upper()转小写 

ltrin() rtrun() 去左边或右边空格

从右到左取n个字符 select right('-----',n)

从左到右取n个字符 select left('-----',n)

替换 replace(AFDAB’,‘B’,'C')A中的B替换成C

替换指定位置字符select  stuff(A,n,n+x,B) A中的n开始到n+x个字符替换成

截取字符 substring (A,n,x)A的第n个开始,截取x长度的字符串

 

一些日期函数

 取得当前的系统日期 select getdate()

为当前时间添加指定时间段select dateadd(dd,10,getdate())

指定两个日期的间隔select datediff (datepart,startdate,enddate)

求用户年龄 select datediff (yy,birthday,getdate())

日期的某一部分 datename (datepart ,date) datepart==year ,day,quarteryear ,month...

 

数据类型转换

+连接左右类型有一个为int则全是int 

cast(转换前 as 转换后)

convert (转换前,转换后)

declare

空值的处理

isnull(表达式,值当表达式为空时,返回 值 ,非空则返回表达式本身值

 

数学函数

abs 绝对值

ceiling  最小数的最小整数

floor 最小数的最小整数

power 幂值

round 四舍五入 控制精度

sign 正数负数1

sqrt  浮点

 

 

变量

局部变量 全局变量

局部变量是用户定义的变量 一般以@开头

定义语法 declar @变量名 数据类型

变量赋值set,select

变量输出

1.print文本形式输出在消息中 多个变量要用+,

2.select表格形式

 

全局变量@@开头 系统定义的 只能读取 不能修改

@@error 记录的是最近一次执行语句错误号 可提示是否执行成功

@@identity 最后一次插入的标识值

@@language 当前使用的语言的名称

@@max-connections 可以同时创建的最大连接数

@@rowcount 受上一个语句影响的行数

@@servername

 

分支语句

一、if ()begin end

if(exists())begin end

case

case 

when 条件1then 1

when 条件2then 2

when 条件3then 3

二、事物Transaction

三、存储过程 procedure(相当于c#中的方法)

建立过程 creat procedure 过程名 begin 执行语句 end 

返回值 return

四、Raiserror

 (msg_id|msg__str,severity,state With option[,.....n]

五、触发器

 

 

六、数据库设计

 

--创建一个叫myschool的数据库

create database myschool 

on primary

(

name='myschool',

filename='d:\data\myschool.MDF',

SIZE=3MB,

FILEGROWTH=10%

)

log on

(

name='myschool_LOG',

filename='d:\data\myschool_LOG.lDF',

SIZE=3MB,

FILEGROWTH=15%

)

use myschool

GO

CREATE TABLE CLASS

(

CID INT IDENTITY (1,1)PRIMARY KEY,

CNAME VARCHAR(10) NOT NULL,

CDESCRIPTION NVARCHAR(40)

)

create table student 

(

sid int identity(1,1) primary key ,

sname varchar(10) not null,

sage int not null,

sno varchar(4) ,

ssex nvarchar(4) not null,

sbirthday date,

sphone varchar(18),

saddress nvarchar(40)

)

 

create table teacher

(

tid int identity(1,1) primary key ,

tname nvarchar(10)not null,

tage int not null,

tphone nvarchar(18) ,

salary money 

)

create database MYcompany

on primary

(

name ='mycompany',

filename= 'd:\data\mycompany.mdf',

size=5MB,

filegrowth=1mb

)

log on

(

name='mycompany_LOG',

filename='d:\data\mycompany_LOG.lDF',

SIZE=3MB,

FILEGROWTH=15%

)

create table department

(

did int identity primary key,

dname varchar(10) not null

)

create table  employee

(

eid int identity primary key,

ename  varchar(10)not null,

esex  nvarchar(2) not null,

eage int,

esalary  money

)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值