MySQL
是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理
数据库服务器、数据库、数据表
安装包下载地址:https://dev.mysql.com/downloads/mysql/
解压下载的安装包
my.ini
[mysql]
#设置mysql客户端默认字符集
default-character-set = utf8
[mysqld]
#设置mysql的安装目录
Basedir = C:\Program Files\mysql-8.0.18-winx64
#设置mysql数据库的数据的存放目录
Datadir = C:\Program Files\mysql-8.0.18-winx64\data
#设置允许最大连接数
max_connections = 200
#设置打开表的最大缓存数
table_open_cache = 2000
#设置最大缓存线程数量
thread_cache_size = 10
#设置默认使用端口
port = 3306
#设置服务端使用的字符集
character-set-server = utf8
#设置创建新表时将使用的默认存储引擎
default-storage-engine = INNODB
我的电脑 – 属性 – 高级系统设置 – 环境变量 – 系统变量 – path
新建环境变量为mysql安装文件bin的路径
用管理员身份打开cmd命令行,进入bin目录下执行命令生成数据的存放文件data
mysqld --initialize-insecure --user=mysql
mysqld install
显示安装成功
net start mysql
启动MySQL服务
net start mysql
停止MySQL服务
net stop mysql
登录mysql
mysql -u用户名 -p密码
显示数据库列表
show databases
显示数据库中数据表
show tables
显示数据表的结构
describe 表名
创建数据库
create database 库名
删除数据库
drop database 库名
创建数据表
create table 表名
删除数据表
drop table 表名
Navicat
基本使用:网上可以查到免费版本的Navicat安装
安装完成后,启动MySQL服务,打开Navicat
SQL
即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统
select 字段名1, 字段名2, … from 表名
*: 通配符,代表所有字段
//查询所有人的id和name
select id,name from list
//查询所有人的全部信息
select * from list
select 字段名1, 字段名2, … from 表名 where 筛选条件
多个筛选条件用‘,’隔开
//查询id为2的人的全部信息
select * from list where id = 2
//查询id大于2小于9的人的全部信息
select * from list where id >2 and id<9
select 字段名1, 字段名2, … from 表名 where 字段名 like 模糊查询条件
%: 代表任意长度(包括0)的任意字符
_: 代表长度为1的任意字符
//查询name以王开头的人的全部信息
select * from list where name like '王%'
//查询name以王开头且为三个字的人的全部信息
select * from list where name like '王__'
//查询name中有王的人的全部信息
select * from list where name like '%王%'
select 字段名1, 字段名2, … from 表名 order by 排列顺序
asc: 升序 (默认值)
desc: 降序
如果有where,where放在order by前面
可进行排序的字段通常是数字整型 英文字符串型 日期型
//查询所有人的全部信息,结果按id降序排列
select * from list order by id desc
//查询所有人的全部信息,结果先按age降序排列,如果age相同,再按id升序排列
select * from list order by age desc, id asc
select 字段名1, 字段名2, … from 表名 limit 起始位置,长度
起始位置为查询结果的索引,从0开始,0代表第一条数据,如果省略,则默认表示从0开始
如果有where和order by,limit放在最后面
//查询前三个人的全部信息
select * from list order limit 0,3
//查询第三个至第五个人的全部信息
select * from list order limit 2,3
//查询age最大的三个人的全部信息
select * from list order order by age desc limit 0,3
select * from 表名1 join 表名2 on 连接条件
连接条件一般为:表名1.值1=表名2.值2
可以为字段名和表名定义别名
//查询list1中id和list2中mid相等的全部数据
select * from list1 join list2 on list1.id=list2.mid
//查询list1中id和list2中mid相等的list1中的name数据和list2中的age数据
select a.name aname, b.age bage from list1 a join list2 b on a.id=b.mid
insert into 表名(字段名1, 字段名2, …) values (值1, 值2, …)
或
insert into 表名 set 字段名1=值1, 字段名2=值2, …
字段的顺序要和值的顺序相互对应,如果每个字段都有数据,那么表名后面可以省略字段名,但是values里面值的顺序必须正确,自增长类型的主键,可以使用null来填充,MySQL会自动填充数据
//向表中添加一个人
insert into list(name, age) values('李四', 18)
//或
insert into list set name='李四', age=18
update 表名 set 字段名1=值1, 字段名2=值2, … where 修改条件
不指定修改条件会修改所有数据
//修改id为2的人的age为18
update list set age=18 where id=2
//修改所有人的age为18
update list set age=18
delete from 表名 where 删除条件
不指定删除条件会删除所有数据
//删除id为2的人
delete from list where id=2
//删除所有数据
delete from list