MySQL学习笔记(一)

最近寒假在家学习MySQL,跟着名叫“秃头统治世界”的up主,有七天的课程。把每天的学习知识在此整理回顾一下,争取自己真能七天看完视频。

一、数据库的下载,安装与连接

1. 下载

下载网址:http://dev.mysql.com/downloads/mysql/

2. 安装(两种方法)

2.1 下载可执行文件直接安装(包括客户端与服务端)

2.2 下载压缩包后找到bin文件目录中的可执行文件手动安装(使用cmd)

  (1)初始化服务端:文件路径\bin\mysqld --initialize-insecure

  (2)启动服务端与客户端:

    mysqld——服务端;E:\mysql-8.0.23-winx64\bin\mysqld\mysqld

    mysql——客户端;E:\mysql-8.0.23-winx64\bin\mysqld\mysql -u root -p 

  (3)配置环境变量:将bin文件路下的mysql的路径添加到环境变量中;E:\mysql-8.0.23-winx64\bin\mysqld

  (4)配置Windows服务:E:\mysql-8.0.23-winx64\bin\mysqld --install

              E:\mysql-8.0.23-winx64\bin\mysqld --remove

    配置完成后可以在cmd中使用 net start MySQL与net stop MySQL在电脑后台服务开始与结束mysql的服务端(cmd一般需要使用管理员权限)

3. 链接

  (1)先启动服务端:未配置Windows服务时——mysqld;已配置Windows服务后——net start MySQL

  (2)再启动客户端:是否配置Windows的登录指令都一样——mysql -u root -p

   默认用户:root

二、用户的创建与赋予权限

1. 创建新用户

   create user 'alex'@'%' identified by '123123';

  %表示在任意IP上均可登录,’123123‘表示登录密码

2. 对新用户赋予权限

  grant all privileges  on db1.t1 to 'alex'@'%';

  all privileges可以换成具体的各种各样的权限,以逗号分隔

3.收回权限

  revoke all privileges on db1.t1 from 'alex'@'%';

三、数据库与数据表及其内容的增删改

1. 数据库(类比于文件夹)

  新建数据库::create database db1;

        create database db2 default charset utf8; (实现中文输入,但是现版本的MySQL不用设置’default charset utf8‘也可以实现中文输入)

  查看数据库:show databases;

  删除数据库:drop  database db1;

2. 数据表(类比于文件,如excel)

  新建数据表:use db1;

        create table t1(

              id int, auto_increment primary.key,

              name char

              )engine=innodb default charset=utf8;

              # innodb 支持事务,原子性操作 (MySQL数据库自5.5版本开始,InnoDB是MySQL数据库的默认引擎(之前是MyISAM),所以其实可以不用写egnine = innodb这一项了)

              # myisam myisam

  查看该数据库下的数据表:show tables;

  删除数据表:drop table t1;

   #auto_increment即为not null,该列值必不为空

3. 数据表内容(类比于文件内容)

  查看数据:select * from t1;

  插入数据:insert  into t1(id, name) values(1, 'xiaoming');

  删除数据:delete from t1 where id<6;

  修改数据:update t1 set age=18;

          update t1 set age=18 where age=17;

  清除数据表内容:(两种方法)

        delete from t1;

        truncate table t1;

四、数据类型

1.数字型

(1)tinyint, int, bigint (可存储的数字范围逐渐增大)

(2)float, double, decimal(float与double在小数点后位数过多时都是不准确的,只有decimal是最准确的,不过是以字符形式存储,但是会以数字形式显示)

2.字符型

(1)char:char(10),不足十位也用空值补齐。速度更快

(2)vachar:vachar(10):不足不补齐。节省空间

(3)text:超过255使用text存储

(3)特别大的文件的话, 文件存硬盘,db存路径

3.时间型:datatime

4.其他

(1)ENUM:枚举,设定该项目取值范围,如('a', 'b','c','d')

(2)set:同样可设定项目取值范围,如('a', 'b','c','d')但是除该四种之外还可以输入('a'b')这样的组合

  create table t1(
            id int signed not null auto_increment primary key,        #signed代表数字为无符号型,int的无符号型与有符号型的取值范围不同
          num decimal(10,5),            #10代表小数点前后位数之和,5代表小数点后的位数
          name char(10)
          )engine=innodb default charset=utf8;

五、外键

外键即另一个表的主键,

create table userinfo(
          uid bigint auto_increment primary key,
          name varchar(32),
          department_id int,
          constraint fk_user_depar foreign key (department_id) references color(id)
          )engine=innodb default charset=utf8;

create table department(
          id bigint auto_increment primary key,
          title char(15)
          )engine=innodb default charset=utf8;

#一张表只能有一个主键

#一个主键可以是由多列组合而成的唯一值

create table table1(
          nid int not null,
          pid int not null,
          num int,
          PRIMARY KEY(nid, pid)
          )engine=innodb default charset=utf8;

posted @ 2021-02-09 22:02  不知天高地厚的小可爱  阅读(65)  评论(0)    收藏  举报
1