关系数据库——sql基础1定义

关系数据库标准语言SQL

基本概念

  1. SQL语言是一个功能极强的关系数据库语言。同时也是一种介于关系代数与关系演算之间的结构化查询语言(Structured Query Language),其功能包括数据定义、数据查询、数据操纵和数据控制

  2. SQL的特点:

    1)综合统一:集数据定义、数据查询、数据操纵和数据控制等多种功能于一体。

    2)高度非过程化 :面对象的设计

    3)面向集合的操作方式 :操作对象是集合,并且操作结果也是集合

    4)两种使用方式,统一的语法结构 :既是一种独立的语言,又是一种嵌入式的语言,(嵌入式是指嵌入别的高级语言)。

    5)简洁易学

数据库的创建与基本概念

一、创建数据库:

代码:

create database Student;        --创建数据库
use Student;                    --使用数据库
drop database Student;          --删除数据库

注意:

1)两种注释方式:(1)两个减号--,注释单行 (2)/* */注释多行

2)不能再当前数据库删除当前数据库

数据类型:

201902279

注意:

1)一个属性采用何种数据类型由两部分决定:(1)该属性的取值范围;(2)该属性做何种运算。

模式的创建与删除

模式,一个独立于数据库用户的非重复命名空间,在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。

代码:

/** 创建模式zhang,下键表student*/
create schema zhang
	create table student
	(
		Sno char(9) primary key,
		Sname varchar(20) unique,
		Ssex char(4) not  null,
		Sage smallint,
		Sdept varchar(5)		
	);

/** 删除模式中的表*/
drop table zhang.student;

/** 删除模式*/
drop schema zhang;    --注意前提该模式下无对象

注意:

1)删除模式的时候首先应当将模式下的所有对象删除,才能删除该模式

2)在删除某个非dbo模式下的表时,需要加模式名

3)该模式不是三级模式两级映像中的模式,而是相当于一个命名空间(主要可以解决重名的问题)

4)CASCADE(级联):删除模式的同时把该模式中所有的数据库对象全部删除(SQL Server不支持)

5)RESTRICT(限制):只有当该模式中没有任何下属的对象时才能执行

表的定义、删除与修改

一、创建表(三张):(1)学生表(Student)(2)课程表(Course)(3)学生课程表(SC)

1)学生表(Student)

 代码:

/** 未添加数据*/
create table student
(
	Sno char(9) primary key,          --primary key   指示主码
	Sname varchar(20) unique,         --unique        指示值唯一,
	Ssex char(4) not  null,           --not null      该值非空
	Sage smallint,
	Sdept varchar(5)	
);

2)课程表(Course)

201903132

代码:

/** 创建课程表*/
create table Course
(
	Cno char(2) primary key,
	Cname varchar(10) unique,
	Cpno char(2),                --Cpno是外码,参照的是自身的Cno
	Ccredit smallint,
	foreign key (Cpno) references Course(Cno)     --外码
);

3)学生-课程表

 

代码:

/** 创建学生-课程表*/
create table SC
(
	Sno char(9),
	Cno char(2),
	Grade int,
	primary key(Sno, Cno),            --多个属性列构成主码,写在最后
	foreign key(Sno) references student(Sno),    --外码, 每个外码写一行
	foreign key(Cno) references Course(Cno)
);

注意:

1)创建表的时候需要考虑三个完整性约束条件:实体完整性,参照完整性,用户自定义完整性

2)两种完整性约束条件的定义方式:

  • 列级完整性约束条件:涉及相应属性列的完整性约束条件,在属性列的后边定义。

  • 表级完整性约束条件:涉及一个或多个属性列的完整性约束条件 ,在将属性列完之后定义。

3)外码要和所参照的主码类型相同。表级完整性约束的时候属性列需要加括号。

二、修改表

增加列

alter table student add graduation date;
/*
1. 指定要修改的表
2. add关键字
3. 新增列的属性名
4. 新增列的数据类型
*/

删除列

alter table student drop column graduation;

修改列的数据类型

alter table student alter column graduation varchar(20); 

增加约束

/*这种增加约束的方法不容易从左边的框框(键)中看出来*/
alter table student add unique(graduation);

/*给增加的约束自定义了一个别名,容易区分*/
alter table student add constraint S_un unique(graduation);

/*注意*/
--1. 不可以使用增加not null约束,想要添加只可以在设计中将勾去掉
--虽然以下的方式看似添加了not null约束,但是不起任何作用
alter table student add constraint cc check(sname is not null);

--2. 给某一属性列添加主键,需要保证该属性列不允许为空,刚建的新表在未加约束的情况下,默认属性列允许为空值
alter  table  student  add primary key(sno,cno);

--3. 添加外键,需要保证外码和被参照表的主属性的数据类型保持一致
alter  table  student  add foreign key (sno) references student(sno);

删除约束

/*通过指定的约束名字删除指定的约束*/
alter table student drop constraint S_un;

/*在左边单机右键删除*/

三、删除表

/*删除表的时候必须先将参照表干掉,再删除被参照表*/
drop table student;

索引的建立与删除

建立索引的目的是加快数据查询的速度。DBA或者表的属主可以根据需要建立表的索引;但是有些DBMS可以自动建立以下索引,1)PRIMARY KEY索引(聚簇索引)2)UNIQUE索引(唯一性索引)

一、创建索引

/*创建唯一性索引*/
/*
 * stu为索引名字,创建索引必须要有一个索引名
 * 列名后面紧跟排序类型,ASC为升序,DESC为降序,默认为ASC,可以有多个列,用逗号隔开。
 * 对于已经包含重复值的属性列不可以增加唯一性索引
*/
create unique index S_nn on student(graduation asc);

/*创建聚簇索引(聚集)*/
Create  clustered index stu on student(sage desc);
/*
 * 聚簇索引的关键字为clustered,不是书上有误,而是sqlserver是这样
 * 同样,列名后面紧跟排序类型,可以有多个列,用逗号隔开。
 * 聚簇索引严格按照物理存储位置来排序。
 * 不可以在有主键的表中创建索引
 * 一个表只能创建一个聚簇索引
*/

二、删除索引

/*注意:删除索引必须为表名+索引名*/
drop  index  student.stu

 

  • 221
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兔老大RabbitMQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值