Mysql数据库day1(2019.4.23)

一、引入

浏览器访问HTML静态页面:


image.png
  • 浏览器访问动态网页的流程:


    image.png

二、学习数据库的重要性

web开发的本质就是对数据库的操作。
PHP开需要操作大量的字符串。数组,这两个数据来源一大部分是来源于数据库。
web优化,服务器架构需要对数据库进行调优。

三、数据库课程体系

在我们全栈学科的整个过程中,数据库分为三个部分:
基础阶段:6天时间 MySQL基本操作。SQL语言(增删改查(CURD))。数据库的高级操作(视图,触发,函数,变量,过程)。
高级阶段:服务器的时候,SQL优化,数据库的主从。
部署阶段:项目上线的时候,生产环境服务器数据库的搭建。负载均衡,数据库的集群。

四、数据库基础概念

1.什么是数据库

数据库:database DB。数据的存储仓库。车库,粮库,仓库,优衣库。
文件。数据库存储数据也是文件的方式进行存储的。
数据库的专业定义:高效的数据存储以及数据处理软件。

2.数据库的分类

数据库大致分为三种:层次式数据库,网络式数据库,关系式数据库。不同种类的数据库存储数据的方式是不一样的。
数据库有类型之分:关系型数据库,非关系型数据库。

image.png

参考网站:<u>http://www.mamicode.com/info-detail-314758.html</u>

1) 网状数据库

处理以记录类型为节点的网状数据模型的数据库

2)层级式数据库

层级数据库是将数据组织成有序的树状结构数据。并使用一对多的结构链接不同层级的数据。


image.png

image.png

2)关系式数据库

当前使用最广泛的数据库

3.不同类型的数据库的主要产品

1)关系型数据库:

大型:DB2 .Oracle
中型:SQL server, mysql, mariaDB,postgreSQL .
小型:access ,sqllite

2)非关系型数据库:

memcached
redis
mongodb

4.两种数据库类型的区别:

关系型数据库是存储在磁盘中的。相对来说比较安全,进行复杂的查询,支持事务。
非关系型数据库存储在内存。相对来说不安全,耦合度比较低,水平扩展比较好。速度比较快。性能比较好。

五、关系型数据库

1.什么是关系型数据库

关系型数据库就是建立在关系模型(数学模型)上的数据库。
关系型数据库其实就相当于一张Excel表格。
银行实例:
用户账号信息表:


image.png

流水信息表:


image.png

游戏解释数据库:
image.png

image.png

image.png

1)实体、实体集与属性

image.png

QQ截图20190424201453.jpg

实体:客观存在的事物,对应的是数据库当中的一条记录。
实体集:抽象出来的,具体实体的一个抽象概念,所对应的的是数据库的一张表。
属性:实体具有很多的属性,对应到数据库中是表当中的一个字段。

2)数据库的组织架构

一个数据库由多张数据表组成,每一张表中可以有多条记录。每一个表中也具有多个字段。

六、MySQL数据库介绍

MySQL是一个关系型数据库,是瑞典的MySQLAB公司的产品。MySQL目前属于oracle。
MySQL是web最好用的一款数据库,由于其开源的特点,在开源社区具有非常高的活跃度。
MySQL分为两个版本,社区版和企业版。社区版是开源的,免费的。但是企业版是收费。
MySQL具有很好的支持,特别是对PHP的支持,PHP有专门的的MySQL扩展。lamp以及lnmp都是非常流行的服务器架构。

七、SQL语句

1.概念

SQL:(structured query language )结构化查询语言。同时这个sql也是数据库文件的脚本的后缀名。
是数据库客户端与数据库服务器通信的语言。SQL语言是一种SQL通信的规范。美国国家标准协会(1986)制定了标准,几乎所有的关系型数据库都支持SQL语言。

2.SQL语句分类

根据数据库的操作对象进行划分(数据库,表,数据)。
DCL:数据库控制语言:主要是进行权限以及数据库用户的管理。
DDL:数据库定义语句。创建表,创建库。
DML:数据操作语言(对数据的增删改查)。
DQL:数据库查询语言。

八、访问数据库服务器

1.访问步骤

1)开启服务器

2)连接服务器

3)进行操作

2.开启MySQL服务器的方式

1)使用系统服务开启

使用window系统服务界面操作》


image.png

2)使用命令行模式开启

image.png

开启命令:

net  start mysql

关闭命令:

 net  stop mysql

3.使用客户端连接数据库

1)客户端方式

mysql提供了一个自己的客户端软件:MySQL command line client


image.png
image.png

2)命令行模式

mysql [-h主机名] [-p端口号] -u用户名 -p(密码)

-h:h表示主机,默认的是localhost。
-p:p表示port,是端口的意思。默认的端口是3306.
-u:u表示user,是用户的意思。mysql 安装好之后只有一个用户root,是管理员账号。
-p:p表示password,是密码的意思。管理员root账号的密码是在安装的时候设置。


image.png

3)使用工具

image.png

image.png

image.png

image.png

4)退出

使用\q或者quit退出。


image.png

九、数据库操作

1.查看数据库

1)查看数据库管理软件中的所有数据库。

show databases;
image.png

系统的三个数据库一定不要删掉

2)查看数据库的建库语句

show create database database_name;
image.png

2.创建数据库

1)创建语法

create database [if not exists] database_name [charset 字符集];
不能创建一个已经存在的数据库:


image.png

可以使用if not exists进行判断,在判断没有这样的数据库时再添加。


image.png

image.png

在创建数据库的时候是可以指定字符编码。
image.png

创建gbk编码的数据库:


image.png

2)判断数据库是否已经存在

3)可以指定数据库的字符集:

4)数据库名称的命名规则

数据库的名字有字母,数字,下划线组成。
不能以数字开头,也不能为纯数字。
当使用系统的关键字命名的时候要是用反撇号(`)包起来。尽量不要使用系统的关键字,否则会产生莫名其妙的问题。
名称的长度一般不超过64个字符。
起名字一定要有意义。

3.删除数据库

drop database [if exists]  database_name;
image.png

再删除数据库之前要判断数据库是否存在。


image.png

看图说话:


image.png

不能直接删除不存在的数据库。

删除的数据如果是使用系统关键字命名的。那么再删除的语法当中也应该将名称使用反撇号括起来。


image.png

4.修改数据库

主要是修改数据库的字符集。

alter database database_name charset 新字符集;
image.png

5.选择数据库

use databases_name;
image.png

\s可以查看到当前的用户,当前的数据库主机,当前操作的数据库


image.png

十、数据表的操作

1.查看数据表

1)查看所有数据表

show tables;
image.png

当数据库没有数据表的时候,显示的是空或者empty set。,


image.png

2)查看表结构

desc table_name;
image.png

3)数据类型简单介绍

整形 int
浮点型 float
字符串 char varchar
日期类型 time ,datetime

2.建数据表

1)基本语法

create  table table_name(
字段1 数据类型 字段属性,
字段2 数据类型  字段属性
)charset 字符集;

注意:如果是最后一个字段,字段的最后的逗号要省略。

create table hreo(
id int comment ‘英雄ID号’,
name varchar(30) comment ‘名称’,
skill varchar(20) comment ‘技能’
)charset utf8;
image.png

2)查看数据表的创建语句

 show create tabel table_name ;  
image.png

3.删除数据表

drop table  table_name;
image.png

4.修改数据表

1)修改表的名字

alter table table_name rename [to] new_name;
image.png

十一、数据操作

数据的操作也叫(CURD),也就是数据的增删改查。

1.插入数据

insert into table_name(字段1,字段2,。。。) values (值1,值2,。。。);

--数据的插入
insert into hero(id,name,skill) values(2,'猪头人','脑残');
insert into hero(id,name,skill) values(3,'牛头人','杀猪');
insert into hero(id,name,skill) values(5,'羊头人','杀牛');

insert into hero(id,name,skill) values(8,'喜洋洋','白胖胖'),
(9,'灰太狼','吃平底锅');
image.png

注意:输入的时候,值得顺序一定要和字段的顺序保持一致。如果说知道表字段的顺序,并且知道表字段的数据类型和限制条件。那么也可以使用下面这种语法:

insert into table_name  values(值1,值2.。。);
image.png

2.查询数据

数据查询使用select 关键字进行数据表的扫描。

1)查询指定字段的内容

select 字段1,字段2.。 from table_name;
select name from hero;
image.png

2)查询所有的列数据

select * from table_name;
  • 表示所有的字段,菊花表示查询数据库所有字段。


    image.png

3)按照条件查询

select (字段/*) from  table_name where 条件;

--查询ID为3的英雄的技能
select skill from hero where id=3;
image.png

3.修改数据

修改数据也是网页操作中比较常见操作。

update table_name set 字段=值,字段2=值2.。。  where 条件;

注意:
update更新操作一般都是由where条件的,如果要运行的是一个没有where条件的SQL更新语句,那么一定要小心小心再小心。update操作在没有where条件的时候会修改整个表当中的所有数据。


image.png

image.png

4.删除数据

delete from table_name where 条件;
同样的,删除操作一般也是具有where条件的,如果没有where条件,一定要再三确认。


image.png

image.png

十二、字符集以及校对规则

1.乱码问题

1)产生原因

image.png

image.png

数据库表的字符编码与客户端通信使用的字符编码不一致。数据库采用的是utf8保存的。客户端使用的是gbk获取的,所以产生乱码。

2)解决办法

客户端的编码是无法改变的。只能设置数据的字符集编码。
查看当前数据库关于字符集的一些变量:

show  varables like ‘%character%’;
image.png

第一种解决办法:
设置使用gbk通信:

set names gbk;
image.png

image.png

[图片上传中...(image.png-5787af-1556110158288-0)]
第二种解决办法:
单独去设置影响显示的系统变量:

set 变量名 = 值;
set character_set_client = utf8;
image.png

2.字符集

1)概念

字符集:字符的编码。

2)常用的字符集编码

ASCII:美国的通用信息编码。
gbk/gb2312:汉字编码。
utf8:万国码,本质上是使用8位可变长度的字节的字符编码,几乎支持所有的文字。

3)数据库中的编码:

数据库编码默认的是使用utf编码。数据表的编码默认使用数据库的编码。
设置了新的数据库编码之后,已有的表还保持之前的字符编码,新建的表采用新的编码方式。

4)字符集统一规则

只有以下几个方面的字符编码方式一致,最终文字的显示才会准确。

  • 数据库的编码
  • 数据表的编码
  • PHP文件存数据的编码
  • PHP文件取数据的编码
  • HTML显示的编码

5)查看数据库支持的编码

show charset;
image.png

3.校对规则(排序规则)

1)概念

校对集:同一个字符编码当中,字符串的比较规则就叫校对集。


image.png

2)查看服务器支持的校对规则

show collaction;
image.png

3)校对规则命名特点

image.png

ci:表示不区分大小写:A===a
cs:表示区分大小写 A!=a
bin: 表示按照二进制编码顺序排序。

utf8一般使用 utf8_general_ci 这种校对集规则。

校对规则是针对一种字符编码的,一种字符编码可以有多种校对集。
默认的校对规则在查看建表语句的时候是不显示的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,695评论 0 44
  • 今天看到一位朋友写的mysql笔记总结,觉得写的很详细很用心,这里转载一下,供大家参考下,也希望大家能关注他原文地...
    信仰与初衷阅读 4,723评论 0 30
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,772评论 5 116
  • MySQL数据库 课程目标:1.如何使用MySQL数据库,主要是讲解基本的语法2.如何设计数据库? 第一章 数据库...
    我爱开发阅读 1,316评论 1 4
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,156评论 0 9