关系数据库——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 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)该模式不是三级模式两级映像中的模式,而是相当于一个命名空间(主要可以解决重名的问题)

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是外码,参照的是自身的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可以自动建立以下索引,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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

libcurl编程

一、curl简介 curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持的协议有:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服…

大数据学习(09)--Hadoop2.0介绍

文章目录目录1.Hadoop的发展与优化1.1 Hadoop1.0 的不足与局限1.2 Hadoop2.0 的改进与提升2.HDFS2.0 的新特性2.1 HDFS HA2.2 HDFS Federation3. 新一代的资源管理器YARN3.1 MapReduce1.0 缺陷3.2 YARN的设计思路3.3 YARN 体系结构3.4 YARN工作流程3.5 YARN框架与MapReduce1.0框…

Java多线程常用方法

start()与run() start() 启动线程并执行相应的run()方法 run() 子线程要执行的代码放入run()方法 getName()和setName() getName() 获取此线程的名字 setName() 设置此线程的名字 isAlive() 是判断当前线程是否处于活动状态。活动状态就是已经启动尚未终止。 curren…

MachineLearning(2)-图像分类常用数据集

图像分类常用数据集1 CIFAR-102.MNIST3.STL_104.Imagenet5.L-Sun6.caltech-101在训练神经网络进行图像识别分类时,常会用到一些通用的数据集合。利用这些数据集合可以对比不同模型的性能差异。下文整理常用的图片数据集合(持续更新中)。基本信息对比表格…

Linux网络编程实例详解

本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代 码实例。要理解本文所谈的技术问题需要读者具有一定C语言的编程经验和TCP/IP方面的基本知识。要实习本文的示例&…

python的命令解析getopt.getopt()函数分析

【转自http://hi.baidu.com/javalang/blog/category/Python】 可以参考http://docs.python.org/lib/module-getopt.html # -*- coding: cp936 -*-import getoptimport sysdef usage():print Help Information:-h: Show help information-xValue:...if __name____main__:#set d…

博弈论基础

博弈论总结 什么是博弈论: 多人进行博弈,假设每个人都采取最优策略,一定有一个人胜出,在知道初态及规则的情况下,求解出 何人胜出的一类问题的理论及方法。 博弈论的一些性质 P点:必败点,N…

矩阵论-范数理论及其应用

范数理论及其应用2.1向量范数及其性质2.2矩阵范数本系列博文主要总结学习矩阵论的心得笔记,参考数目《矩阵论》–张凯院;整个文章的整理体系参照行书过程。范数–非负实数,用于衡量线性空间元素(如:向量,矩…

大数据学习(09)--spark学习

文章目录目录1.spark介绍1.1 spark介绍1.2 scale介绍1.3 spark和Hadoop比较2.spark生态系统3.spark运行框架3.1 基本概念3.2 架构的设计3.3 spark运行基本流程3.4 spark运行原理3.5 RDD运行原理3.5.1 设计背景3.5.2 RDD概念和特性3.5.3 RDD之间的依赖关系3.5.4 stage的划分3.5.…

探索 Pexpect

概述 通过本系列第一部分 《探索 Pexpect,第 1 部分:剖析 Pexpect 》(请参阅参考资料)的介绍,相信大家已经对 Pexpect 的用法已经有了比较全面的了解,知道 Pexpect 是个纯 Python 语言实现的模块&#xff…

Python的Pexpect详解 [图片]

Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块。 Pexpect 可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。继第一部分《探索 Pexpect,第 1 部分:剖析 Pexpect 》介绍了 Pexpect 的基础和如何使用后,本…

关系数据库——sql增删改

数据的插入 插入元祖 --1. 表名后没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致 insert into student values (201215128, 陈东, 18, 男, IS);--2. 在表明后指定要插入数据的表名及属性列,属性列的顺序可…

机器学习中的聚类方法总结

聚类定义 定义 聚类就是对大量未知标注 的数据集,按数据 的内在相似性将数据集划分为多个类别,使 类别内的数据相似度较大而类别间的数据相 似度较小。是无监督的分类方式。 聚类思想 给定一个有N个对象的数据集,构造数据的k 个簇&#x…

学点数学(1)-随机变量函数变换

随机变量函数变换本文介绍一维随机变量函数变换,参考文献:https://wenku.baidu.com/view/619f74ac3186bceb19e8bbd0.html变换TTT作用于随机变量XXX,产生随机变量YYY. T:X−>Y或者写为yT(x)T:X->Y 或者写为 yT(x)T:X−>Y或者写为yT(x…

关系数据库——关系数据语言

关系 域:一组具有相同数据类型的值的集合(即取值范围) 笛卡尔积:域上的一种集合运算。结果为一个集合,集合的每一个元素是一个元组,元组的每一个分量来自不同的域。 基数:一个域允许的不同取值…

Python模块(2)-Numpy 简易使用教程

Numpy模块 简易使用教程1.数组创建2.数组基本属性-维度、尺寸、数据类型3.数组访问-索引、切片、迭代4.数组的算术运算-加减乘除、转置求逆、极大极小5.通用函数-sin,cos,exp,sqrtnp.dot与np.matmul的区别6.数组的合并和分割6.1 np.vstack(),np.hstack()6.2 np.stack()7.list与…

机器学习问题总结(01)

文章目录1.请描述推荐系统中协同过滤算法CF的原理2.请描述决策树的原理、过程、终止条件,以及如何防止过拟合2.1决策树生成算法2.2 剪枝处理(防止过拟合)2.3 停止条件2.4 棵决策树的生成过程2.5 决策树的损失函数3.请描述K-means的原理&#…

pthread_attr_init线程属性

1.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 1. …

Python实例讲解 -- 解析xml

Xml代码 <?xml version"1.0" encoding"utf-8"?> <info> <intro>信息</intro> <list id001> <head>auto_userone</head> <name>Jordy</name> <number&g…

springboot3——Email

maven导入包&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.1.6.RELEASE</version></dependency> 参数配置&#xff1a; # MailPrope…