Mysql数据库基础入门教程

Mysql数据库基础入门教程

课程链接:https://www.bilibili.com/video/BV1Qb411x7Yc?p=1

  • 2022/1/22start

一、数据库简介

1、什么是数据库?

数据库是按照数据结构来组织、存储和管理数据的仓库。

2、数据库的发展史?

  • 最早的数据库

通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理。其运行结果在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理的储存和处理。

  • 现在的数据库

当时计算机开始广泛地应用于数据管理,对数据的共享提出了越来越高的要求。传统的文件系统已经不能满足人们的需要。能够统一管理和共享数据的**数据库管理系统(DBMS)**应运而生。

3、数据库管理系统(DBMS)

是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完控性。
用户通过DBMS访问数据库中的数据。数据库管理员也通过dbms进行数据库的维护工作。
数据库管理系统是数据库系统的核心,是管理数据库的软件。我们一般说的数据库,就是指的DBMS: 数据库管理系统。

4、常见的数据库管理系统(关系型数据库)?

  • Oracle 收费,运行稳定,可移植性高,功能齐全,性能超群!适用于大型企业领域。

  • DB2 收费,速度快、可靠性好,适于海量数据,恢复性极强。适用于大中型企业领域。

  • MySQL 不收费,开源,体积小,书都快,适用于中小型企业领域。

  • SQL Server 收费,全面,效率高,节目友好,操作容易,但是不跨平台。适用于中小型企业领域。

5、结构化查询语句SQL?

SQL语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言.

6、非关系型数据库NoSql?

MongoDB,Redis,HBase(大数据)

二、 RDBMS专业术语

img

  1. 表:具有固定的列数和任意的行数

  2. 数据库:管理表的集合

  3. 列:一个数据行Field 字段

  4. 行:一条记录 row

  5. 主键:主键是唯一的。一个数据表中只能包含一个主键,你可以使用主键来查询数据(唯一性、可组合、不能重复、不能为空)

  6. 外键:用户关联二个表

  7. 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

三、MySQL安装

1、MySQL介绍?

  • MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • MySQL是开源的,所以你不需要支付额外的费用。

  • MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

  • MySQL使用标准的SQL数据语言形式。

  • MySQL可以允许于多个系统上,并且支持多种语言。这些编程语言包C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

2、MySQL安装

安装、配置环境变量 :https://www.cnblogs.com/itcui/p/15511683.html

密码重置: https://www.cnblogs.com/wsl-/p/10688292.html

四、MySQL基本命令及链接Navicate

1、常用的数据库命令?

MySql数据库分为二种

  • 系统数据库(系统数据库自带的,自带的4个)

information schema:存储数据库对象信息如用户表信息,列信息,根除,字符.分区里面的内容我们不能动.

performance_schema:存储数据库服务器性能参数信息

mysql:存储数据库用户权限信息

sys:通过这个库可以快速的了解系统的元数据信息——这个库是通过视图的形式把information schema和performance_ schema结合起来,查询出更加令人容易理解的数据

  • 用户数据库

  • 创建数据库

​ 方法一:

 create database 数据库名称;

​ 全

create database   数据库名称  character  set utf8;      设置字符集为utf-8

​ 方法二:

使用Navicat新建数据库

  • 删除数据库

    drop  database  数据库名称;
    
  • 查看数据库

    show databases;
    
  • 使用数据库

    use  数据库名;
    
  • 查看数据库中当中有多少表

    show  tables;
    

注意写的顺序,先使用数据库,再去查看多少张表

2、安装初步使用Navicate?

  • 安装Navicate官网:http://www.navicat.com.cn/download/navicat-for-mysql

  • 链接数据库

方法一:

img

img

方法二、

链接数据库:mysql -u  root -p
image-20220123025928137

五、MySQL字符集介绍

image-20220123030207303
  • 字符集的由来?

计算机只能识别二进制代码无论是计算机程序还是数据,最终都会转换成二进制,计算机才能认识。
为了计算机不只能做科学计算,也能处理文字信息。
人们想出了给每一个文字符号编码以便于计算识别处理的办法,这就是计算机字符集的由来。

  • ASSCII:

  • unicode :

    1、为了统一字符编码。国际标准化组织lSO的一些成员国于1984年发起制定了新的国际宁符集标准。容纳全世界各种语言,文字,和符号。最后这个标准ISO-10646。
    3、ISO-10646发布后,遭到了美国计算机公司的反对。
    4、1988年,Xerox公司提议制定了新的以16位编码人统一字符集。并联合不Apple,IBM,SUN,Microsoft等公司成立了Unicode技术委员会。专门负责收集,整理,和编码。于1991年推出了Unicode1.0。
    5、都是为了字符编码统一问题,ISO和Unicode协会推出了连个不同人标准。这显然是不利的。后来双方开始谈判。1991年10月达成协议。ISO将Unicode收编。起了个名BMP。

  • UTF -16:

    1、ISO-10646编码空间足以容纳从古自今使用过的文字和字符。但很多文字字符已经很少用了。

    2、超过99%的在用文字字符都编入了BMP.因此,绝大部分情况下。

    3、Unicode双字节方式都能满足需求。而且比双字节编码隽式4字节原始编码来说,更节省内存和处理时间。这也是Unicode流行的原因。
    4、万一使用了BMP以这后文字怎么办?Unicode提出了UTF-16的解决办法。

  • UTF-8:

    1、虽然UTF-16解决了上面问题。但当时的计算机和网络世界还是ASCII的天下。只能处理单字节数据流。UTF-16离开了Unicode环境后。在传输和处理中,都存在问题。
    2、于是又提出了UTF-8的解决文案,
    3、UTF-8按一定的规则,将一个ISO10646或Unicode转换成1至4个字节的编码
    4、其中ASCII转成单字节编码。也就严格兼容了ASCII字符集。
    5、UTF-8的2,3,4字节用以转换ISO-10646标准的UCS-4原始码。

  • 汉字的一些常见字符集:

    GB2312
    GB13000
    GBK
    GB18030

六、MySQL存储引擎

  • 数据库对象:存储,管理和使用数据的不同结构形式,如:表、视图、存储过程、函数、触发器、事件等。

  • 数据库:存储数据库对象的容器。

  • 什么是存储引擎:

    1、MySQL中的数据用各种不同的技术存储在文件(或者内存)中。
    2、每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。
    3、通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。
    4、不同的存储引擎性能是不一样的。

  • 什么是事务:是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。

  • 存储引擎分类:

    MYISAM

    INNODB

    MEMORY

image-20220123032057799

七、SQL功能划分

  • DDL:数据定义语言—用户定义数据库对象:创建库,表,列等。

  • DML:数据操作语言—用户操作数据库中的记录

  • DQL:数据查询语言—用于查询数据

  • DCL:数据控制语言—用于定义访问权限和安全级别

八、SQL数据类型

  • MysQL中定义数据字段的类型对你数据库的优化是非常重要的。
  • MySQL支持所有标准SQL数值数据类型。
  • MySQL支持多种类型,大致可以分为三类。https://www.cnblogs.com/peijz/p/12382121.html

1、数值类型

类型大小范围(有符号)范围(无符号)用途
TINYINT1 字节(-128,127)(0,255)小整数值
SMALLINT2 字节(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 字节(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 字节(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 字节(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度 浮点数值
DOUBLE8 字节(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度 浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

2、字符串类型

类型大小用途
CHAR0-255字节定长字符串
VARCHAR0-65535 字节变长字符串
TINYBLOB0-255字节不超过 255 个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65 535字节二进制形式的长文本数据
TEXT0-65 535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LONGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据

3、日期和时间类型

类型大小 (字节)范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3‘-838:59:59’/‘838:59:59’HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳
  • 常用数据类型
double:浮点型,例如double(5.2)表示最多5位,其中必须有2位小数,即最大值为999.99;
char:固定长宁字符串类型;char(10) 'abc
varchar:可变长度字符串类型;varchar(10) 'abc"
text:字符串类型;
blob:二进制类型;
date:日期类型,格式为: yyyy-MM-dd;
time:时间类型,格式为:hh:mm:ss
datetime:日期时间类型yyy-MM-dd hh:mm:ss
  • 在mysql中,字符串类型和日期类型都要用单引号括起来。‘Myxq’"2020-01-01’
九、SQL创建表-DDL

创建数据库:

create   database  数据库名  character  set  utf8;

展示数据库:

show  databases;

使用数据库:

use 数据库名;

展示数据库表:

show  tables;

新建表,创建表:

create  table  表名(

id  int,

name  varchar(25),

age int,

email   varchar(255)

);
十、SQL添加删除字段-DDL

查看字段:desc 表名;

添加字段:alter table 表名 add 字段名 字段类型;

修改表的字段类型:alter table 表名 modify(修改) 字段名 字段类型;

删除字段:alter table 表名 drop 字段名;

十一、SQL修改字段及删除表-DDL

修改表名:rename table 原始表名 to 修改表名;

查看表的创建细节:show create table 表名

image-20220124233114040

修改字符集:ALTER TABLE 表名 CHARACTER SET 修改后字符集名称;

修改表个字段名:ALTER TABLE 表名 CHANGE 原始字段 新字段 数据类型;

删除表:drop table 表名;

十二、SQL插入数据-DML

查询表中的所有数据:select * from 表名;

DML是对表中的数据进行增、删、改的操作

  • 插入操作:

插入一条:

insert  into  表名(列名1,列名2……)values(列值1,列值2……);

插入多条:

insert  into  表名(列名1,列名2……)values(列值1,列值2……),(列值1,列值2……),(列值1,列值2……);

注意事项:

1、列名誉列值的类型、个数、顺序要一一对应。

2、值不要超出列定义的长度。

3、插入的日期和字符一样,多使用引号括起来。

十三、SQL更新数据及修改数据库密码-DML
  • 更新操作
update 表名 set 列名1=列值1,列名2=列值2…… where 列名=值
image-20220204174251225
  • 修改数据库密码:
    image-20220204174341636
十四、SQL删除记录-DML
  • 删除指定数据操作
delete from 表名 (where 列名=值);
  • 删除所有数据操作
delete *from 表名;
truncate table 表名;
  • delete与truncate的区别

1、DELETE 删除表中的数据,表结构还在;删除后的数据可以找回。
2、TRUNCATE 删除是把表数据直接清空掉,然后再创建一个同样的新表。删除的数据不能找回。执行速度比DELETE快。

十五、SQL虚拟结果集—DQL
  • 查询表中的所有数据:select * from 表名;

  • 数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端

  • 结果集:

1、通过查询语句查询处理啊的数据以表的形式展示我们称这个表为虚拟结果集。存放在内存中。

2、查询放回的结果集是一张虚拟表。

  • 查询指定列:
select 列名1,列名2…… from 表名;
十六、SQL条件查询—DQL

条件查询就是在查询时给出where子句,在where子句中使用一些运算符及关键字;

image-20220204184844016

十七、条件查询使用案例—DQL

1、查询性别为男,并且年龄为20的学生记录

select * from students where gender ="男" and a'geage="20";

image-20220204232154552

2、查询学号为1001或者名为zs的记录

如果你要修改的数字所在列的类型是number,那么不用加引号,如果是字符型的,如:varchar(),char等,那么需要加引号。

SELECT * FROM students WHERE id=1001 or `name`="zs";

image-20220204233130155

3、查询学号为1001,1002,1003的记录

方法一:
select * from students where id=100l or id=1002 or id=1003;
方法二:
select * from students where id in(1001,1002,1003);

image-20220204234907141

4、查询年龄为null的记录

select * from students where age is null;

5、查询年龄在18到20之间的学生记录

select * from students where age>=18 and age<=20 ;
SELECT *FROM students WHERE age BETWEEN 18 AND 20;

6、查询性别非男的学生记录

select * FROM students WHERE gender !="男";
select *FROM students WHERE gender <>"男";

7、查询姓名姓名不为null的记录

select * from students where age is not null;
十八-SQL模糊查询—DQL
  • 根据指定的关键进行查询
  • 使用LIKE关键字后跟通配符
  • 通配符

​ _:任意一个字符
​ %:任意0~n个字符

  • 使用案例:

    1. 查询姓名由5个字母(字符)构成的学生记录

      select  *  from  students  where  name  like  "_____"
      select  name  from  students  where  name  like  "_____"
      
    2. 查询姓名由5个字母(字符)构成,并且第五个字母(字符)为“s”结尾的学生记录

       select * from students where name like "____S";
       select name from students where name like "____S";
      
    3. 查询姓名以"m”字母(字符)开头的学生记录

       select * from students where name like "m%";
       select name from students where name like "m%";
      
    4. 查询姓名中第2个字母(字符)为"u"的学生记录

      select * from students where name like "_u%";
      select name from students where name like "_u%";
      
    5. 查询姓名中包含"s”字母(字符)的学生记录

      select * from students where name like ' %s%';
      select name from students where name like ' %s%';
      
十九、结果集去重与字段别名(字段控制查询)—DQL
  • 去除重复记录
SELECT DISTINCT name FROM students;
  • 把查询字段的结果进行运算,必须都要是数据型

    image-20220205194003670

    SELECT  * , 字段1+字段2 FROM表名;
    
    select * , age+score from  students;
    
    列有很多记录的值为NULL,因为任何东西与NULL相加结果还是NULL,所以结算结果可能会出现NULL,下面使用了把NULL转换成教值0的函教IFNULL:
    SELECT  * , IFNULL(age,0) +IFNULL(score,0) FROM students;
    
    select * , ifnull(age,0)+ifnull(score,0) from students;
    

    image-20220205194411614

  • 对查询结果起别名

    在上面查询中出现列名为ifnull(age,0)+ifnull(score,0),这很不美观,现在我们给这一列给出一个别名,为total:

    SELECT *, ifnull(age,0)+ifnull(score,0) AS total FROM score;
    

    省略AS (最好不要省略)

    SELECT *, ifnull(age,0)+ifnull(score,0) total FROM score;
    
二十、SQL数据的导入及排序—DQL
  • 导入表—导入表中数据

image-20220205200517622

点击创建的数据库右击——Execute SQL File(执行sql文件)

  • 对查询进行排序使用关键词 order by,升序ASC(从小到大默认),降序DESC(从大到小)

  • 使用案例

    select * from 表名  order  by  列名 DESC , 列名  (ASC);
    
二十一、SQL聚合函数Count—DQL

COUNT():统计指定列不为NULL的记录行数;

image-20220205201916209MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
MAX():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

image-20220205204503051

二十二、SQL聚合函数MAX、MAX、SUM、AVG—DQL

image-20220205202243263

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL入门学习(1)。   MySQL入门学习(1) · 安装篇 PHP+MySQL+Linux目前已逐渐成为小型web服务器的一种经典组合。在indows环境下构筑和调试MySQL数据库是许多网站开发者的一种首选。本人在Windows98环境下初学MySQL,现将学习过程与经验总结出来供大家参考。 1、下载mysql-3.23.35-win.zip并解压; 2、运行setup.exe;选择d:\mysql,"tyical install" 3、启动mysql,有如下方法: · 方法一:使用winmysqladmin 1)、进入d::\mysql\bin目录,运行winmysqladmin.exe,在屏幕右下角的任务栏内会有一个带红色的图符 2)、鼠标左键点击该图符,选择“show me”,出现“WinMySQLAdmin”操作界面;首次运行时会中间会出现一个对话框要求输入并设置你的用户名和口令 3)、选择“My.INI setup” 4)、在“mysqld file”中选择“mysqld-opt”(win9x)或“mysqld-nt”(winNT) 5)、选择“Pick-up or Edit my.ini values”可以在右边窗口内对你的my.ini文件进行编辑 6)、选择“Save Modification”保存你的my.ini文件 7)、如果你想快速使用winmysqladmin(开机时自动运行),选择“Create ShortCut on Start Menu” 8)、测试: 进入DOS界面; 在d:\mysql\bin目录下运行mysql,进入mysql交互操作界面 输入show databases并回车,屏幕显示出当前已有的两个数据库mysql和test · 方法二:不使用winmysqladmin 1)、在DOS窗口下,进入d:/mysql/bin目录 2)、win9X下)运行: mysqld 在NT下运行: mysqld-nt --standalone 3)、此后,mysql在后台运行 4)、测试mysql:(在d:/mysql/bin目录下) a)、mysqlshow 正常时显示已有的两个数据库mysql和test b)、mysqlshow -u root mysql 正常时显示数据库mysql里的五个表: columns_priv db host tables_priv user c)、mysqladmin version status proc 显示版本号、状态、进程信息等 d)、mysql test 进入mysql操作界面,当前数据库为test 5)、mysql关闭方法: mysqladmin -u root shutdown 4、至此,MySQL已成功安装,接着可以熟悉MySQL的常用命令并创建自己的数据库了。 上篇讲了如何安装并测试MySQL,环境建好后就可以继续我们的学习了。本篇主要熟悉一写常用命令。 · 1、启动MySQL服务器 实际上上篇已讲到如何启动MySQL。两种方法: 一是用winmysqladmin,如果机器启动时已自动运行,则可直接进入下一步操作。 二是在DOS方式下运行 d:mysqlbinmysqld · 2、进入mysql交互操作界面 在DOS方式下,运行: d:mysqlbinmysql 出现: mysql 的提示符,此时已进入mysql的交互操作方式。 如果出现 "ERROR 2003: Can´t connect to MySQL server on ´localhost´ (10061)“, 说明你的MySQL没有启动。 · 3、退出MySQL操作界面 在mysql>提示符下输入quit可以随时退出交互操作界面: mysql> quit Bye 你也可以用control-D退出。 · 4、第一条命令 mysql> select version(),current_date(); +----------------+-----------------+ | version() | current_date() | +----------------+-----------------+ | 3.23.25a-debug | 2001-05-17 | +----------------+-----------------+ 1 row in set (0.01 sec) mysql> 此命令要求mysql服务器告诉你它的版本号和当前日期。尝试用不同大小写操作上述命令,看结果如何。 结果说明mysql命令的大

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值