1、MySQL数据库的介绍
- 什么是数据库
数据库(Database)就是按照数据结构来组织,存储和管理数据的仓库
专业的数据库是专门对数据进行创建,访问,管理,搜索等操作的软件,比起我们自己用文件读写的方式对象数据进行管理更加的方便,快速,安全
- 作用
- 对数据进行持久化的保存
- 方便数据的存储和查询,速度快,安全,方便
- 可以处理并发访问
- 更加安全的权限管理访问机制
- 常见的数据库
数据库分两大类,一类是 关系型数据库。另一类叫做 非关系型数据库。- 关系型数据库: MySQL,Oracle,PostgreSQL,SQLserver。。。。
- 非关系型数据库:Redis内存数据库,MongoDB文档数据库。。。
- 认识mysql数据库
MySQL是最流行的关系型数据库管理系统- 安装mysql
- 关于数据库的一些概念
- 数据库 Database
- 数据表 Tables
- 数据字段
- 行 row
- 列
2、Windows安装MySQL5.7.17
1. 在MySQL官网 http://dev.mysql.com/downloads/mysql/ 上面下载ZIP安装包(第二个:Windows (x86, 64-
bit), ZIP Archive)。2. 下载完成后解压,将其放到想要安装的目录下。
例如:D:\MySQL5.7\mysql-5.7.17-winx643. 新建一个my.ini配置文件,原始的my-default.ini配置文件只是个模版,不要在里面改动。
my.ini的内容如下:
[mysql] default-character-set=utf8
[mysqld] port = 3306 basedir=D:\MySQL5.7\mysql-5.7.17-winx64 datadir=D:\MySQL5.7\mysql-5.7.17-
winx64\data max_connections=200 character-set-server=utf8 default-storage-engine=INNODB
explicit_defaults_for_timestamp=true4. 在安装路径下新建一个空的data文件夹。
5. 以管理员身份运行cmd,进入bin目录,执行 mysqld --initialize-insecure --user=mysql 命令。不进行这一
步,安装完成之后无法启动服务。6. 依然在管理员cmd窗口的bin目录下,执行 mysqld install 命令安装。完成后会提示安装成功。
7. 依然在管理员cmd窗口的bin目录下,执行 net start mysql 命令启动MySQL服务。
8. 修改环境变量,添加"D:\MySQL5.7\mysql-5.7.17-winx64\bin"。
9. 在普通cmd窗口中,进入bin目录,执行 mysql -u root -p 命令,默认没有密码,回车进入。
3、初识 mysql的基本命令
3.1. 登录mysql(mysql -u root -p;)
在终端mysql bin 目录下输入以下命令,进行登录:
mysql -u root -p;
3.2. 查看当前mysql中所有的库(show databases;)
库==>数据库==>就像文件夹一样,库里面可以存储很多个表)
show databases;
3.3. 选择需要操作的库,打开库(use 库名;)
3.4. 查看当前库中的所有数据表(show tables;)
3.5. 查看表中的数据
3.6. 查看表结构
desc 表名;
3.7. 库和表的概念与关系
- 库就像是文件夹,库中可以有很多个表
- 表就像是我们的excel表格文件一样
- 每一个表中都可以存储很多数据
- mysql中可以有很多不同的库,库中可以有很多不同的表
- 表中可以定义不同的列(字段),
- 表中可以根据结构去存储很多的数据
3.8. 如何创建自己的库?
create database 库名 default charset=utf8mb4;
3.9. 创建表的语法
create table 表名( 字段名 类型 字段约束, 字段名 类型 字段约束, 字段名 类型 字段约束, )engine=innodb default charset=utf8;
-- 创建用户表
create table user(
name varchar(20),
age int,
sex char(1)
)engine=innodb default charset=utf8mb4;
-- Query OK, 0 rows affected (0.16 sec)
3.10. 添加数据
-- 向 user 表中 添加 name,age,sex 数据
insert into user(name,age,sex) values('admin',26,'男');
-- Query OK, 1 row affected (0.00 sec)
insert into user(name,age,sex) values('张三',22,'女');
-- 查看表中的数据
select * from user;
+--------+------+------+
| name | age | sex |
+--------+------+------+
| admin | 26 | 男 |
| 张三 | 22 | 女 |
+--------+------+------+
2 rows in set (0.00 sec)
3.11. 总结:
认识 库、表的概念和关系 mysql的基本命令: 登录,查看库,选择库,查看表, 创建库,创建表,添加数据,查 询数据。
4、MySQL基础操作
使用方法:
方式一: 通过在命令行敲命令来操作 ( 有助于命令的掌握)
方式二: 通过图型界面工具,如 Navicat 等(在熟练掌握后再使用)
方式三:通过编程语言(python,php,java,go...)执行mysql命令
4.1. SQL 结构化查询语言
SQL ( Structure query language )语言分为4个部分:DDL(定义)、DML(操作)、DQL(查询)、DCL(控制)
4.2. SQL快捷键
\G 格式化输出(文本式,竖立显示)
\s 查看服务器端信息
\c 结束命令输入操作
\q 退出当前sql命令行模式
\h 查看帮助
4.3 操作数据库的步骤
连接, 打开库, 操作, 关闭退出
1.通过命令行连接MySQL
数据库语法的特点
1) SQL 语句可以换行, 要以分号结尾
2) 命令不区分大小写. 关键字和函数建议用大写
3) 如果提示符为 '> 那么需要输入一个'回车
4) 命令打错了换行后不能修改, 可以用 \c 取消
2. 数据库操作
- 查看数据库 show databases;
- 创建数据库 create database 库名 default charset=utf8mb4;
- 删除数据库 drop database 库名;
- 打开数据库 use 库名;
3. 数据表操作
数据库管理系统中, 可以有很多库, 每个数据库中可以包括多张数据表
查看表: show tables;
创建表: create table 表名(字段名1 类型,字段名2 类型)engine=innodb default charset=utf8mb4;
创建表: 如果表不存在,则创建, 如果存在就不执行这条命令
create table if not exists 表名(字段1 类型,字段2 类型);
create table if not exists users( id int not null primary key auto_increment, name varchar(4) not null, age tinyint, sex enum('男','女') )engine=innodb default charset=utf8mb4;
删除表: drop table 表名;
表结构: desc 表名;
查看建标语句:show create table users;
4. 数据操作 增删改查
插入
insert into 表名(字段1,字段2,字段3) values(值1,值2,值3);
insert into 表名(字段1,字段2,字段3) values(a值1,a值2,a值3),(b值1,b值2,b值3);
查询
select * from 表名;
select 字段1,字段2,字段3 from 表名;
select * from 表名 where 字段=某个值;
修改
update 表名 set 字段=某个值 where 条件;
update 表名 set 字段1=值1,字段2=值2 where 条件;
update 表名 set 字段=字段+值 where 条件;
删除
delete from 表名 where 字段=某个值;
4.4 退出MySQL
exit; 或者 quit;
5、MySQL的数据类型
5.1 MySQL的数据类型
数据类型是定义列中可以存储什么类型的数据以及该数据实际怎样存储的基本规则
数据类型限制存储在数据列列中的数据。例如,数值数据类型列只能接受数值类型的的数据
在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。
更改包含数据的列不是一件小事(而且这样做可能会导致数据丢失)。
数据类型:整型、浮点型、字符串、日期等
1、字符串数据类型
最常用的数据类型是串数据类型。它们存储串,如名字、地址、电 话号码、邮政编码等。
不管使用何种形式的串数据类型,串值都必须括在引号内
有两种基本的串类型,分别为定长串和变长串
- 定长串:char
- 接受长度固定的字符串,其长度是在创建表时指定的。
定长列不允许存储多于指定长度字符的数据。 - 指定长度后,就会分配固定的存储空间用于存放数据
- 接受长度固定的字符串,其长度是在创建表时指定的。
char(7) 不管实际插入多少字符,它都会占用7个字符位置
- 变长串 varchar
- 存储可变长度的字符串 varchar(7) 如果实际插入4个字符, 那么它只占4个字符位置,当然插入的数据长度不能超过7 个字符。
注意
既然变长数据类型这样灵活,为什么还要使用定长数据类型?
回答:因为性能,MySQL处理定长列远比处理变长列快得多。
- Text 变长文本类型存储
2、数值类型
数值数据类型存储数值。MySQL支持多种数值数据类型,每种存储的数值具有不同的取值范围。支持的取值范围越
大,所需存储空间越多与字符串不一样