关系数据库——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,一经查实,立即删除!

相关文章

大数据学习(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在训练神经网络进行图像识别分类时,常会用到一些通用的数据集合。利用这些数据集合可以对比不同模型的性能差异。下文整理常用的图片数据集合(持续更新中)。基本信息对比表格…

大数据学习(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.…

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

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

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

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

机器学习问题总结(01)

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

Python实例讲解 -- 解析xml

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

python(22)--面向对象1-封装

python面向对象1面向过程/面向对象2面向对象核心概念-类3类的设计3.1类三要素-类名、属性、方法3.2面向对象基础语法3.2.1查看对象的常用方法3.2.2类定义3.2.3创建类对象3.2.4__init__()方法3.2.5 self参数3.2.6类内置方法和属性_del_()方法--销毁对象_str_()方法--定制化输出对…

机器学习问题总结(02)

文章目录1.stacking模型以及做模型融合的知识1.1 从提交结果中融合1.2 stacking1.3 blending2. 怎样去优化SVM算法模型的&#xff1f;2.1 SMO优化算法2.2 libsvm 和 Liblinear3.现有底层是tensorflow的keras框架&#xff0c;如果现在有一个tensorflow训练好的模型&#xff0c;k…

C/C++常见面试题(四)

C/C面试题集合四 目录 1、什么是C中的类&#xff1f;如何定义和实例化一个类&#xff1f; 2、请解释C中的继承和多态性。 3、什么是虚函数&#xff1f;为什么在基类中使用虚函数&#xff1f; 4、解释封装、继承和多态的概念&#xff0c;并提供相应的代码示例 5、如何处理内…

机器学习问题总结(03)

文章目录1.struct和class区别&#xff0c;你更倾向用哪个2.kNN&#xff0c;朴素贝叶斯&#xff0c;SVM的优缺点&#xff0c;各种算法优缺点2.1 KNN算法2.2 朴素贝叶斯2.3SVM算法2.4 ANN算法2.5 DT算法3. 10亿个整数&#xff0c;1G内存&#xff0c;O(n)算法&#xff0c;统计只出…

redis——新版复制

sync虽然解决了数据同步问题&#xff0c;但是在数据量比较大情况下&#xff0c;从库断线从来依然采用全量复制机制&#xff0c;无论是从数据恢复、宽带占用来说&#xff0c;sync所带来的问题还是很多的。于是redis从2.8开始&#xff0c;引入新的命令psync。 psync有两种模式&a…

Python(23)-面向对象2-继承,多态

面向对象基本概念2--继承、多态1.继承基本概念2.子类重写父类方法2.1完全重写2.2扩展父类方法--super()3.多继承4.新式类和旧式类5.多态基本概念6.类属性、类方法-classmethod6.1类属性6.2类方法classmethod7.静态方法staticmethod8.案例分析本系列博文来自学习《Python基础视频…

机器学习问题总结(04)

文章目录1、MLP的BP过程2、maxpool层BP怎么做的2.1 **mean pooling**2.2 max pooling3、opencv遍历像素的方式&#xff0c;讲两种&#xff1f;4、传统图像处理有了解过吗&#xff0c;比如去噪 特征提取5、问在linux下写过代码吗&#xff1f; 问用了什么软件工具6、LDA&#xff…

持续更新的Zookeeper知识总结

简介 Zookeeper为分布式应用 提供了高效且可靠的分布式协调服务&#xff0c;提供了诸如统一命名服务、发布订阅、负载均衡、配置管理和分布式锁等分布式的基础服务。 设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&#xff0c;构成一个高效可靠的原语集&#xf…

机器学习问题总结(05)

文章目录1. Hadoop、Spark1.1 hadoop1.2 spark1.3 MapReduce1.3.1 概念1.3.1 MapReduce执行流程2、机器学习场景3、推荐系统&#xff08;预测电影等级&#xff09;4、CTR&#xff08;点击通过率 -> 广告&#xff09;5、SVM5.1 svm的原理5.2 SVM的核技巧6、K-means6.1 K-mean…

基于Socket的UDP和TCP编程介绍

一、概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(streamsocket)的一种。 UDP:用户数据报协议。U…

Java多线程——基本概念

线程和多线程 程序&#xff1a;是一段静态的代码&#xff0c;是应用软件执行的蓝本 进程&#xff1a;是程序的一次动态执行过程&#xff0c;它对应了从代码加载、执行至执行完毕的一个完整过程&#xff0c;这个过程也是进程本身从产生、发展至消亡的过程 线程&#xff1a;是比…

textCNN初探

文章目录目录1.什么是textCNN1.1 textCNN 提出的背景1.2 textCNN 合理性分析2.textCNN相比于传统图像领域的CNN有什么特点&#xff1f;3.textCNN例子讲解3.1 参数和超参数3.2 textCNN的数据3.3 textCNN的网络结构定义3.4 代码目录 1.什么是textCNN 1.1 textCNN 提出的背景 我…