MySQL | 认识和使用 MySQL17认证网

正规官方授权
更专业・更权威

MySQL | 认识和使用 MySQL

认识和使用 MySQL

一、认识 MySQL

1.1 什么是 MySQL

MySQL 是 关系型 数据库。

  • 关系型可以理解为表格的概念。
    • 表头:每一列的名称;
    • 列:具有相同数据类型的集合;
    • 行:每一行用来描述某个具体信息;
    • 键:表中用来识别某个特定对象的方法,键的值在当前列中具有唯一性;
    • 值:行的具体信息,每个值必须与该列的数据类型相同。
    • 表格具有表头、行、列、键、值等。
  • 一个关系型数据库由一个或多个表格组成。

如:

id name sex age
1 小明 18
2 小红 17
3 小张 19
4 小李 16
  • 表头为 id、name、sex、age;
  • id:作为一个键。

1.2 Windows 下配置 MySQL

此处为免安装版 MySQL-8.0.36,下载地址 – ZIP文件[1]

解压到目录:E:\MySQL-8.0.36

接着在文件夹中创建配置文件 my.ini,内容如下:

[client]

# 设置mysql客户端默认字符集

default-character-set=utf8

port=3306

[mysqld]

# 设置3306端口

port=3306

# 设置mysql的安装目录

basedir=E:\\MySQL-8.0.36

# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错

# datadir=C:\\web\\sqldata

# 允许最大连接数

max_connections=20

# 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

然后配置环境变量:

  • 打开环境变量设置,新建变量名 MYSQL_HOME,变量值为 E:\MySQL-8.0.36
  • 系统变量 PATH 中添加 E:\MySQL-8.0.36\bin

最后启动命令提示符(cmd),执行命令:

mysqld.exe –install MySQL –defaults-file=”E:\MySQL-8.0.36\my.ini”

  • 如果安装被拒绝,请使用管理员权限启动cmd。

提示 Service successfully installed. 表示成功。

安装成功1.2.1 MySQL 的启动、停止和卸载

MySQL 服务的启动:net start MySQL

MySQL 服务的停止:net stop MySQL

MySQL 服务的卸载:sc delete MySQL

1.3 MySQL 脚本的基本组成

MySQL 通过执行 SQL 脚本来完成对数据库的操作。

  • 脚本由一条或多条 MySQL 语句(SQL 语句 + 扩展语句)组成,保存为脚本文件一般为 .sql 文件。
  • 控制台可以进行单句脚本执行。

标识符:

  • 命名对象,如数据库、表、列、变量等。由字母、数字、下划线组成,第一个字符不能为数字。
    • 大小写是否敏感取决于操作系统,Windows 下是不敏感的,但大多数 Linux 下是敏感的。

关键字:

  • 关键字有特定的含义,避免作为标识符。(此处不列出,使用中学习)

语句:

  • 是组成 MySQL 脚本的最小单位。每条语句可以完成特定操作,由 SQL 语句 + 扩展语句组成。

函数:

  • 实现数据库操作的高级功能,大致分为:字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数。

1.4 MySQL 中的数据类型

三大数据类型:数字、日期/时间、字符串。

数字:

  • 整型:
    • tinyint:1个字节,带符号范围 ;
    • smallint:2个字节,带符号范围 ;
    • mediumint:3个字节,带符号范围 ;
    • int:4个字节,带符号范围 ;
    • bigint:8个字节,带符号范围 ;
  • 浮点型:
    • float(m,d):单精度浮点型,8位精度(4字节),总精度 ,小数位 ,以实际为准。
    • double:双精度浮点型,16位精度(8字节),总精度 ,小数位 ,以实际为准。
    • real
    • decimal(m,d):定点数,存放精确的值。如果 则大小为 字节,否则为 字节。

日期和时间:

  • date:格式为 YYYY-MM-DD,大小3字节,范围1000-01-01/9999-12-31
  • time:格式为 HH:MM:SS,大小3字节,范围-838:59:59/838:59:59
  • year:格式为 YYYY,大小1字节,范围1901/2155
  • datetime:格式为 YYYY-MM-DD HH:MM:SS,大小8字节,范围1000-01-01 00:00:00/9999-12-31 23:59:59
  • timestamp:格式为 YYYY-MM-DD HH:MM:SS,大小4字节,范围1970-01-01 00:00:00/2038-01-19 03:14:07(结束时间为距离1970-01-01 00:00:00 的第 秒,看时区)。
    • 时间戳的数据会随其他字段修改时自动更新。

字符串类型:

  • 字符串:
    • char(n):定长字符串,0~255字节。
    • varchar(n):变长字符串,0~65535字符。
    • char(n)varchar(n):两者的 都表示字符个数,而不是字节个数。前者若存入字符数小于 ,则用空格补在后面,查询时去掉空格;而后者没这个规定。
  • 文本:
    • tinytext:短文本字符串,0~255字节。
    • text:长文本数据,0~65535字节。
    • mediumtext:中等长度文本数据,0~16777215字节。
    • longtext:极大文本数据,0~4294967295字节。
  • varchartext
    • 前者可以指定 n,后者不能指定;
    • 后者不能有默认值;
    • 前者可直接创建索引,后者创建索引需要指定前多少个字符。前者查询速度快于后者。
  • 二进制(存储图片、音乐等):
    • tinyblob:二进制字符串,0~255字节。
    • blob:二进制长文本,0~65535字节。
    • mediumblob:二进制中等长度文本,0~16777215字节。
    • longblob:二进制极大文本,0~4294967295字节。
  • _blob_text
    • 前者以二进制方式存储,英文不区分大小写,后者以文本方式存储,英文区分大小写;
    • 前者存储的数据只能整体读出;
    • 前者不用指定字符集,后者可以指定字符集。

数据类型的属性:

  • NULL:数据列可包含 NULL 值。
  • NOT NULL:数据列不允许包含 NULL 值。
  • DEFAULT:数据列的默认值。
  • PRIMARY KEY:主键。
  • AUTO_INCREMENT:自动递增。
  • UNSIGNED:无符号。
  • CHARACTER SET name:指定字符集。

二、使用 MySQL

2.1 登录到 MySQL

先启动 MySQL 服务(管理员权限cmd):

net start mysql

然后使用自带的客户端工具登录,cmd输入:

mysql -h 主机名 -u 用户名 -p

  • -h:表示登录到的主机名,当前机器可省略。
  • -u:表示登录的用户名。
  • -p:表示登录时需要输入密码,密码为空可忽略。
  • 这里安装的 MySQL 默认 root 账号是无密码的。

登录

我的第一次安装出现了坑:“如何解决本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止”

可能是因为之前不懂事弄着玩过,然后出了一堆错误。

解决办法:CSDN – 如何解决本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止[2]

2.2 创建一个数据库

创建命令如下:

create database 数据库名 [options];

创建数据库

  • MySQL 语句以分号作为结束。
  • show databases; 可查看创建了的数据库。

选择操作的数据库(必须先选择数据库,才能进行数据库的操作)。

  1. 登录时指定数据库:

mysql -D 数据库名 -h 主机名 -u 用户名 -p

  1. 登陆后使用 use 数据库名; 语句选择数据库。

2.2.1 创建数据库表

比如创建一张表,存放学号、姓名、性别、年龄、电话号码。

使用命令:

create table 表名称;

有时候表信息比较多,使用 .sql 脚本事先记录,然后执行 .sql 文件。

create tables students

(

id int unsigned not null auto_increment primary key,

name char(8) not null,

sex char(1) not null,

age tinyint unsigned not null,

tel char(13) null default “-“

);

通过命令提示符下的文件重定向执行执行该脚本。打开命令提示符, 输入:

mysql -D samp_db -u root -p < createtable.sql

  • 使用 show tables; 可以查看已创建的表。
  • 使用 describe 表名; 可以查看已创建表的详细信息。

创建的表

2.3 操作 MySQL 数据库

2.3.1 向表中插入数据

使用 insert 语句:

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

如:

insert into students values (NULL,‘ZhangSan’,‘M’,18,‘13800000000’);

也可以不按列的顺序:

insert into students (name,sex,age) values (‘LiSi’,‘F’,19);

2.3.2 查询表中的数据

使用 select 语句:

select 列名称 from 表名称 [查询条件];

如查询表中所有学生的名字和年龄:

select name, age from students;

查询

通配符 *:表示所有内容。

select * from students;

通配符查询

如果具有查询条件,使用 where 关键字:

select 列名称 from 表名称 where 条件;

如查找女性:

select * from students where sex = ‘F’;

带条件查询

  • 查询前已添加了 LiSi 的数据。

where 支持 =!=<<=>>=innot inis [not] nulllike 等运算符,支持与 orand 的组合。

如:

  • 查询名字中带有 “Wang” 字的所有人信息:

select * from students where name like “%Wang%”;

  • 查询 id 小于5且年龄大于20的所有人信息:

select * from students where id<5 and age>20;

2.3.3 更新表中的数据

使用 update 语句:

update 表名称 set 列名称=新值 where 更新条件;

如:

  • id 为5的手机号改为默认的”-“:

update students set tel=default where id=5;

  • 将所有人的年龄增加1:

update students set age=age+1;

2.3.4 删除表中的数据

使用 delete 语句:

delete from 表名称 where 删除条件;

如:

  • 删除所有年龄小于21岁的数据:

delete from students where age<20;

  • 删除表中的所有数据:

delete from students;

2.3.5 创建后表的修改

使用 alter table 语句:

添加列

alter table 表名 add 列名 列数据类型 [after 插入位置];

如:

  • 在表后添加列 addressalter table students add address char(20);
  • age 列后插入 birthdayalter table students add birthday date after age;
修改列

alter table 表名 change 列名 新列名 新列数据类型;

如:

  • 修改列 age 的数据类型:alter table students change age age tinyint unsigned null;
删除列

alter table 表名 drop 列名;

如:

  • 删除列 birthdayalter table students drop birthday;
修改表名

alter table 表名 rename 新表名;

删除整张表

drop table 表名;

删除整个数据库

drop database 数据库名;

2.4 修改 root 用户密码

其中一种方法:

mysqladmin -u root -p password 新密码

参考资料

[1]下载地址 – ZIP文件: https://dev.mysql.com/downloads/mysql/5.1.html#downloads[2]CSDN – 如何解决本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止: https://blog.csdn.net/u014555006/article/details/106025355

想了解更多干货,可通过下方扫码关注

详情咨询

可扫码添加上智启元官方客服微信👇

未经允许不得转载:17认证网 » MySQL | 认识和使用 MySQL
分享到:0

评论已关闭。

400-663-6632
咨询老师
咨询老师
咨询老师