一,认识SQL数据库

  美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。

其主要特点如下:
(1)高性能设计,可充分利用WindowsNT的优势。
(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
(3)强壮的事务处理功能,采用各种方法保证数据的完整性。
(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台

二,SQL数据库的基本操作

--打开系统数据库
use master
go
--判断是否已经有这个数据库,如果有就删除
if exists(select 1 from sys.databases where name='StudentDB')
 drop database StudentDB
go
--新建数据库StudentDB
create database StudentDB
on
(
 name='StudentDB',
 filename='F:\SQL数据库\Student.mdf',
 size=5MB,
 filegrowth=20%
)
log on
(
 name='StudentDB_log',
 filename='F:\SQL数据库\StdentDB_log.ldf',
 size=5MB,
 filegrowth=20%
)
go
--打开StudentDB数据库
use StudentDB
go
-----------------------创建表-----------------------------------------------------------
--判断是否已经有这个这个表,如果有就删除
if exists(select 1 from sys.tables where name='Classes')
 drop database Classes
go
/*
* 表名: 班级表
* 作用: 存放班级数据
* 设计者: ***
* 设计说明:暂无
*/
create table Classes
(
 --班级编号
 ClassNo  varchar(8)  primary key,--主键
 --班级名称
 ClassName nvarchar(10) not null
)
go
--判断是否已经有这个这个表,如果有就删除
if exists(select 1 from sys.tables where name='Students')
 drop database Students
go
/*
* 表名: 学生表
* 作用: 存放学员信息
*/
create table Students
(
 --学号
 StudentNo  varchar(10)  not null primary key ,--主键  自增长:identity(为int类型时可以使用)
 --姓名
 StudentName  nvarchar(6)  not null,
 --性别
 StudentGender char(1)   not null,
 --生日
 StudentBirth smalldatetime not null,
 --所在班级
 ClassNo   varchar(8)  not null
)
go --判断是否已经有这个这个表,如果有就删除
if exists(select 1 from sys.tables where name='Courses')
 drop database Courses
go
/*
* 表名: 课程表
* 作用: 存放课程信息
*/
create table Courses
(
 --课程编号
 CourseNo  varchar(10)  not null,
 --课程名称
 CourseName  varchar(50)  not null,
 --先修课程编号
 CoursePrev  varchar(10)  null
) --判断是否已经有这个这个表,如果有就删除
if exists(select 1 from sys.tables where name='Achievements')
 drop database Achievements
go
/*
* 表名: 成绩表
* 作用: 存放成绩信息
*/
create table Achievements
(
 --学号
 StudentNo varchar(10)  not null,
 --课程编号
 CourseNo varchar(10)  not null,
 --成绩
 Score  decimal(5,2) not null
)
go
-------------------------------创建表约束--------------------------------------------------------------
/*学号为主键*/
alter table Students
 add constraint PK_StudentNo primary key(StudentNo)
/*性别检查约束,只能是“M”或“F”*/
alter table Students
 add constraint CK_StudentGender check(StudentGender in ('F','M'))
/*性别默认为男*/
alter table Students
 add constraint DF_StudentGender default('M') for StudentGender
/*引用班级编号*/
alter table Students
 add constraint FK_Students_Classes_ClassNo foreign key(ClassNo) references Classes(ClassNo)
go
/*社会自课程编号为主键*/
alter table Courses
 add constraint PK_CourseNo primary key(CourseNo)
/*课程名称唯一*/
alter table Courses
 add constraint UQ_CourseName unique(CourseNo)
/*先修课程引用自身表为外键*/
alter table Courses
 add constraint FK_CoursePrev foreign key(CoursePrev) references Courses(CourseNo)
go
/*学号和课程组合主键*/
alter table Achievements
 add constraint PK_StudentNo_CourseNo primary key(StudentNo,CourseNo)
/*分数在0-100之间*/
alter table Achievements
 add constraint CK_Score check(Score between 0 and 100)
/*学号外键*/
alter table Achievements
 add constraint FK_Achievements_Students_StudentNo foreign key(StudentNo) references Students(StudentNo)
/*课程外键*/
alter table Achievements
 add constraint FK_Achievements_Students_CourseNo foreign key(CourseNo) references Courses(CourseNo)
go
----------------------------添加值-----------------------------------------------------------------
--班级表(方法一)
insert into Classes(ClassNo,ClassName) values('20100301','T100')
insert into Classes(ClassNo,ClassName) values('20100308','T101')
insert into Classes(ClassNo,ClassName) values('20100322','T102')
go
--学生表(方法二)
insert into Students(StudentNo,StudentName,StudentGender,StudentBirth,ClassNo)
     select '2010030101','张强','M','1988-10-19','20100301'
 union all select '2010030102','李晓芸','F','1989-11-29','20100301'
 union all select '2010030103','程向润','M','1989-05-11','20100301'
 union all select '2010030104','吴超','M','1990-06-03','20100301'
 union all select '2010030804','蒋永涛','M','1989-10-19','20100308'
go
--课程表(方法二)
insert into Courses(CourseNo,CourseName,CoursePrev)
  select 'CTB','计算机基础',null union all
  select 'STB','软件技术基础','CTB' union all
  select 'C','程序基础和C语言实现','STB' union all
  select 'SQL BASE','SQL SERVER应用开发','STB' union all
  select 'JAVA','JAVA面向对象程序设计','C' union all
  select 'SQL ADV','SQL SERVER数据库设计和实现','SQL BASE'
go
--成绩表(方法二)
insert into Achievements(StudentNo,CourseNo,Score)
  select '2010030101','CTB',85 union all
  select '2010030101','STB',87 union all
  select '2010030101','C',90 union all
  select '2010030102','CTB',80 union all
  select '2010030102','STB',91 union all
  select '2010030102','C',82 union all
  select '2010030103','CTB',77 union all
  select '2010030103','STB',95 union all
  select '2010030103','C',84 union all
  select '2010030104','CTB',65 union all
  select '2010030104','STB',77 union all
  select '2010030104','C',95 union all
  select '2010030801','CTB',83 union all
  select '2010030801','STB',86 union all
  select '2010030801','C',91
go
--------------------------查询表-----------------------------------------------------------
select * from Classes
select * from Students
select * from Courses
select * from Achievements

以上就是SQL的基本操作

大家可以留言,因为我可能有些地方写得不是很好,也有可能有错

  

SQL数据库的基础操作的更多相关文章

  1. 安卓基础之Sqlite数据库最最基础操作

    Sqlite数据库基础操作 摘要:在应用中新建一个数据库,并创建一个数据表写入数据,然后读取表中数据并展示. 主要逻辑: 1.通过继承SQLiteOpenHelper自定义类,定制数据库的表结构,初始 ...

  2. 数据库(mysql)基础操作

    DDL(数据定义语言)------>建库,建表 DML(数据操作语言)------>对表中的记录操作增删改查 DQL(数据查询语言)------>对表中的查询操作 DCL(数据控制语 ...

  3. ADO对SQL Server 2008数据库的基础操作

    最近在学习ADO与数据库的相关知识,现在我将自己学到的东西整理写出来,也算是对学习的一种复习. 这篇文章主要说明如何遍历某台机器上所有的数据库服务,遍历某个服务中所有的数据库,遍历数据库中的所有表以及 ...

  4. SQL Server 2012 - 数据库的基础操作

    数据库基本操作 --新建数据库卡 use master go create database SchoolDB on ( Name=SchoolDB, FileName='D;\DB\SchoolDB ...

  5. SQL Server常见基础操作

    1. 常见针对表的操作(增删改查) --1. Create Table USE [MVC_000] CREATE TABLE T_TableName ( ID ,) PRIMARY KEY, Name ...

  6. SQL数据库语言基础

    表的创建: 1.创建列(字段):列名+类型 2.设置主键列:能够唯一标识一条数据 3.设置唯一:内容不能重复 4.外键关系: 一张表(从表)其中的某列引用自另外一张表(主表)中的主键列 设计表: 数据 ...

  7. sql数据库的基础语句

    1, 创建数据库 create database database-name 2, 删除数据库 drop database dbname 3, 备份sql server 创建 备份数据的device ...

  8. Python pymysql对数据库的基础操作

    示例数据库名demo,表名info select * from info; 查看该表数据 +----+-------+--------+-----+---------------------+---- ...

  9. SQL数据库入门基础

      SQL(Structure Query Language,结构化查询语言)语言是国际标准化组织(ISO)采纳的标准数据库语言. 数据库就是一幢大楼,我们要先盖楼,然后再招住户(住户当然就是数据库对 ...

随机推荐

  1. 201521123050 《Java程序设计》第5周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 答:不 ...

  2. 201521123044 《Java程序设计》第2周作业-Java基本语法与类库

    1. 本章学习总结 ·1.浮点型的不精确,不能简单的像C语言一样用float或者double来定义.在java中有更精确的BigDecimal类. 举例:BigDecimal bd1= new Big ...

  3. Windbg调试(关于句柄表的获取,32位)

    今天利用Windbg(x86)进行了获得句柄表的调试,从中获益良多,对调试步骤和按键又一次进行了熟悉,对于句柄表页的概念更是得到了进一步的清晰认识.windbg调试和句柄表不熟悉的朋友可以借鉴我的调试 ...

  4. java.lang.RuntimeException: java.sql.SQLException: Too many parameters: expected 0, was given 1 Quer

    如果出现类似这样的错误,检查一下是否sql语句和参数的位置对调了. java.lang.RuntimeException: java.sql.SQLException: Too many parame ...

  5. ExtJS4为form表单必填项添加红色*标识

    通常情况下,ExtJS4的form表单必填项在输入状态下会有特殊提示,非输入状态下,显示却和其他项没有任何区别.为使必填项更加容易区分,我们需要根据allowBlank的属性值,为form表单中的必填 ...

  6. Struts2-在js中使用struts2标签

    1, 支行是下拉列表,自助银行也是下拉列表,它们是级联关系; <tr> <th width="17%"><span>*</span> ...

  7. json-java处理-jackson

    使用jackson处理json数据 maven中的配置,这里没有写版本信息 <dependency> <groupId>org.codehaus.jackson</gro ...

  8. git fatal: I don't handle protocol 'https'问题的解决

    问题重现 新建的仓库,再把本地的代码往上push的时候Git提示 $ fatal: I don't handle protocol 'https' 问题分析 Git是支持https的,这点毋庸置疑,所 ...

  9. Netty4 学习笔记之一:客户端与服务端通信 demo

    前言 因为以前在项目中使用过Mina框架,感受到了该框架的强大之处.于是在业余时间也学习了一下Netty.因为Netty的主要版本是Netty3和Netty4(Netty5已经被取消了),所以我就直接 ...

  10. EntityFramework 6.x多个上下文迁移实现分布式事务

    前言 自从项目上了.NET Core平台用上了EntityFramework Core就再没碰过EntityFramework 6.x版本,目前而言EntityFramework 6.x是用的最多,无 ...