数据库的创设,用代码创造和删除数据库和表
分类:数据库

1、数据库简介
-》解决的问题:持久化存储,优化读写,保证数据的有效性
-》关系型数据库:
基于E-R模型(数据关系模型)
使用sql语言进行操作
-》分类:文档型sqlite,服务型
-》数据库设计
三范式:列不可拆分,唯一标识,引用主键
关系及存储:
1对1:1个对象A对应着1个对象B,1个对象B对应着1个对象A
关系可以存入A或B对象中(例如:国家规定的夫妻关系)
1对多:1个对象A对应着n个对象B,1个对象B对应着1个对象A
关系存入B对象中(学生和班级,一个班级可以有多个学生,但一个学生只许有一个班级)
多对多:1个对象A对应着n个对象B,1个对象B对应着m个对象A
关系存入新建的一个关系表中(学生和选课, 1个学生可以有多门选课,一门选课可以有多个学生)

一 :创建数据库

创建数据库,创建表,设置主键
数据库的分离和附加
MS SQLServer的每个数据库包含:
1个主数据文件(.mdf)必须。
1个事务日志文件(.ldf)必须。
可以包含:
任意多个次要数据文件(.ndf)
多个事务日志文件
文件组:可将多个数据文件逻辑的分到一组,方便日后管理维护(备份、将表建在指定的文件组上等等。)

SQLServer数据库的基础知识的回顾:

2、登录方式
-》开启服务
-》登录方式及设置
-》添加用户名
-》连接局域网中的数据库:启用TCP/IP协议

创建一个数据文件和一个日志文件(MySchool)

--1.创建一个数据库(直接创建一个数据库,没有设置任何特殊选项,都是使用默认的。)

  1)主数据文件:*.mdf

3、界面操作
-》数据库:创建,删除,分离,附加,生成脚本(架构,数据)
-》表:创建、修改、删除
字段类型介绍:int,bit,datetime,decimal(5,2),char/varchar/nvarchar
字符串类型n的区别:有n表示unicode编码,每个字符占一个字节;
没有n表示非unicode编码,英文或数字占一个字节,中文占两个字节
字符串类型var的区别:有var表示可变长度
没有var表示不可变长度,如果长度不够,会在末尾补空格
如果选择int值时,可以设置标识:此列的值为系统帮助维护,更轻松的实现唯一标识
-》约束:实现数据的有效性检查
主键,非空,惟一,默认,检查,外键
-》示例:
班级表ClassInfo(编号cId,名称cTitle nvarchar(10))
学生表(编号,姓名,性别,出生日期,电话,邮箱,班级)

create database MySchool
on primary      --默认属于primary主文件组,可省略
(
--数据文件的具体描述

create database MyDatabase2;

      2)次要数据文件:*.ndf

4、脚本操作
-》不区分大小写,字符串使用单引号,末尾不需要加分号
-》按照功能分类:
DDL:数据定义语言,用于进行各种数据库对象的创建,主要操作包括create、alter、drop
DML:数据管理语言,用于对表数据的添加、修改、删除、查询,主键操作包括insert、update、delete、select
DCL:数据控制语言,用于进行权限分配等
-》注释:--单行注释,/**/多行注释
-》数据库:创建、删除
可以通过查看master数据库中的sysdatabases表,来了解当前存在的数据库
create database 数据库名
on primary
(
name='stuDB_data', -- 主数据文件的逻辑名称
filename='D:stuDB_data.mdf', -- 主数据文件的物理名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15%--主数据文件的增长率
)
log on
(
name='stuDB_log',
filename='D:stuDB_log.ldf',
size=2mb,
filegrowth=1mb
)

name = 'MySchool_data'    --主数据库文件的逻辑名称
filename = 'D:projectMySchool_data.mdf', --主数据库文件的物理名称
size = 5MB,     --主数据库文件的初始大小
maxsize = 100MB,     --主数据库文件增长的最大值
filegrowth = 15%     --主数据文件的增长率

--2.删除数据库

  3)日志文件:*.ldf

)
log on
(
--日志文件的具体描述,各参数含义同上

drop database MyDatabase2;

  每个数据库至少要包含两个文件:一个数据文件和一个日志文件

name = 'MySchool_log',    --主数据库文件的逻辑名称
filename = 'D:projectMySchool_data.ldf', --主数据库文件的物理名称
size=2MB,     --主数据库文件的初始大小
filegrowth = 1MB    --主数据文件的增长速度

--msSqlServer不区分大小写

 如何查看SQL Server的帮助==================快捷键F1

)
go

DROP DATABASE MYSECONDDATABASE2;

 

 

--3.创建数据库的时候设置一些参数选项

一、创建文件夹 

创建多个数据文件和多个日志文件(employees)
create database employees
on primary
(
--主数据库文件的具体描述
name='employee1',
filename='D:projectemployee1.mdf',
size=10,
filegrowth=10%
),
(
--次要数据库文件的具体描述
name='employee2',
filename='D:projectemployee2.mdf',
size=20,
maxsize=100,
filegrowth=1
)          
log on
(
--日志文件1的具体描述
name='employeelog1',
filename='D:projectemployee1_log.ldf',
size=10,
maxsize=50,
filegrowth=1
),
(
--日志文件2的描述
name='employeelog2',
filename='D:projectempolyee2_log.ldf',
澳门新萄京,size=10,
maxsize=50,
filegrowth=1
)
go

create database MyDatabase2

exec sp_configure 'show advanced options',1

 

on primary --配置主数据文件的选项

go

 

(

reconfigure

二:删除数据库
数据库的创设,用代码创造和删除数据库和表。usr master
if exists(select * from sysdatabases where name='....')
drop database ......

name='MyDatabase2', --主数据文件的逻辑名称

go

 

filename='F:DATABASE1MyDatabase2.mdf', --主数据文件的实际保存路径

exec sp_configure 'xp_cmdshell',1

 

size=5MB, --主文件的初始大小

go

三:创建和删除表

maxsize=150MB, --最大容量

reconfigure

use MySchool    --在Myschool中创建表
go

filegrowth=20% --以20%扩容

go

create table Student
(
StudentNo int not null.   --学号,int 类型,不允许为空
LoginPwd nvarchar(50) not null,  --密码 nvarchar类型,不允许为空
StudentName nvarchar(50) not null, --名字,nvarchar类型,步允许为空
Sex bit not null,   --性别,取值0或1
Email nvarchar(20)   --邮箱,可为空
)
go

)

exec xp_cmdshell 'mkdir E:新建文件'

删除表
use MySchool
go
if exists(select * from sysobjects where naem='Student')
drop table Student
  
                                                                                                                                                                                                                                                                                                                                                                                                  
四:创建和删除约束
主键约束(Primary Key Constraint)
非空约束(Not Null)
唯一约束(Unique Constaraint)
检查约束(Check Constaraint)
默认约束(Default Constaraint)
外建约束(Foreign Key Constarint):用于在两表之间建立关系,需要指定引用主表的哪一列

log on --配置日志文件的选项

go

alter table 表名
add constraint 约束名  约束类型  具体的约束说明

(

 

例:
--添加主键约束
alter table Student
add constraint PK_StudentNo Primary Key(StudentNo)

name='MyDatabase2_log', --日志文件的逻辑名称

二、创建数据库

--添加唯一约束
alter table student
add constraint UQ_IdentityCard unique(IdentityCard)

filename=' F:DATABASE1MyDatabase2_log.ldf', --日志文件的实际保存路径

1.例子: 

--添加默认约束
alter table Student
add constraint DF_Address default('地址不详') for address

size=5mb, --日志文件的初始大小

 --判断,如果有这个数据库则进行删除

--添加检查约束
alter table Student
add constraint CK_BornDate checke(BornDate>='1980-01-01')

filegrowth=5mb --超过默认值后自动再扩容5mb

if exists(select * from sysdatabases where name='MySchool')

--添加外键约束(Result是从表,Student是主表)
alter table Result
add constraint FK_StudentNo
foreign key(StudentNo) references Student(StudentNo)
go

)

begin

删除约束
alter table 表名
drop constraint 约束名

--在数据库中创建一个表

drop database MySchool

例:删除学生表中的默认约束
alter tablte Student
drop constraint DF_Address

use MyDatabase2 --将代码环境切换到MyDatabase2下

end 

怎样向已存在数据的表中添加约束
alter table Employee with nocheck ( whit nocheck不向已存在的数据约束)
add constraint

create table Departments ---创建表,设置表中列

 --创建数据库

向已存在的数据表中插入一列
alter table 表名
add 列名 数据类型  null

(

create database MySchool

 

AutoID int identity(1,1) primary key, --自增 主键

on primary

 

DepartmentName nvarchar(50) not null -- 可变长度,每个字符占用两个字节 最多50个字节

(

在数据库中用SQL语句创建文件夹(例:在E盘创建一个project文件夹)

)

--数据文件的具体描述

exec sp_configure 'show advanced option',1

--通过代码,删除MyDatabase2 数据库下的某些表

 name='MySchool_data',                 --主数据文件的逻辑名称 必须写

go

use MyDatabase2

 filename='E:MySchool_data.mdf',   --主数据文件的物理名称 必须写

reconfigure

drop table Departments

 size=5mb,                                 --主数据文件的初始大小

go

---创建一个员工表
--<员工表>:员工Id,身份证号,姓名,性别,入职日期,年龄,地址,电话,所属部门、Email
create table Employees
(
EmpID int identity(1,1) primary key,
EmpIDCard varchar(18) not null,
EmpName nvarchar(50) null,
EmpGender bit not null,
EmpJoinDate datetime,
EmpAge int,
EmpAddress nvarchar(300),
EmpPhone varchar(100),
DeptID int not null,
EmpEmail varchar(100)
)

  maxsize=100mb,                      --主数据文件增长的最大值

exec sp_configure 'xp_cmdshell',1

drop table Employees

  filegrowth=15%                       --主数据文件的增长率

go

)

reconfigure

log on

go

 (

exec xp_cmdshell 'mkdir D:project'

--日志文件的具体描述,各参数含义同上

 

name='MySchool_log',

 filename='E:MySchool_log.ldf',

 size=2mb,

filegrowth=1mb

 )

 go

三、创建表

 2 use MySchool --将当前数据库设置为MySchool,以便在MySchool里创建表

 3 go

 4 --判断是否存在表,存在则删除

 5 if exists (select * from sysobjects where name='Student')

 6 drop table Student

 7---创建Student表

 8 create table Student   

 9 (

10  StudentNo int identity(1,1)  primary key not null,  --学号 自增 主键,非空

11  loginpwd nvarchar(20) not null,

12  StudentName nvarchar(20) not null,

13  Sex bit default'女' not null,      --性别,取值0,1

14  GradeId int not null,

15  Phone nvarchar(50) null,

16  Address nvarchar(100) null,

17  BornDate datetime not null,

18  Email nvarchar(20) null,

19  IdentityCard varchar(18) not null

20  )

21 go

四、创建约束

 

语法:

 

 1 alter table 表名

 

2 add constraint 约束名 约束类型 具体的约束说明 

 

 

例子:

 

1、添加默认约束(默认'地址不详')

 

1 alter table Student

 

2 add constraint df_address default('地址不详') for address

 

 

2、添加检查约束(要求出生在1996年10月26日)

 

1 alter table Student

 

2 add constraint ck_BornDate check (BornDate >='1996-10-26')

 

 

3、添加唯一约束(身份证全世界只有一个)

 

 1 alter table Student

 

2 add constraint uq_IdentityCard unique (IdentityCard) 

 

 

 

4、添加主键约束

 

 1 alter table Student

 

2 add constraint pk_StudentNo primary key(StudentNo) 

 

 

5、添加外键约束(主表 Student 和从表 REsult建立关系,关联列StudentNo)

 

1 alter table Result

 

2 add constraint fk_StudentNo

3     foreign key(StudentNo) references Student (StudentNo)

 

五、sql操作数据库数据的实现(增、删、查、改)

 

(一)插入数据

 

语法:

 

        insert  into  目标表(新表)

 

        select '列名' union

 

eg

 

        insert  into  card(ID,password)

 

        select  ‘0023-ABC’,‘ABC’  union

 

(二)增加数据

 

语法:

 

    insert   into   表名

 

    values (‘   ’,‘     ’)

 

eg

 

    insert  into  card

 

    values (‘0023-ABC’,‘ABC’)

 

(三)修改数据

 

语法:

 

     update   表名     set    行名

 

     where     列名

 

eg

 

    update   card    set     password=‘pwd’

 

    where ID=‘0023-ABE’

 

(四)删除数据

 

语法:

 

     delete   from   表名

 

     where   行名

 

eg

 

    delete   from   card

 

    where   ID=‘0023-ABE’

 

(五)查看数据

 

语法:

 

     select  *   from   表名  

 

eg

 

    select  *   from  student

 

本文由澳门新萄京发布于数据库,转载请注明出处:数据库的创设,用代码创造和删除数据库和表

上一篇:澳门新萄京:多少个表上的多少个触发器实践顺 下一篇:没有了
猜你喜欢
热门排行
精彩图文