一、数据库的作用和分类
1 数据库的作用
数据存储
2 数据库的优势
规范、查询速度快
3 数据库的分类
关系型数据库:oracle、mysql、mysql server
非关系型数据库:mongo
二、mysql的安装
1.下载
https://dev.mysql.com/downloads/mysql/
2.安装
解压到路径无中文的位置
3.初始化
初始化后,默认用户名root,密码为空,初始化命令如下:
E:\mysql-8.0.12-winx64\bin\mysqld --initialize-insecure
4.设置环境变量
设置环境变量后,cmd中可直接输入mysqld启动
5.设置windows服务
E:\mysql-8.0.12-winx64\bin\mysqld --install
加入服务后,可从windows中的服务启动停止mysql,也可使用命令
net start mysql
net stop mysql
三、mysql的使用
1 mysql组成
文件夹----数据库
文件----表
数据行----行
2 数据库操作
2.1 创建数据库
create database 数据库名 default charset 编码;
create database test default charset utf8;
2.2 查看数据库
show databases;
2.3 删除数据库
drop database 数据库名;
2.4 用户及权限设置
新建用户
create user '用户名'@'允许用户登录mysql的IP' ,可以使用通配符‘%’
1 create user 'test'@'localhost' identified by '123123'; 2 create user 'test'@'192.168.%' identified by '123123';
删除用户
drop user '用户名'@'允许用户登录mysql的IP'
drop user 'test'@'192.168.%';
授权
grant 权限 on 数据库.表 to '用户名'@'允许的IP'
grant select on test.* to 'test'@'localhost';
3.表操作
3.1 增
创建表t1
create table t1(id int,name char(10));
创建表t2,并设置id为自增、主键
create table t2(id int auto_increment primary key,name char(10));
创建表t3,设置id为自增、主键,编码为utf8
create table t3(id int auto_increment primary key,name char(10)) default charset=utf8;
创建表t4,设置id为自增、主键,编码为utf8,使用引擎innodb
create table t4(id int auto_increment primary key,name char(10)) engine=innodb default charset=utf8;
msyql支持的两种引擎:
# innodb 支持事务,原子性操作
# myisam myisam
char 和varchar的区别:
char:字段长度不够时,会自动补齐,查询效率高,浪费空间
varchar:字段长度不够时,不会自动补齐,查询效率低,节省空间
尽量将变长的字段放到后边,可以提升查询效率
3.2 删
drop table t1;
3.4 查
show tables;
4.行操作
4.1 增
insert into 表(需要插入的列) values(需要插入的值);
insert into t1(id,name) values(1,'user1');
4.2 删
删除指定行
delete from t1 where id<3;
清空表,保留自增列记录
delete from t1;
清空表,初始化自增列记录
truncate table t1;
4.3 改
update 表 set 列=更新的值 where 条件;
update t1 set name='user2' where name='user1';
4.4 查
select 要查的列 from 表名;
select id,name from t1;
4.5 外键
当一个表的某列需要和另一个表的某列做关联时,需要使用外键
create table score( sid int auto_increment primary key, student_id int, corse_id int, number int, constraint score_student_sid foreign key (student_id) references student(sid), constraint score_coures_cid foreign key (corse_id) references course(cid) )engine=innodb default charset=utf8;
constraint 外键名 foreign key (外键字段) references 表(字段);