为了方便使用mysql5.版,在本地架设服务器,然后使用navicat作为客户端。因为在ipad上已经整理过了,所以这些表达都是以自问自答的形式写出,有拼写错误是很正常的事(费曼技巧)。
一、数据库及相关概念
问:为什么要用数据库,数据库优点是什么?
答:
首先我们说的数据库其实是指数据库管理系统(DBMS)而不是数据库(DB),DBMS的优点在于存储和管理。
DBMS的优点如下:
1、持续化存储(断电后数据依旧在)
2、可存储大量数据
(DQL、DML命令)
3、快速查询(索引)
4、可通过查询组合出新数据(插入数据)
(DCL语句)
5、安全、共享(权限配置)
6、可确保数据完整性和一致性(锁机制)
问:数据库相关概念有哪些?
答:
DB::database 是保留数据的容器
DBMS::database management system 是管理容器的操作系统
SQL:Structured Query Language是通过操作系统管理DB容器的通讯语言
注:学习MYSQL主要学习的就是SQL,从而达到操纵数据库的目的。
问:DB在DBMS中以何种结构存储?
答:
数据 存于表,表 存于 数据库。
其中表名唯一。
表由列组成,列名在表内唯一。
问:DBMS有哪些类型?
答:
基于共享文件(ACCESS)
基于C/S架构(mySQL)
问:在CMD中,常用的mysql相关命令有哪些?
答:
命令是实现目的的手段,所以这个问题需要根据常用需求,除去安装和卸载的命令:
启动/停止mysql:net start/stop mysql
登入本地mysql:mysql -u账户名 -p密码
其完整格式为 mysql -h主机名 -P端口名 -u -p
其中h为localhost -P为3306时可省略
引言:SQL语句是有类型的,根据其是否有对数据进行改动和改动的是数据本身、数据库结构、操作权限进行分类。
问:SQL语句的主要类型有哪些?
答:
DDL、DCL、DML和DQL。
DDL:D是指定义,Definition。改表操作。
DCL:C是指控制,Control。用户权限操作。
DML:M是指操作,Manipulation,增删操作。
DQL:Q是指查询,Query,查询操作。
其实还有个事务性语言DTL。个人理解,程序中的事务指一堆操作为一个事务,整套操作完成则为一个事务完成,事务完成则对数据库完成持续性修改。事务操作到一半系统断电了,整个事务就没完成,对数据库就应该没进行持续性修改。
二、DQL相关内容
SQL语言中,换行并不影响执行。
查询出来的表为虚拟表,所以并未对数据造成任何实际改动。
首先是基础查询格式:
SELECT 表达式/函数/字段/常数
FROM 表名
-- WHERE 条件查询/逻辑查询/模糊查询
# ORDER BY 字段/列数/函数/表达式
其中WHERE和ORDER BY在不需要时可以省略,而–+空格和#则是mysql中的单行注释符,多行则为/* */
SELECT输入表达式则表达式生效,
输入常量则表格内数值与字段名为常量,
输入函数则函数生效且返回函数值,
输入字段则返回表内对应字段数据。
常见关键字或函数有:
1.筛选出不重复数值:
SELECT DISTINCT 表达式
FROM
2.链接多个字段
SELECT CONCAT(字段1,字段2,……)
注意:如果有一个字段数值为null,则组合结果为null
3.判断是否为null
IFNULL(表达式1,表达式2)
如果表达式1不为NULL,则输出表达式1;如果表达式1为NULL,则输出表达式2.
可用于处理concat参数值为null的问题
4.展示数据库情况
SELECT DATABASE();
5.展示用户版本
SELECT VERSION();
6.展示用户信息
SELECT USER();
<引言>WHERE后面跟着查询条件
比如条件查询 、逻辑查询、模糊查询
条件查询的符号需要注意的是不等于号 为<>
而=是不会对数值是否为null进行判断,<=>
才会。但是鉴于后者语义性差,所以一般用IS NULL
进行判断。
逻辑查询里为ADN OR NOT
,其中NOT表示反义。
模糊查询里,
like需要了解的是%
和_
的区别,前者代表任意数量字符串,后者代表固定一位字符串。使用格式为:
WHERE 表达式1 LIKE '表达式2'
表达式2内则为模糊查询条件
IN(表达式1,表达式2,……)
则表达搜索结果里是否有查询的数值,
BETWEEN ……AND……
则搜索在什么范围内,
它俩能用逻辑表达式表达出来,但是主要胜在书写方便,实际运行起来是等效的
ORDER BY 是排序命令,能够按照多个排序依据依次排序。注意的是后面可以跟数字,意思是表的列数。
关联的关键词是 ASC
升序,DESC
降序。
用法是ORDER BY 表达式 ASC/DESC
该期表述结束。