2019-03-25

MYSQL(数据库的安装与使用)


MYSQL介绍

mysql 轻量级数据库

oracle 企业级数据库

数据的保存类型:1.数据2.视频3.图片4.文件

5.5以前不好用,5.5之后完善

1.压缩版

1.下载

2.解压(最好不要出现中文路径)

3.创建一个配置文件my.ini 创建一个名为data文件夹

4.填写配置文件

[mysql]

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

        default-character-set=utf8

        [mysqld]

        #设置3306端口

        port = 3306

        # 设置mysql的安装目录

        basedir=D:\mysql\mysql-5.7.16-win32

        # 设置mysql数据库的数据的存放目录

        datadir=D:\mysql\mysql-5.7.16-win32\data

        # 允许最大连接数

        max_connections=200

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

        character-set-server=utf8

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

        default-storage-engine=INNODB

5.mysql初始化

(1)进入bin目录

(2)目录地址输入cmd

(3)输入mysqld install

(4)然后输入mysqld --initialize

(5)net start mysql

(6)修改mysql密码 

可以进行环境配置

把/bin的绝对路径复制到计算机的高级系统配置,path环境添加

2.安装版

https://jingyan.baidu.com/article/da1091fb6dd1bb027849d633.html (安装版教程)

3.mysql的命令使用

1.数据库的安装使用命令、

show databases 展示全部数据库

create database  xxx character set utf-8 创建数据库

show create database xxx 展示创建的数据库

drop database xxx 删除数据库

use xxx 使用某一个数据库

2.表的安装使用命令、

show tables 展示某一个数据库里面的所有表

create table xxx(id int(xx),name char(xx),age int(xx))创建一个表的各种字段

alter table xxx add xx char()  添加一个字段

alter table xxx modify xx char() 修改某一个字段的数据类型长度

change 替换某一个字段名或其他

int 分为:ting int(小整数)  int(整数)  bigint(大整数)

3.数据的插入与使用

语法

insert into 表名 values(对应的值,对应的值,对应的值)

增加内容  insert into xxx values(xx)

数据类型 char()  int() date() time() datetime()等

4.数据的修改与使用

update 表名 set 修改的字段名=修改的值 where(条件)


*4.MYSQL查询与使用

select *(字段) from xxx(表名) where(条件)

'_'代表一个单字符   '%'代表未知的多个字符

between    A  and B (在某一个范围)

in (,)  not in(,) (在那几个范围)

like()  not like() (模糊查询)

=,<,>,<>(不等于) =  !=  ,||,&&

is null    is not null (空值判断)

聚合函数

sum()

avg()

min()

max()

count()等

分组与排序

group by 分组查询

order by asc 默认正序   order by desc  逆序

having  在group by  后面加条件 

limit  限制页数与行数(以下标开始的)

limit  5 一页显示5个

用法 limit (3,5)下标三开始显示5个

-- 查询王燕的信息

select * from xs where xs.xs_name='王燕';

select xs_id,xs_name,xs_zy from xs where xs_name='王燕';

-- 查询并给重命名

select xs_id as '学号',xs_name as '姓名',xs_zy as '专业' from xs where xs_name='王燕';

-- 模糊查询法  '_'代表一个字符,‘%’代表多个字符

-- 查询名字中包含一个'燕'字的学生信息

select * from xs where xs_name like '%燕%';

-- 查询王姓的学生信息

select * from xs where xs_name like '王%';

-- 查询李姓的学生信息,并且规定姓名只有两个字

select * from xs where xs_name like '李_';

-- 查询在某一个范围内between A and B :查询A到B之间的数据 A必须小于B

select * from xs where xs_rq between '1990-02-10' and '1990-11-20'

-- 等价于

select * from xs where xs_rq >= '1990-01-01' and xs_rq <= '1990-12-31'

-- 指定具体几个范围数值

select * from xs where xs_rq in('1990-02-10','1990-11-20');

-- 不在指定范围内的

select * from xs where xs_rq not in('1990-02-10','1990-11-20');

-- 空值判断 is NULL

select * from xs where xs.xs_bz is null;

-- 非空判定

select * from xs where xs.xs_bz is not null;

-- 对查询结果进行排序  asc:正序    desc:倒序  order by 必须写在where后面

select * from xs where xs.xs_zy='计算机' order by xs.xs_rq desc;

-- 复合排序 先按专业排序,当专业相同时,按日期排序

select * from xs order by xs.xs_zy asc,xs.xs_rq desc;

-- 查询前几条记录 limit

-- 查询学号小于81110的前5个学生信息

select * from xs where xs_id < 81110 limit 5;

-- 查询学号小于81110的从第2条开始(下标为1),获取3条数据

select * from xs where xs_id < 81110 limit 1,3;

-- 查询学号小于81110的学生信息,列出从下标为2开始的三个学生信息

select * from xs where xs_id < 81110 limit 1,3;

-- 分组查询 group by 将查询结果分为男女两个组

-- 分组后只能显示对应组别的信息,例如:以性别分组后,只能显示两条信息,并且仅能显示与分组相关的信息

-- 分组一般与聚合函数一起使用

-- sum(),avg(),count(),max(),min()..

-- 统计计算机专业中男女生人数

select xs.xs_xb,count(xs_id) from xs where xs.xs_zy='计算机' group by xs.xs_xb;

-- 统计计算机专业中男女的最大年龄

select xs.xs_xb,min(xs_rq) from xs where xs.xs_zy='计算机' group by xs.xs_xb;

-- 查询所有学生中男生和女生年龄最大的两个学生的信息

-- 先将学生分组,获得男生、女生最大的日期

-- 将上一步的查询结果作为条件,合并

-- having 语句的用法 ---where语句里面不能有统计函数,而且where条件不能对group by 进行分组

-- having 一般与group by 结合使用

-- 查询所有学生的平均成绩

select xs_id as '学号',avg(kc_cj)as '平均成绩' from xs_kc group by xs_id;

-- 查询平均成绩大于80的学生信息

-- 1、查询平均成绩大于80的学生id‘

select xs_id from xs_kc group by xs_id having avg(kc_cj)>80;

-- 2、利用查询到的id查询学生的基本信息

select * from xs where

xs_id in(select xs_id from xs_kc group by xs_id having avg(kc_cj)>80);

-- 多表查询

-- 查询所有学生的课程及成绩

select xs.xs_name,kc_name,xs_kc.kc_cj from xs,xs_kc,kc where xs_kc.kc_id = kc.kc_id and xs_kc.xs_id = xs.xs_id;

-- 多表连接

-- 查询选修了206课程且成绩在80分以上的学生姓名及成绩

select xs.xs_name,xs_kc.kc_cj from xs,xs_kc where xs.xs_id = xs_kc.xs_id and xs_kc.kc_cj>80 and xs_kc.kc_id=206

-- join on

select xs.xs_name,xs_kc.kc_cj from xs join xs_kc on xs.xs_id = xs_kc.xs_id where xs_kc.kc_cj>80 and xs_kc.kc_id=206

-- 查询选修了“计算机基础”课程并且成绩在80分以上的学生学号、姓名、课程名及成绩

select xs.xs_id as '学号',xs.xs_name as '姓名' ,kc.kc_name as '课程名',xs_kc.kc_cj as '成绩'

from xs join xs_kc on xs.xs_id=xs_kc.xs_id

join kc on kc.kc_id=xs_kc.kc_id

where kc.kc_name='计算机基础' and xs_kc.kc_cj>80;

-- 查询数据库中课程不同、成绩相同的学生的学号、课程号及成绩

select a.xs_id as '学号',a.kc_id as '课程号',a.kc_cj as '成绩'

from xs_kc as a join xs_kc as b on a.kc_cj=b.kc_cj

and a.xs_id = b.xs_id

and a.kc_id!=b.kc_id;

-- LEFT OUTER JOIN :左外连接。。。在结果表里除了匹配行外,还包括左表有的但右表中不匹配的行,对于这样的行,从右表被选择的列设置为NULL

-- 查询所有学生情况及他们选修的课程号,若学生未选修任何课,也要包括其情况

select xs.*,kc_id from xs left outer join xs_kc on xs.xs_id=xs_kc.xs_id;

-- 交叉连接:CROSS JOIN 范例:列出所有学生所有可能的选课情况

select xs.xs_id as '学号',xs_name as '姓名',kc.kc_id as '课程号',kc.kc_name as '课程名'

from xs cross join kc;

-- 去重复 distinct  范例:查找所有学生选过的课程名和课程号

select distinct xs_kc.kc_id as '课程号',kc.kc_name as '课程名' from xs_kc,kc where kc.kc_id=xs_kc.kc_id;

-- 替换查询结果中的数据

--

select xs.xs_id as '学号' ,xs.xs_name as '姓名',xs.xs_xf as '学分' ,

case

when xs.xs_xf is null then '未选课'

when xs.xs_xf < 50 then '不及格'

when xs.xs_xf >= 50 and xs.xs_xf <=52 then '合格'

else '优秀'

end

as '等级'

from xs where xs.xs_zy='计算机';

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

推荐阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,641评论 5 116
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,005评论 0 19
  • 工具:myeclipse2014 mysql5.7 mysql 链接驱动 :mysql-connector-...
    前端杨肖阅读 2,436评论 1 8
  • 今天一天很愉快的渡过了。 小宝一天都很乖,我自己的事情也有条不紊的进行着,很多看不清方向的事情也渐渐明朗。有时候,...
    雅致如兰阅读 95评论 0 0
  • 1、引用全局变量时 非严格模式 会隐式的创建引用且没有定义的全局变量 严格模式 ...
    蚂蚁闲游阅读 159评论 0 0