哈尔滨高端网站设计,济宁做网站优化,国外导航网站程序,seo网站推广目的关系数据库标准语言SQL
基本概念 SQL语言是一个功能极强的关系数据库语言。同时也是一种介于关系代数与关系演算之间的结构化查询语言#xff08;Structured Query Language#xff09;#xff0c;其功能包括数据定义、数据查询、数据操纵和数据控制。 SQL的特点#xff…关系数据库标准语言SQL
基本概念 SQL语言是一个功能极强的关系数据库语言。同时也是一种介于关系代数与关系演算之间的结构化查询语言Structured Query Language其功能包括数据定义、数据查询、数据操纵和数据控制。 SQL的特点 1综合统一集数据定义、数据查询、数据操纵和数据控制等多种功能于一体。 2高度非过程化 面对象的设计 3面向集合的操作方式 操作对象是集合并且操作结果也是集合 4两种使用方式统一的语法结构 既是一种独立的语言又是一种嵌入式的语言嵌入式是指嵌入别的高级语言。 5简洁易学
数据库的创建与基本概念
一、创建数据库
代码
create database Student; --创建数据库
use Student; --使用数据库
drop database Student; --删除数据库
注意
1两种注释方式1两个减号--注释单行 2/* */注释多行
2不能再当前数据库删除当前数据库
数据类型 注意
1一个属性采用何种数据类型由两部分决定1该属性的取值范围2该属性做何种运算。
模式的创建与删除
模式一个独立于数据库用户的非重复命名空间在这个空间中可以定义该模式包含的数据库对象例如基本表、视图、索引等。
代码
/** 创建模式zhang下键表student*/
create schema zhangcreate 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该模式不是三级模式两级映像中的模式而是相当于一个命名空间主要可以解决重名的问题
4CASCADE(级联)删除模式的同时把该模式中所有的数据库对象全部删除SQL Server不支持
5RESTRICT(限制)只有当该模式中没有任何下属的对象时才能执行
表的定义、删除与修改
一、创建表三张1学生表Student2课程表Course3学生课程表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 代码
/** 创建课程表*/
create table Course
(Cno char(2) primary key,Cname varchar(10) unique,Cpno char(2), --Cpno是外码参照的是自身的CnoCcredit 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可以自动建立以下索引1PRIMARY KEY索引聚簇索引2UNIQUE索引唯一性索引 一、创建索引
/*创建唯一性索引*/
/** 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