基本安装
- 下载地址:https://dev.mysql.com/downloads/mysql/
- 选择解压版本:mysql-5.7.21-winx64.zip
- 以管理员身份打开cmd(除了安装服务不要以此身份打开)切换到解压目录下的bin目录下
- 初始化数据所需文件以及获取一个临时的访问密码 : mysqld ‐‐initialize ‐‐user=mysql ‐‐console ;此时会出现一个临时密码,复制粘贴到别处后面会用到,解压目录下会出现一个data文件夹
- 将MySQL安装为服务可以指定服务名称 :mysqld ‐‐install MySQL,服务安装成功,在计算机服务面板看到
- 启动服务:net start MySQL,开发时可以设为手动启动,自动启动的话每次重启计算机都会打开
- 通过用户名密码进入MySQL 操作环境 :mysql ‐u root ‐p ,会提示 Enter password,将刚才保存的密码复制进来,之后进入了,mysql操作环境
- 设置数据库访问密码,一定要加分号 :mysql> set password for root@localhost = password('123456');
- 验证:exit;先退出mysql环境,之后再登陆:mysql ‐u root ‐p ,输入刚才设置的密码,如果成功,执行:show databases;就会看到数据库了
基本使用
命令行操作
- 打开cmd,切换到bin目录
- 进入mysql操作环境:mysql ‐u root ‐p ,会提示你输入密码
- 进入 MySQL 客户端的 REPL 环境过后,可以通过标准的 SQL 语句操作数据库
- mysql> show databases; ‐‐ 显示全部数据库
- mysql> create database <db‐name>; ‐‐ 创建一个指定名称的数据库
- mysql> use <db‐name>; ‐‐ 使用一个数据库,相当于进入指定的数据库
- mysql> show tables; ‐‐ 显示当前数据库中有哪些表
- mysql> create table <table‐name> (id int, name varchar(20), age int); ‐‐ 创建一个指定名称的数据 表,并添加 3 个列
- mysql> desc <table‐name>; ‐‐ 查看指定表结构
- mysql> source ./path/to/sql‐file.sql ‐‐ 执行本地 SQL 文件中的 SQL 语句
- mysql> drop table <table‐name>; ‐‐ 删除一个指定名称的数据表
- mysql> drop database <db‐name>; ‐‐ 删除一个指定名称的数据库
- mysql> exit|quit; ‐‐ 退出数据库终
可视化工具
- Navicat Premium:一款收费的可视化工具,下载地址:http://www.navicat.com.cn/download/navicat-premium,安装就是下一步下一步,但是安装必须要有Microsoft Visual C++ 2017 Runtime
- 进入界面点击连接,选择mysql,然后对mysql数据库进行基本设置
- char与varchar的区别:char是固定长度,varchar是自有长度可以不断调整,使用的时候注意字符集问题,默认是拉丁,只能输入英文数字,需要输入中文需要改成utf8,可以在表设计中更改,也可以在新建数据库的时候做一个设定,还可以进行数据库服务器全局配置
- 设置服务器全局配置:在mysql目录下新建一个my.ini的文件,里面输入内容如下图,记住更改完配置之后一定要重启数据库服务,有关配置可以参考官网 https://dev.mysql.com/doc/refman/5.5/en/mysqld-option-tables.html,以及http://www.cnblogs.com/Ray-xujianguo/p/3322455.html
基本语句
注意
- 在查询语句中,为了将查询列名与指令区别开,可以用反引号` `进行
- 插入数据如果是字符型就必须用双引号或者单引号进行区别
- 执行修改命令的时候,如果替换的数据与原表中数据一致是不会返回受影响的行数
查询
- -- 查询数据
- -- select 字段[, 字段2] from 表名
- select id, name, birthday from users;
- -- 通配 * 找到表中所有列
- select * from users;
- -- 查询每一行都会返回1,之前是查询列,现在是定死了就是1
- select 1 from users;
增加
- -- 新增数据
- insert into 表名 values (v1, va2, v3,.....);
- -- 插入全部字段
- insert into users values (null, '王五', 0, '2020‐12‐12', '12312');
- -- 指定字段
- insert into users (name, gender, avatar) values ('王五', 0, '12312');
修改
- -- 更改
- update 表名 set field1=new-value1, field2=new-value2 [WHERE Clause]
- -- 更新数据,指向全表
- update users set name = '麻子', gender = 0
- -- 更新数据,指向特定数据
- update users set name = '麻子', gender= 0 where id = 1
删除
- -- 删除
- delete from 表名 [WHERE Clause]
- -- 删除语句必须指定条件,将会把全表数据进行删除
- delete from users where id = 1
筛选条件
- -- where
- delete from users where id = 6
- -- and 表示并且
- delete from users where id = 6 and gender = 0
- -- or 表示或者
- delete from users where id = 6 or gender = 0
- -- > 判断大小
- delete from users where id > 6
- -- in 数据是否包含在此范围内
- delete from users where id in (4, 5)
查询函数
- -- count() 总行数,count(1) 比 count(*) 更高效
- select count(1) from users where age > 12
- -- max/min 最大值/最小值
- select max(age) from users
- -- avg() 平均值
- select avg(age) from users
分页查询
- -- limit 限制查询数据的数量
- select * from users limit 2
- -- limit 可以有两个参数,参数1表示跳过几个数据,参数2取几个数据
- select * from users limt 2, 2
- -- skip = (pageIndex - 1 )* size:查询指定页,那么跳过的数据就是当前页减去1,然后去乘以取出数据大小