MySQL安装及其简单操作

本文介绍MySQL5.7.17压缩版的安装步骤及常用操作命令,包括服务安装、初始化、数据库和表的基本操作等。此外,还提供了解决中文乱码的方法以及SQL查询、分组和多表查询的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

`mysql

mysql 5.7.17 压缩版安装

1、复制 my-default.ini 重命名为my.ini
2、在my.ini中添加以下内容:

[client]
default-character-set=utf8

[mysqld]
basedir = E:\codeProgram\mysql_5.7
datadir = E:\codeProgram\mysql_5.7\data
port = 3306
character-set-server = utf8

3、以管理员权限打开cmd,进入mysql的bin下,mysqld --install MySQL安装服务。
4、mysqld --initialize-insecure 初始化data文件。
5、启动服务net start mysql
6、

mysql -u root -p;   //root密码初始为空。
use mysql;          //进入数据库mysql

//设置root密码,注意新的mysql中以把字段password改为authentication_string
update user set authentication_string=PASSWORD('wu25471396')where user = 'root';

MYSQL 简单操作

一、 对数据库的操作

1、创建一个库

create database 库名;
create database 库名 character set 编码;

2、查看数据库

//查看有哪些数据库
show databases;

//查看指定数据库的编码
show create database 库名;

3、删除一个库

drop database 库名;

4、使用库

use 库名;

5、查看当前正在操作的库

select database();

二、对数据库表的操作

1、创建一张表

create table product(
    pid int primary key auto_increment,
    pname varchar(20)not null unique,
    price double
);

2、删除表

drop table product;

3、查看表

show tables;        --查看数据库中的所有表
show create table product;      --查看表的字符编码
desc 表名;           --查看表结构

4、修改表

alter table product add info varchar(100);      --添加列
alter table product modify pname varchar(18);   --修改表列的类型长度及约束 
alter table product change info pro_info varchar(50);   --修改表修改列名
alter table product drop pro_info;              --删除列
rename table product to newproduct;             --修改表名
alter table product character set gbk;          --修改表的字符集

5、插入记录

insert into newproduct(pid,pname,price) values(null,'笑笑',0.5);
insert into newproduct values(null,'王笑',9999);

6、更新记录

update newproduct set pname='李笑',price=789 where pid = 2;

7、删除记录

delete from newproduct where pid=2;

注意:删除表中用delete from 表名; 还是用 truncate table 表名:

删除方式:delete 一条一条删除,不清空auto_increment记录数。
          truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。
事务方面:delete删除的数据,如果在一个事务中则可以找回。
          truncate删除的数据找不回来。

例:

start transaction;          --开启事件
delete table newproduct;
rollback;                   --回滚

8、cmd中文乱码
方式一:修改my.ini文件,然后重新启动mysql服务器

[mysql]

default-character-set=gbk

方式二:在cmd命令行中,当前cmd命令窗口有效

cmd> set names gbk;

三、单表的查询

1、简单查询

select * from newproduct;
select pname,price from newproduct;

--别名
select * from newproduct as 商品;           --as可以省略
select pname as 商品名称 from newproduct     --as可以省略

2、条件查询

select * from newproduct where pname = '笑笑';
select * from newproduct where price > 60;

where后条件的写法:

比较运算符例子
< <= >= = <>
BETWEEB 12 AND 20显示在区间12到20的值(包含12和20)
IN(100,200)显示在in列表中的值,即100或200
LIKE ‘_张%’_代表一个一个字符,%代表任意多个
IS NULL是否为空
逻辑运算符例子或解释
and
or
where not(salary>100)不成立

3、排序

-- asc 升序 (默认),desc 降序
select * from newproduct order by price asc;

4、聚合函数

-- sum(), avg(), max(), min(), count()计数
select sum(price) from newproduct;
select count(*) from newproduct;

5、分组
准备测试阶段:

--添加id(cid)
alter table product add cid varchar(32);
--初始化数据
update newproduct set cid='1';
update newproduct set cid='2' where pid in(5,6,7);

分组

--根据cid字段分组,分组后统计商品的个数
select cid,count(*) from newproduct group by cid;

--根据cid分组,分组统计每组商品的平均价格,并且平均价格>60;
select cid,avg(price) from newproduct group by cid having avg(price)>60;

6、去掉重复数据

select distinct(price) from newproduct;

查询注意事项:
select 字段
from 表名
where 条件
group by 分组
having 分组后带有的条件只能使用having
order by 必须放在最后


四、多表相关

表与表的关系:
  • 一对多建表原则:
    在多的一方(从表)创建一个字段,字段作为外键指向一的一方(主表)的主键。
  • 多对多建表原则:
    需要创建第三张表,中间表至少有两个字段,这两个字段风别作为外键指向各自一方的主键。
  • 一对一(其实可以创建成一张表):
    两种建表原则:外键唯一unique。 外键是从表的主键。

增删外键约束

--其中constraint product_fk可以省略,product_fk为外键名称product 为从表。
alter table product add constraint product_fk foreign key(category_id) references category(cid);

--根据外键名称product_fk 删除外键。
alter table product drop foreign key product_fk;

例:多对多(订单和商品)

-- 订单表
create table orders(
    oid varchar(32) primary key,
    totalprice double
);

-- 订单项表
create table orderitem(
    oid varchar(50),
    pid varchar(50)
);

-- 联合主键(可以省略)
alter table orderitem add primary key(oid,pid);

-- 订单表和订单项表的主外键关系
alter table orderitem add constraint orderitem_orders_fk foreign key(oid) references orders(oid);

-- 商品表和订单项表的主外键关系
alter table orderitem add constraint orderitem_product_fk foreign key(pid) references product(pid);

注:
- 从表外键不能添加:主表中不存在的记录。
- 主表不能删除:从表中已经引用的记录


2、多表查询
  1. 交叉查询select * from category,product; 基本不会使用-得到两个表的笛卡儿积。
  2. 内连接(inner join –inner可以省略),
-- 隐式内连接:
            select * from category,product where cid=category_id;select * from category c,product p where c.cid=p.category_id;
-- 显示内连接:
            select * from category inner join product on cid=category_id;
  1. 外连接查询:(outer join –outer可以省略)
-- 左外连接:
            select * from category left outer join product on cid=category_id;
-- 右外连接:
            select p.* from category right join product p on cid=p.category_id;
  1. 子查询:
select * from product where category_id=(
            select cid from category where cname='化妆品');

注:
++内连接:查询两个表的交集。++
++左外连接:查询左表全部及两个表的交集。++
++右外连接:查询右表全部及两个表的交集。++


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值