数据库系统(五)---MySQL基础
一、SQL基本概念:
SQL 已经成为关系数据库的标准语言,是一种数据库查询和程序设计语言,用 于存取数据以及查询、更新和管理关系数据库系统。 功能不仅仅是查询,还包括数据定义、数据操纵和数据控制等于数据库有关的 一系列功能。
四大功能:数据查询、数据定义、数据操纵和数据控制。
1)嵌入式和动态 SQL 规则 规定了 SQL 语句在高级程序设计语言中使用的规范方法,以便适应较为复杂的 应用。
2)SQL 调用和会话规则 调用包括 SQL 例程和调用规则,以便提高 SQL 的灵活性、有效性、共享性以 及使 SQL 具有更多的高级语言的特征。
3)关系数据库系统支持三级模式结构,其模式、外模式和内模式中的基本对象有 数据库模式、表、索引、视图等。 SQL 标准提供的数据定义语句如下表:

二、MySQL
1、MySQL基础概念
MySQL 是一个关系数据库管理系统(RDBMS),它具有客户/服务器体系结构。
MySQL 中的 SQL 作为一种关系型数据库管理系统,遵循 SQL 标准,提供了对数据定义语言 DDL、数据操纵语言 DML、数据控制语言 DCL 的支持,同样支持关系数据库的三级模式结构。 MySQL 中一个关系对应一个基本表,一个或多个基本表对应一个存储文件,一 个表可以有若干索引,索引也存放在存储文件中。
MySQL 在 SQL 标准的基础上增加了部分扩展的语言要素:包括常量、变量、 运算符、表达式、函数、流程控制语句和注解等。
1)常量 是指在程序运行过程中值不变的量,也称为字面值或标量值。常量的使用格式 取决于值的数据类型,可分为字符串常量、数值常量、十六进制常量、时间日期常量、位字段值、布尔值和 NULL 值。
字符串常量是指用单引号或双引号括起来的字符序列,分为 ASCII 字符串常量 和 Unicode 字符串常量。
十六进制值通常指定为一个字符串常量,每对十六进制数字被转换为一个 字符,其最前面有一个大写字母 X 或小写字母 x。
日期和时间常量是用单引号将表示日期时间的字符串括起来构成的。 使用 b‘value’格式书写位字段值。Value 是一个用 0 或 1 书写的二进制值。
2)变量 在 MySQL 中,变量分为用户变量和系统变量。用户变量前常添加一个符号 “@”,大多数系统变量前,添加两个“@”符号。
3)运算符 MySQL 几类编程语言中常用的运算符:
算术运算符:+(加)、—(减)、*(乘)、/(除)和%(求模)
位运算符有:&(位与)、|(位或)、^(位异或)、~(位取反)、>>(位右 移)、<<(位左移)。
比较运算符:=(等于)、>(大于)、<(小于)、>=(大于等于)、<=(小 于等于)、<>(不等于)、!=(不等于)、<=>(相等或都等于空)。
逻辑运算符:NOT 或!(逻辑非)、AND 或&&(逻辑与)、OR 或||(逻辑 或)、XOR(逻辑异或)
4)表达式 是常量、变量、列名、复杂计算、运算符和函数的组合。 表达式可分为字符表达式、数值型表达式和日期表达式。
5)内置函数 MySQL 包含了 100 多个函数,基本分类如下:
数学函数,例如 ABS()函数、SORT()函数; 聚合函数,例如 COUNT()函数;
字符串函数,例如 ASCII()函数、CHAR()函数;
日期和时间函数,例如 NOW()函数、YEAR()函数;
加密函数,例如 ENCODE()函数、ENCRYPT()函数;
控制流程函数,例如 IF()函数、IFNULL()函数;
格式化函数,例如 FORMAT()函数;
类型转换函数,例如 CAST()函数;
系统信息函数,例如 USER()函数、VERSION()函数。
2、索引定义
(1)索引是 DBMS 根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,因而索引实质上是一张描述索引列的列值与原表中记录行之间 一一对应关系的有序表。
(2)索引在逻辑上通常包含以下几类:
2.1)普通索引:最基本的索引类型,没有任何限制;
2.2)唯一性索引:索引列中的所有值都只能出现一次,必须是唯一的;
2.3)主键:一种唯一性索引。
(3)索引存在的弊端如下:
3.1)索引是以文件的形式存储的,DBMS 会将一个表的所有索引保存在同一个索引文件中,索引文件需要占用磁盘空间。
3.2)索引在提高查询速度的同时,却会降低更新表的速度。
(4)相关SQL
查询已创建的索引 show {index|indexes} {in|from} test_table;
创建索引 create index index_name on test_table(s_name,s_age);
创建索引(使用alter table的方式) alter table test_table add index index_name(s_name,s_age)
删除索引 drop index index_name on test_table;
删除索引(使用alter table的方式) alter table test_table drop index index_name;
3、视图
数据库系统(五)---MySQL基础的更多相关文章
- 如鹏网学习笔记(五)MySql基础
MySQL基础 一.数据库概念 1,网友装备信息.论坛帖子信息.QQ好友关系信息.学籍管理系统中的学生信息等都要“持久化”的保存到一个地方, 如果通过IO写到文件中,那么会非常麻烦,而且不利于多人共享 ...
- MySQL基础(五)——视图
MySQL基础(五)--视图
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
- MYSQL基础笔记(五)- 练习作业:站点统计练习
作业:站点统计 1.将用户的访问信息记录到文件中,独占一行,记录IP地址 <?php //站点统计 header('Content-type:text/html;charset=utf-8'); ...
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- 数据库学习之MySQL基础
数据库基础 一.数据库简介 数据库:存放数据的仓库 sql及其规范 sql是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能 ...
- MySQL基础----py全栈
目录 MySQL基础----py全栈 一.引言 1.什么是数据? 2.什么是数据库(DB)? 3.什么是数据库管理系统(DBMS)? 4.什么是数据库系统? 5.数据库管理系统由来 6.什么是数据模型 ...
- MySQL基础(用的贼鸡儿多)
整理有点乱,业余也玩玩系统,经常碰见这些玩意,有点烦,老是记不住 MySQL 基础语法 一.连接 MYSQL格式: mysql -h 主机地址 -u 用户名 -p 用户密码. 1.连接到本机上的 MY ...
- MySQL基础学习总结
1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...
随机推荐
- sleep() 和 wait() 有什么区别:
①原理不同. sleep()方法是Thread类的静态方法,是线程用来控制自身流程的,它会使此线程暂停执行一段时间,而把执行机会让给其他线程,等到计时时间一到,此线程会自动苏醒.而wait() ...
- ssh 使用指定网卡 连接特定网络
有时候,当电脑有两个网卡时:一个网卡 连接免费网络,一个网卡连接收费网络.这样当你想使用免费网络与远程服务器建立连接,使用诸如scp命令或者 ssh 隧道之类传输大文件.这时候你需要指定特定的特定的网 ...
- RabbitMQ学习笔记(一、消息中间件基础)
目录: 什么是消息中间件 消息中间件的作用 JMS规范 AMQP协议 RabbitMQ简介 Hello World 什么是消息中间件: 消息中间件(Message Queue Middleware,简 ...
- Pwn-level3(x64)
题目地址 https://dn.jarvisoj.com/challengefiles/level3_x64.rar.8c74c402b190ac3fbef5a9ae540c40de 跟level3差 ...
- Mybatis的Java API(八)
使用mybatis的主要Java接口就是SqlSession.可以通过这个接口来执行命令,获取映射器和事务管理. SqlSession是由SqlSessionFactory实例创建,SqlSessio ...
- CF1207G Indie Album
题目链接 problem 有\(n\)个字符串,对于第\(i\)个字符串通过以下两种方式中的一个给出. \(1\; c\),该字符串只含一个字符\(c\). \(2\ x\ c\),该字符串为第\(x ...
- 使用system V实现读者写者问题
#include <stdio.h> #include <sys/sem.h> #include <sys/ipc.h> #include <string.h ...
- Hystrix 超时配置的N种玩法
前阵子在我的知识星球中,有位朋友对我提了个问题,问我如何让Hystrix支持对接口级别的超时配置,今天给大家写篇文章,普及下Hystrix配置超时的几种方式. 至于以后你是用阿里的Sentinel还是 ...
- angular6 ngx-echarts 图表数据更新
最近在用angular写一个echarts图表,初始化赋值数据可以展示,但是重新获取数据以后,图表不会刷新. 后来发现了问题点所在, <div echarts class="demo- ...
- C++ 基于rapidjson对json字符串的进行序列化与反序列化
json字符串的解析以封装在我们开发过程中经常见到, 尤其在socket通信上面, 在一次项目中碰到json字符串的进行解析, 而公司有没有封装好的库, 于是就自己基于开源的库进行了一次封装, 接下是 ...