一、数据库的作用和分类

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 表(字段);