MySQL的知识与用法

文章介绍了数据库的基本概念,包括数据、数据处理、数据管理与数据库,强调了数据库技术的特点和规范化设计,如第一范式至第三范式。同时,详细阐述了MySQL中的表操作、DML、DDL、TCL和DCL,以及完整性约束、数据操作和查询,还包括视图、索引、存储过程和存储函数的创建与使用。
摘要由CSDN通过智能技术生成

数据库基本概述

无论是传统的软件,还是互联网网站,或者是移动端的应用,都需要

处理数据。数据库技术主要研究如何有效地管理和存取大量数据资源。

数据与数据库

1.数据 数据是人们为反映客观世界而记录下来的可以鉴别的物理符号。

2. 数据处理 数据是重要的资源,人,人们对收集到的大量数据进行加工、

整理、转换,可以从中获取有价值的信息。数据处理就是指将数据转换成

信息的过程,是对数据进行收集、储存、加工、传播一系列的总和。

3.数据管理 数据处理的中心问题是数据管理。数据管理是对数据进行分类、

组织、编码、储存、检索与维护的操作。

4.数据库数据 数据库是储存在一起的互有联系的数据集合。*数据库中的数

据是集成的、可共享的、最小冗余的、能为多种应用服务的。

5.数据库技术 数据库技术研究如何科学的组织和储存数据,如何高效的获取

和处理数据。数据库技术的特点是面向整体组织数据的逻辑结构,具有较高

的数据独立性,具有统一的数据控制功能(完整性控制、安全性控制、并发

控制)。

数据库设计规范化  相对较重点

第一范式(1NF):要求每一个数据项都不能在拆分成两个或两个以上的数

据项,即数据库表中的字段都是单一属性的,不可再分。单一属性由基本类

型组成。

第二范式(2NF):如果一个表已经满足第一范式,而且该数据表中的任何

一个非主键字段的数值都依赖于该数据表的主键字段,那么该数据表满足第

二范式。

第三范式(3NF):如果一个表已经满足第二范式,而且该数据表中的任何

两个非主键字段的数值之间不存在函数依赖关系,那么该数据表满足第三范

式。

表的概述

MySQL中的表是用来储存数据的一种方式。

任何一张表都有行和列:

行(row):被称为数据/记录。

列(column):被称为字段。

命令不区分大小写。

MYSQL语句中的分类

数据查询语言(DQL):凡是带有select关键字的都是查询语句。关键字:select。

数据操作语言(DML):凡是对表中数据进行增删改的都是数据操作语句。关键字:insert(增加数据),delete(删除数据),update(更改数据)。

数据定义语言(DDL):凡是带有create、dorp、alter的都是数据定义语言。

数据定义语言操作的是表的结构,并不是表中的数据。

关键字:create:新建。等同于增加。

dorp:删除。

alter:修改。

此处增删改与数据操作语言不同,主要是对表结构进行操作。

基础数据库语句

数据库语句

1.create  database  数据库名(创建数据库)

create database AA;//创建名为AA的数据库

2.use 数据库名(指定使用某一个数据库)

use book_info;//使用名为book_info的数据库

3.drop database if exists 数据库名(删除指定数据库,if exists子句可以避免删

除不存在的数据库时,显示MySQL错误信息)

drop database if exists book_info;//删除一个名为book_info的数据库

4.show databases(显示服务器中已建立的数据库)

show databases;

数据表语句

1.create table 表名(创建数据表)

create table use;//创建名为use的数据表

2.rename table 旧表名 to 新表名(修改表名)

rename table use to user;//将use表的表名改为user

3.create table 新表名

like  参照表名

as (select语句)

(复制表的结构和数据并且新建数据表,select语句用于复制需要的语句)

create table user
like use
as(select * from use);
//创建新的名为user的表,并复制use表的结构与数据到user表中

4.drop table 表名 (删除指定表名)

drop table use;//删除名为use的表名

5.show tables  (显示已经建立的数据库文件)

show tables;

事物控制语言(TCL):commit:事物提交。

Rollback:事物回滚。

数据控制语言(DCL):grant:授权。

Remove:撤销权限。

常用语句:

Select  database();查询使用的是哪个数据库。

select database();

Select  version();查询使用的MYSQL数据库的版本。

select version();

完整性约束

主键约束:使用primary key关键字来定义主键

create table book
(
图书编号 varchar(50) null,
书名 varcchar(50) not null  primary key,
出版日期 date
);//将书名定义为主键

代替键约束:使用unique关键字来定义代替键

create table book
(
图书编号 varchar(50) null,
书名 varcchar(50) not null  ,
出版日期 date,
primary key(图书编号),
unique(书名)
);//将书名定义为代替键

外键约束:使用foreign key关键字来定义外键 

create table book
(
图书编号 varchar(50) null,
书名 varcchar(50) not null  ,
出版日期 date,
primary key(图书编号),
foreign key(书名)
    references bookid(图书编号)
            on delete restrict
            on update restrict
);//将书名定义为外键

数据操作

插入数据:insert into 表名 values (表达式)或者set 列名=(表达式)

单表数据修改:update 表名 set 列名=表达式 where 条件

多表数据修改:update 表名列表 set 表名.列名=表达式 where 条件

数据删除:delete from 表名 where 条件

 使用truncate table 语句删除表数据:truncate table 表名(此语句会删除表内所有

 数据,且无法恢复)

  简单查询

查询一个字段:select 字段名 from 表名;

查询多个字段:select 字段名,字段名 from 表名;

查询所有字段:select * from 表名;(效率低下,可读性低)。

给查询的列起别名:使用as关键字来起别名:select 列名 as 别名 from 表名;

As可以省略,用空格取代;起别名是别名中带有空格可用单引号括起来:select 列名 ‘sell  die’ from 表名;

注意:此方法别名仅在查询中显示,并不能修改表中名字;

特别注意数据库中的字符串都是用单引号括起来的,此为标准。

条件查询

格式为:select ...from ... where+条件。

都有哪些条件:

= 等于;< 小于(<=小于等于);>  大于(>=大于等于);

Between... and.... 两个值之间,等同于>= and <=

Is null 为 null(is not null 不为空)

And 并且

Or 或者

In 包含,相当于多个or(not in 表示不在此范围中)

Not  not可以取非,主要用在is 或 in 中

Like like 为模糊查询,支持%或者下划线匹配 %匹配任意个字符 一个下划线只匹配一个字符

\具有转移功能;

排序 (默认是升序)

指定升序:

Select ... from ... order by ... asc;

指定降序:

Select ... from ... order by ... desc;

两个或者多个字段排序:Select a,b from ... order by a asc,b asc;

先运行a asc 只有a排序中有相等时才会用到b asc 排序。

不建议但了解:根据字段位置排序:Select a,b from ... order by 2;

此处是按b 来排序,因为b是第二列;此代码可读性很差,实用性很差;

综合案例

(此处图片出自B站,侵权即删)

执行顺序:1.from 2.where 3.select 4.order by

数据处理函数又称为单行处理函数

单行处理函数的特点是一个输入对应一个输出。

与其相对应的是多行处理函数。(多个输入对应一个输出)

单行处理函数常见的有哪些?

Lower 转换小写

写法 select lower(...)from ...;

Upper 转换大写

写法 select uuper(...) from ...;

Substr 取子串(substr(被截取的字符串,起始下标,截取的长度))

Select substr(...,1,1) from ...;

  

Ifnull用法(null,0)解释:当数据为null的时候,当作0来使用。

Case用法:

(此处图片出自B站,侵权即删)

分组函数:

注意事项1:分组函数计算时会自动忽略nul,不需要提前处理。注意计数时也会自动忽略,需要处理(ifnull)。

注意事项2:分租函数中的count(具体字段):表示统计该字段下所有不为null的元素的总数;count(*)表示统计表中的总行数。(只要有一行数据则count++),因为每一行数据中不可能都为null,一行数据中有一列部位null,则这行数据就是有效的。

注意事项3:分组函数不能直接使用在where子句中。(如:select ename,sal from emp where sal>min(sal)。

分组查询:

查询方法:selec ... from ... where ... group by ... older by...

Group by 意为分组 如果不使用此函数则默认整张表为一组。

Older by 意为排序  可使用关键字ASC(升序) DESC(降序)。

Having Having子句的用法与where子句有些相似 语法格式为Having+条件。(select...from...group by...Having  条件)

limit limit子句为select语句的最后一个子句 示例:

排列出前三行的信息(select ... from... order by...limit 3;)

排列出第三行到第8行的信息(select ... from ... order by ... limit 3,8;)

视图

视图是从一个或者多个表(或者视图)导出的表。对视图中的收据进行操作时,系统根据视图的定义去操作视图所对应的基本表。视图被定义过后,便可以像表一样被增删查改。

视图的优点有:

1.为用户集中数据,简化用户的数据查询和处理

2.屏蔽数据库的复杂性

3.简化用户权限的管理

4.便于数据共享

5.可以重新组织语言,以便于输出到其他应用程序中

创建视图

语法格式为: 

create or replace view 视图名

as select语句

with check option;

查询视图

语法格式为:

select 想要查询的条件 from 想要查询的视图;

操作视图的方法基本与操作表的方法一致,在此便不过多赘述。

索引

主要索引:

1.普通索引(index)

2.唯一性索引(unique)

3.主键(primary key)

4.全文索引(fulltext)

创建索引

create index 表名 on 表名(列名(长度  asc/desc)

删除索引

drop index 索引名 on 表名

使用alter table 语句来删除索引

alter table 表名

        drop primary key

        drop index 索引名

分支语句

if-then-else语句:

if (条件1) then 语句序列1

else if 条件2 then 语句序列2

else  语句序列

end if

case 语句:

case 表达式

when 条件1 then 语句序列1

when 条件2 then 语句序列2

.....

end case

循环语句

while语句:

while 条件 do

程序段

end while

repeat语句:

repeat

程序段

until 条件

end repreat

创建存储过程

create proccedure 存储过程名(参数)存储过程体

显示存储过程

查看数据库中有哪些存储过程:show procedure status;

查看某个存储过程的具体信息:show create procedure 储存过程名;

调用存储过程

语句为:call 存储过程名(参数)

删除存储过程

drop procedure if exists 存储过程名

创建存储函数

create function 存储过程名(参数)

returns 类型

deterministic

函数体

调用存储函数

select 存储函数名(参数)

删除存储函数

drop function if exists 存储函数名

以上便是全部我在MySQ方面的所有见解,其中许多是翻阅书籍并结合

自身想法所得出的结论。如有不对之处,请大家指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值