MySQL的使用


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


一、数据库的分类

  • DDL: Data Definition Language,用来定义数据库对象:数据库database,表table, 列column等。 关键宇: 创建create, 修改alter, 删除drop等 (结构)。
  • DML: Data Manipulation Language,用来对数据库中表的记录进行更新。关键宇:插入insert,删除delete,更新update等(数据)。
  • DQL: Data Query Language,来查询数据库中表的记录。关键宇:select, from, where等。
  • DCL: Data Control Language,用来定义数据库的访问权限和安全级别, 及创建用户: 关键宇: grant等。

二、数据库指令

2.1 数据库的操作:database

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

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

  • 创建不带编码的

    image

  • 创建带编码的

    image

  • 查看编码


    image

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
  • 将所有的商品价格+10进行显示

select pname,price+10 from profuct

image

2.3.4.2 条件查询

  • 查询商品名称位“左慈”的商品信息

select * from product where pname = '左慈'

image
  • 查询价格>60元的所有商品信息

select * from profuct where price>60

image
  • 查询商品名称含有“士”的商品信息

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

image
  • 查询商品id在(3,6,9)范围内的所有商品信息

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

image
  • 查询商品名称含有"士"字并且id为6的商品信息

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

image
  • 查询id为2或者6的商品信息

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);
  • 根据cid字段分组,分组后统计商品的个数。

select count(*) from product group by cid

image
  • 根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。

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

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

  • 直接修改数据库安装目录里面的my.ini文件的第57行(不建议)
image
  • set names gbk;
image

delete和truncate

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

delete演示:

image

Truncate演示:

image

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容