mysql新手_MYSQL新手入门篇

一、数据库的简介

什么是数据库?

数据的仓库,如:在atm的实例中我们创建一个db目录称之为数据库

什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?

他们是数据库软件,主要功能为两部分:1、讲数据保存到内存或者文件。2、接受特定的命令对数据进行操作

什么是SQL?

上述问题说过,数据库要接受特定的命令,这个命令就是用SQL编写,他是结构化查询语言(Structured Query Language)的缩写,一种专门与数据库交互的语言。

二、数据库的安装

windows版本

1、下载

MySQL Community Server 5.7.16

http://dev.mysql.com/downloads/mysql/

2、解压

如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64

3、初始化

MySQL解压后的 bin 目录下有一大堆的可执行文件,执行如下命令初始化数据:

cd c:\mysql-5.7.16-winx64\bin

mysqld --initialize-insecure

4、启动MySQL服务

执行命令从而启动MySQL服务

# 进入可执行文件目录

cd c:\mysql-5.7.16-winx64\bin

# 启动MySQL服务

mysqld

5、启动MySQL客户端并连接MySQL服务

由于初始化时使用的【mysqld --initialize-insecure】命令,其默认未给root账户设置密码

48304ba5e6f9fe08f3fa1abda7d326ab.png

# 进入可执行文件目录

cd c:\mysql-5.7.16-winx64\bin

# 连接MySQL服务器

mysql -u root -p

# 提示请输入密码,直接回车

48304ba5e6f9fe08f3fa1abda7d326ab.png

输入回车,见下图表示安装成功:

f8e4f02146e23ef8a51c5e9eae1908c5.png

到此为止,MySQL服务端已经安装成功并且客户端已经可以连接上,以后再操作MySQL时,只需要重复上述4、5步骤即可。但是,在4、5步骤中重复的进入可执行文件目录比较繁琐,如想日后操作简便,可以做如下操作。

添加环境变量

将MySQL可执行文件添加到环境变量中,从而执行执行命令即可

48304ba5e6f9fe08f3fa1abda7d326ab.png

【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】

如:

C:\Program Files (x86)\Parallels\Parallels Tools\Applications;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python27;C:\Python35;C:\mysql-5.7.16-winx64\bin

48304ba5e6f9fe08f3fa1abda7d326ab.png

如此一来,以后再启动服务并连接时,仅需:

# 启动MySQL服务,在终端输入

mysqld

# 连接MySQL服务,在终端输入:

mysql -u root -p

. 将MySQL服务制作成windows服务

上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:

# 制作MySQL的Windows服务,在终端执行此命令:

"c:\mysql-5.7.16-winx64\bin\mysqld" --install

# 移除MySQL的Windows服务,在终端执行此命令:

"c:\mysql-5.7.16-winx64\bin\mysqld" --remove

注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:

# 启动MySQL服务

net start mysql

# 关闭MySQL服务

net stop mysql

linux版本

安装

yum install mysql-server

启动

mysql.server start

链接

48304ba5e6f9fe08f3fa1abda7d326ab.png

连接:

mysql -h host -u user -p

常见错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running.

退出:

QUIT 或者 Control+D

48304ba5e6f9fe08f3fa1abda7d326ab.png

三、数据库的操作

1、显示数据库

SHOW DATABASES;

默认数据库:

mysql - 用户权限相关数据

test - 用于用户测试数据

information_schema - MySQL本身架构相关数据

2、创建数据库

# utf-8

CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

# gbk

CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

3、使用数据库

USE db_name;

4、用户管理

48304ba5e6f9fe08f3fa1abda7d326ab.png

创建用户

create user '用户名'@'IP地址' identified by '密码';

删除用户

drop user '用户名'@'IP地址';

修改用户

rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;

修改密码

set password for '用户名'@'IP地址' = Password('新密码')

PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)

48304ba5e6f9fe08f3fa1abda7d326ab.png

5、授权管理

show grants for '用户'@'IP地址' -- 查看权限

grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权

revoke 权限 on 数据库.表 from '用户'@'IP地址' -- 取消权限

8f900a89c6347c561fdf2122f13be562.png对于权限

8f900a89c6347c561fdf2122f13be562.png对于数据库

8f900a89c6347c561fdf2122f13be562.png对于ip

8f900a89c6347c561fdf2122f13be562.png实例

注:flush privileges,将数据读取到内存中,从而实现不重启即可生效。

四、数据表的处理

1、创建表

8f900a89c6347c561fdf2122f13be562.pngView Code

8f900a89c6347c561fdf2122f13be562.png创建表时的参数说明

2、删除表

drop table 表名

3、清空表

delete from 表名

truncate table 表名

4、修改表

48304ba5e6f9fe08f3fa1abda7d326ab.png

添加列:alter table 表名 add 列名 类型

删除列:alter table 表名 drop column 列名

修改列:

alter table 表名 modify column 列名 类型; -- 类型

alter table 表名 change 原列名 新列名 类型; -- 列名,类型

添加主键:

alter table 表名 add primary key(列名);

删除主键:

alter table 表名 drop primary key;

alter table 表名 modify 列名 int, drop primary key;

添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);

删除外键:alter table 表名 drop foreign key 外键名称

修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;

删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

48304ba5e6f9fe08f3fa1abda7d326ab.png

5、基本数据类型

MySQL的数据类型大致分为:数值、时间和字符串

8f900a89c6347c561fdf2122f13be562.pngView Code

更多参考:

http://www.runoob.com/mysql/mysql-data-types.html

http://dev.mysql.com/doc/refman/5.7/en/data-type-overview.html

五、表内容操作

1、增

insert into 表 (列名,列名...) values (值,值,值...)

insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...)

insert into 表 (列名,列名...) select (列名,列名...) from 表

2、删

delete from 表

delete from 表 where id=1 and name='alex'

3、改

update 表 set name = 'alex' where id>1

4、查

select * from 表

select * from 表 where id > 1

select nid,name,gender as gg from 表 where id > 1

5、其他

48304ba5e6f9fe08f3fa1abda7d326ab.png

a、条件

select * from 表 where id > 1 and name != 'alex' and num = 12;

select * from 表 where id between 5 and 16;

select * from 表 where id in (11,22,33)

select * from 表 where id not in (11,22,33)

select * from 表 where id in (select nid from 表)

b、通配符

select * from 表 where name like 'ale%' - ale开头的所有(多个字符串)

select * from 表 where name like 'ale_' - ale开头的所有(一个字符)

c、限制

select * from 表 limit 5; - 前5行

select * from 表 limit 4,5; - 从第4行开始的5行

select * from 表 limit 5 offset 4 - 从第4行开始的5行

d、排序

select * from 表 order by 列 asc - 根据 “列” 从小到大排列

select * from 表 order by 列 desc - 根据 “列” 从大到小排列

select * from 表 order by 列1 desc,列2 asc - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序

e、分组

select num from 表 group by num

select num,nid from 表 group by num,nid

select num,nid from 表 where nid > 10 group by num,nid order nid desc

select num,nid,count(*),sum(score),max(score),min(score) from 表 group by num,nid

select num from 表 group by num having max(id) > 10

特别的:group by 必须在where之后,order by之前

f、连表

无对应关系则不显示

select A.num, A.name, B.name

from A,B

Where A.nid = B.nid

无对应关系则不显示

select A.num, A.name, B.name

from A inner join B

on A.nid = B.nid

A表所有显示,如果B中无对应关系,则值为null

select A.num, A.name, B.name

from A left join B

on A.nid = B.nid

B表所有显示,如果B中无对应关系,则值为null

select A.num, A.name, B.name

from A right join B

on A.nid = B.nid

g、组合

组合,自动处理重合

select nickname

from A

union

select name

from B

组合,不处理重合

select nickname

from A

union all

select name

from B

48304ba5e6f9fe08f3fa1abda7d326ab.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值