当前位置:   article > 正文

最详细的MySQL数据库的使用_mysql怎么用

mysql怎么用

一、数据库服务的启动与登录

MySQL服务器启动方式有两种:
1)通过服务的方式自动启动
2)手动启动的方式

1、Windows服务方式启动

操作步骤:
在这里插入图片描述
在这里插入图片描述
2、DOS命令方式启动

2.1操作步骤:
在这里插入图片描述
在这里插入图片描述
3、控制台连接数据库

MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录

3.1 登录格式1:u和p后面没有空格

mysql-u用户名-p密码
在这里插入图片描述
后输入密码
在这里插入图片描述
3.2 登录格式2:

mysql-hip地址-u用户名-p密码

127.0.0.1代表本机的IP地址
在这里插入图片描述
3.3 登录格式3:
在这里插入图片描述
3.4 退出MySQL:
quit或exit

4、SQLyog图形化工具------客户端
SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库

4.1使用SQLyog登录数据库
在这里插入图片描述
4.2 MySQL目录结构

MySQL目录结构描述
bin<目录>所有mysql的可执行文件,如:mysql.exe
MySQLInstanceConfig.exe数据库的配置向导,在安装时出现的内容
data<目录>系统必须的数据库所在的目录
my.ini文件mysql的配置文件,一般不建议去修改
c:\ProgramData\MySQL\MySQLServer5.5\data\我们自己创建的数据库所在的文件夹

4.3 数据库管理系统

数据库管理系统(DataBaseManagementSystem,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据

4.4数据库管理系统、数据库和表的关系

数据库管理程序(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体User的数据。数据库管理系统、数据库和表的关系如图所示:
在这里插入图片描述
*结论:
1)一个数据库服务器包含多个库
2)一个数据库包含多张表
3)一张表包含多条记录


二、如何学习MySQL

1.SQL的概念

1.1 什么是SQL
StructuredQueryLanguage结构化查询语言
1.2 SQL作用
1)是一种所有关系型数据库的查询规范,不同的数据库都支持。
2)通用的数据库操作语言,可以用在不同的数据库中。
3)不同的数据库SQL语句有一些区别
1.3 SQL语句分类
1)DataDefinitionLanguage(DDL数据定义语言)如:建库,建表
2)DataManipulationLanguage(DML数据操纵语言),如:对表中的记录操作增删改
3)DataQueryLanguage(DQL数据查询语言),如:对表中的查询操作
4)DataControlLanguage(DCL数据控制语言),如:对用户权限的设置
1.4 MySQL的语法
1)每条语句以分号结尾,如果在SQLyog中不是必须加的。
2)SQL中不区分大小写,关键字中认为大写和小写是一样的
3)3种注释:

注释的语法说明
- -空格单行注释
/* */多行注释
#这是MySQL特有的注释方式

2 DDL操作数据库

2.1创建数据库
2.1.1创建数据库的几种方式

*创建数据库
## CREATE DATABASE 数据库名;

*判断数据库是否已经存在,不存在则创建数据库
***CREATE DATABASE IF NOT EXISTS数据库名;

*创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET 字符集;

2.1.2具体操作:

直接创建数据库db1
create database db1;

判断是否存在,如果不存在则创建数据库db2
create database if not exists db2;

创建数据库并指定字符集为gbk
create database db3 default character set gbk;

2.2 查看数据库

按tab键可以自动补全关键字

查看所有的数据库
show databases;

查看某个数据库的定义信息
show create database db3;
show create database db1;

2.3 修改数据库

2.3.1 修改数据库默认的字符集

ALTER DATABASE 数据库名 DEFAULT CHARACTER SET字符集;

2.3.2删除数据库

删除数据库的语法
DROP DATABASE 数据库名;
具体操作:
每行SQL语句需要选中再执行,可以按F9

*删除db2数据库
drop databasedb2;

2.4 使用数据库

2.4.1 查看正在使用的数据库
SELECT DATABASE**()**使用的一个mysql中的全局函数

2.4.2使用/切换数据库
USE 数据库名;

2.4.3具体操作:
查看正在使用的数据库
select database();

改变要使用的数据库
use db4;

2.5 DDL操作表结构

*前提先使用某个数据库

2.5.1创建表

创建表的格式
CREATE TABLE 表名(
字段名1 字段类型1,
字段名2 字段类型2
);

2.5.2 关键字说明

创建表的关键字说明
CREATE创建
TABLE

MySQL数据类型
2.5.3 常使用的数据类型如下:

类型描述
int整形
double浮点型
varchar字符串型
data日期类型,格式为yy-MM-dd,只有年月日,没有时分秒;

2.5.4详细的数据类型如下

分类类型名称类型说明
整型tingint微整型:很小的整数(占8位二进制)
整型smallint小整型:小的整数(占16位二进制)
整型mediumint中整型:中等长度的整数(占24位二进制)
整型int(integer)整型:整数类型(占32位二进制)
小数float单精度浮点数,占4个字节
小数double双精度浮点数,占8个字节
日期time表示时间类型
日期date表示日期类型
日期datetime同时可以表示日期和时间类型
字符串char(m)固定长度的字符串,无论使用几个字符都占满全部,M为0~255之间的整数
字符串varchar()可变长度的字符串,使用几个字符就占用几个,M为0~65535之间的整数
大二进制tinyblob Big Large Object允许长度0~255字节
大二进制blob允许长度0~65535字节
大二进制mediumblob允许长度0~167772150字节
大二进制longblob允许长度0~4294967295字节
大文本tinytext允许长度0~255字节
大文本text允许长度0~65535字节
大文本mediumtext允许长度0~167772150字节
大文本longtext允许长度0~4294967295字节

2.5.5 具体操作:
创建student表包含id,name,birthday字段
create table student(
id int, --整数
name varchar(20),- -字符串
birthday date- -生日,最后没有逗号
);

2.6 查看表
2.6.1 查看某个数据库中的所有表
SHOW TABLES;

2.6.2 查看表结构
DESC 表名;

2.6.3 查看创建表的SQL语句
SHOW CREATETABLE表名;

2.6.4 具体操作:
查看day21数据库中的所有表
use day21;
show tables;

查看student表的结构
desc student;
执行结果:
在这里插入图片描述

查看student的创建表SQL语句
show create table student;
执行结果:
存在的目的是为了避免关键字的冲突
在这里插入图片描述
2.7 快速创建一个表结构相同的表
2.7.1语法
CREATE TABLE 新表名 LIKE 旧表名;
2.7.2具体操作
创建s1表,s1表结构和student表结构相同
在这里插入图片描述
2.8 删除表
2.8.1 直接删除表
DROP TABLE 表名;

2.8.2 判断表是否存在,如果存在则删除表
DROP TABLE IF EXISTS 表名;
2.8.3 具体操作:
在这里插入图片描述
*与直接删除的区别
如果表不存在,不删除,存在则删除

2.9修改表结构

2.9.1 添加表列ADD
ALTER TABLE 表名 ADD 列名类型;

为学生表添加一个新的字段remark,类型为varchar(20)
alter table student add remark varchar(20);
在这里插入图片描述
2.9.2修改列类型MODIFY

ALTER TABLE 表名 MODIFY 列名 新的类型;

student表中的remark字段的改成varchar(100)

alter table student modify remark varchar(100);
在这里插入图片描述
2.9.3 修改列名 CHANGE

ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;

在这里插入图片描述
2.9.4 删除列 DROP

ALTER TABLE 表名 DROP 列名;

删除student表中的字段into
在这里插入图片描述
2.9.5 修改表名

RENAME TABLE 表名 TO 新表名;

将学生表student改名成student2
rename table student to student2;

2.9.6 修改字符集 character set

ALTER TABLE 表名character set 字符集;

将student2表的编码修改成gbk
alter table student 2 character set gbk;


三、DML操作表中的数据

     用于对表中的记录进行增删改操作
  • 1

1.1插入记录
INSERT [INTO] 表名 [字段名] VALUES(字段值)
INSERT INTO 表名:表示往哪张表中添加数据
(字段名1,字段名2,…):要给哪些字段设置值
VALUES(值1,值2,…):设置具体的值

1.1.1插入全部字段

*所有的字段名都写出来
INSERT INTO 表名 (字段名1,字段名2,字段名3…) VALUES (值1,值2,值3);

*不写字段名
INSERT INTO 表名 VALUES(值1,值2,值3…);

1.1.2插入部分数据
INSERT INTO 表名 (字段名1,字段名2,…) VALUES(值1,值2,…);

*注:没有添加数据的字段会使用NULL

1.1.3具体操作:
*插入所有的列,向学生表中
insert into student (id,name,age,sex) values (1,‘孙悟空’,20,‘男’);
insert into student (id,name,age,sex) values (2,‘孙悟天’,16,‘男’);

执行效果:
在这里插入图片描述
*向表中插入所有字段
在这里插入图片描述
执行效果:
在这里插入图片描述
2.2 更新表记录
在这里插入图片描述
2.21 不带条件修改数据
UPDATE 表名 SET 字段名=值 ;- -修改所有的行

2.2.2带条件修改数据
UPDATE 表名 SET 字段名 = 值WHERE 字段名 = 值;

2 .2.3具体操作:
在这里插入图片描述
2.3 删除表记录

DELETE FROM 表名 [WHERE 条件表达式]
如果没有指定 WHERE 子句,MySQL表中的所有记录将被删除。
你可以在 WHERE 子句中指定任何条件

2.3.1 不带条件删除数据
DELETE FROM 表名;

2.3.2 带条件删除数据
DELETE FROM 表名 WHERE 字段名 = 值;

2.3.3 使用truncate删除表中所有记录
TRUNCATE TABLE 表名;

2.3.4 truncate和delete的区别:
truncate相当于删除表的结构,再创建一张表。

2.3.5具体操作:
在这里插入图片描述

四、DQL查询表中的数据

查询不会对数据库中的数据进行修改.只是一种显示数据的方式

SELECT 列名 FROM 表名 [WHERE 条件表达式]
1)SELECT 命令可以读取一行或者多行记录。
2)你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
3)你可以使用WHERE语句来包含任何条件。

4.1简单查询

4.1.1查询表所有行和列的数据

使用表示所有列
SELECT * FROM表名;

查询所有的学生:
select * fromstudent;

4.1.2查询指定列

查询指定列的数据,多个列之间以逗号分隔
SELECT 字段名1,字段名2,字段名3,…FROM 表名;

查询student表中的nameage
select name,age from student;

4.2指定列的别名进行查询

4.2.1使用关键字
使用别名的好处:显示的时候使用新的名字,并不修改表的结构。

4.2.2语法:

对列指定别名
SELECT 字段名1 AS 别名, 字段名 2 AS 别名… FROM 表名

对列和表同时指定别名
SELECT 字段名1 AS 别名 ,字段名2 AS 别名… FROM 表名 AS 表别名;

4.2.3具体操作:

**使用别名
select name as 姓名, age as 年龄 from student;
表使用别名
select st.name as 姓名 , age as 年龄 from student as st

表使用别名的原因:用于多表查询操作

4.3清除重复值

4.3.1 查询指定列并且结果不出现重复数据

SELECT DISTINCT 字段名 FROM 表名;

4.3.2具体操作:

查询学生来至于哪些地方

查询学生来至于哪些地方
select address from student;
去掉重复的记录

select distinct address from student;

4.4查询结果参与运算

4.4.1某列数据和固定值运算

SELECT 列名1 + 固定值 FROM 表名;

4.4.2某列数据和其他列数据参与运算
SELECT 列名1 + 列名2 FROM 表名;

注意:参与运算的必须是数值类型

4.4.3需求:
准备数据:添加数学,英语成绩列,给每条记录添加对应的数学和英语成绩,查询的时候将数学和英语的成绩相加

4.4.4实现:

在这里插入图片描述
4.5 条件查询

4.5.1为什么要条件查询

如果没有查询条件,则每次查询所有的行。实际应用中,一般要指定查询的条件。对记录进行过滤。

4.5.2条件查询的语法

SELECT 字段名 FROM 表名 WHERE 条件;

流程:取出表中的每条数据,满足条件的记录就返回,不满足条件的记录不返回

准备数据
创建一个学生表,包含如下列:
在这里插入图片描述
运算符
在这里插入图片描述
具体操作
在这里插入图片描述
在这里插入图片描述
逻辑运算符

逻辑运算符说明
and或&&与,SQL中建议使用前者,后者并不通用。
or
not

具体操作
在这里插入图片描述
in 关键字

SELECT 字段名 FROM 表名 WHERE 字段 in (数据1,数据2…);
in 里面的每个数据都会作为一次条件,只要满足条件的就会显示

具体操作:

查询id是1或3或5的学生
select * from student3 where id in(1,3,5);

查询id不是1或3或5的学生
select * from student3 where id not in (1,3,5);

范围查询

BETWEEN 值1 AND 值2

表示从值1到值2范围,包头又包尾
比如:age BETWEEN 80 AND 100 相当于:age>=80&&age<=100

查询english成绩大于等于75,且小于等于90的学生
select * from student3 where english between 75 and 90;

like关键字

LIKE表示模糊查询
SELECT * FROM 表名 WHERE 字段名 LIKE ‘通配符字符串’;

MySQL通配符

通配符说明
%匹配任意多个字符
-匹配一个字符

查询姓马的学生

select * from student3 where name like ‘马%’;
select * from student3 where name like ‘马’;

查询姓名中包含’德’字的学生
select * from student3 where name like ‘%德%’;

查询姓马,且姓名有两个字的学生
select * from student3 where name like’马_’;

                                 ----注:部分截图来自传智播客
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/274240
推荐阅读
相关标签
  

闽ICP备14008679号