MySQL的使用

2018-08-10  本文已影响0人  虫儿飞ZLEI

layout: post
title: MySQL的使用
subtitle: MySQL
date: 2018-01-25
author: ZL
header-img: img/20180125.jpg
catalog: true
tags:
- MySQL


一、数据库的分类

二、数据库指令

2.1 数据库的操作:database

2.1.1 创建数据库 & 显示所有的数据库 & 查看数据库编码

create database 库名
create database 库名 character set 编码
show databases :显示所有的数据库
show create database 库名

2.1.2 删除一个库

drop database 库名

image

2.1.3 使用库 & 查看当前正在操作的库

use 库名

image

select database()

image

2.2 表操作: table

2.2.1 创建表

create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
字段名 类型(长度) [约束]
);

image

primary key auto_increment传入null值的话就会自动增长

2.2.2 查看所有的表 & 查看表的结构

show table

image

desc 表名

image

2.2.3 删除一张表

drop table 表名

image

2.2.4 修改表

2.2.4.1 添加一列

alter table 表名 add 字段名(列名) 类型(长度)[约束]

image

2.2.4.2 修改列的类型 (长度、约束)

alter table 表名 modify 列名 类型(长度)[约束]

image

2.2.4.3 修改列的列名

alter table 表名 change 旧列名 新列名 类型(长度)[约束]

image

2.2.4.4 删除表的列

alter table 表名 drop 列名

image

2.2.4.5 修改表名

rename table 旧表名 to 新表名

image

2.2.4.6 修改表的字符集 & 查看当前表的编码

alter table 表名 character set 编码

image

show create table 表名

image

2.3 对记录增删改查

2.3.1 插入记录

insert into table 表名 (列1,列2,列3...) values (值1,值2,值3...)

image

insert into table 表名 values (值1,值2,值3...)需要所有的列都赋值(没有值可以赋null)

image

2.3.2 修改记录

update 表名 set 列名 = 值,列名=值,列名=值...

image

update 表名 set 列名=值,列名=值... where 条件

image

2.3.3 删除记录

delete from 表名 where 条件

image

删除后,uid不会重置

delete from 表名


image

2.3.4 查询记录

数据准备

#创建商品表
create table product(
    pid int primary key auto_increment,
    pname varchar(20),
    price double,
    pdate timestamp
)

insert into product values (null,'谭妮平',0.01,null);
insert into product values (null,'李士雪',38,null);
insert into product values (null,'左慈',-998,null);
insert into product values (null,'黄迎',99999,null);
insert into product values (null,'南国强',99998,null);
insert into product values (null,'士兵',1,null);
insert into product values (null,'李士兵',698,null);

2.3.4.1 简单查询

select * from profuct

image

select pname,price from product

image

select * from product as p //as可以省略

image

select pname as p from product

image

select distinct(price) form product

image

select pname,price+10 from profuct

image

2.3.4.2 条件查询

select * from product where pname = '左慈'

image

select * from profuct where price>60

image

select * from profuct where pname like '*%士%'

image

select * from profuct where pid in(3,6,9);

image

select * from product where pname like '%士%' and pid = 6

image

select * from profuct where pid = 2 or pid = 6

image

2.3.4.3 排序

select * from product order by pricr desc

image

desc:降序
asc:升序,默认

select * from profuct where pname like '%士%' order by price desc

image

2.3.4.4 聚合函数

select sum(price) from product

image

select avg(price) from product

image

select count(*) from profuct

image

2.3.4.5 分组操作

数据准备

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

select count(*) from product group by cid

image

select avg(price) from product group by cid having avg(price) > 20000

image

2.3.4.6 查询总结

关键字出现的顺序:
select
from
where
group by
having 分组后带有条件只能使用having
order by 它必须放到最后面

MySQL字段类型

image
image

插入数据中文乱码问题解决

image image

delete和truncate

delete:删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。
truncate:它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。

delete演示:

image

Truncate演示:

image

delete删除,uid不会重置!而使用truncate操作,uid会重置

上一篇下一篇

猜你喜欢

热点阅读