MYSQL学习

MYSQL学习笔记

一、MYSQL的安装与配置

#在LINUX环境下安装mysql
# 一、先安装MySQL Yum Repository
  wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
  二、安装源
  rpm -i mysql80-community-release-el7-3.noarch.rpm
  三、安装mysql
  yum install mysql-community-server
  四、mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;
  五、mysql开机自动启动
  systemctl enable mysqld
  六、启动MySQL数据库服务
  systemctl start mysqld
  
#在LINUX环境下安装mariadb
# 一、先安装MariaDB Yum Repository
	curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
  二、安装mariadb-server
  	yum install mariadb-server
  三、加密用户密码,复制加密后的密码备用
  	select PASSWORD('密码明文')
  三、创建用户并设置权限
  	grant all privileges on *.* to 'username'@'%' identified by PASSWORD '加密后的密码符串'
  四、刷新用户权限
  	flush privileges
  1. MY.ini配置文件,这个文件一般放在安装目录的主目录下,文件名一般为my.cnf

    [mysqld]
    # 设置3306端口
    port=3306
    # 设置mysql的安装目录
    basedir=E:\\software\\mysql\\mysql-8.0.11-winx64   
    # 切记此处一定要用双斜杠\\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧
    # 设置mysql数据库的数据的存放目录
    datadir=E:\\software\\mysql\\mysql-8.0.11-winx64\\Data   
    # 此处同上
    # 允许最大连接数
    max_connections=200
    # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
    max_connect_errors=10
    # 服务端使用的字符集默认为UTF8
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # 默认使用“mysql_native_password”插件认证
    default_authentication_plugin=mysql_native_password
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    [client]
    # 设置mysql客户端连接服务端时默认使用的端口
    port=3306
    default-character-set=utf8
    
    #设置最大的传输数据包
    max_allow_package=1000m
    

二、MySQL用户配置

  1. 创建用户

    CREATE USER "username"@"%" IDENTIFIED BY "password";
    
  2. 用户赋权

#赋给用户全部权限
GRANT ALL PRIVILEGES ON *.* TO "username"@"%";
flush privileges ;

#收回用户的所有权限
REVOKE ALL PRIVILEGES ON *.* FROM "username"@"%";
flush privileges ;


#赋给用户查询要限
grant select on *.* to "username"@"%"
flush privileges ;

  1. 修改用户

    #mysql5 与MySQL8 在修改用户上有不同的操作
    
    # MySQL5 是通过update语句操作 MySQL.user表里的记录来实现
     update mysql.user set `Password`=password("123456") where mysql.`user`.user="userName";
     
    #MySQL8 是通过alter user 语句来操作
    ALTER USER "userName"@"%" IDENTIFIED BY "123456";
    
  2. 删除用户

    #mysql5 与MySQL8 在修改用户上有不同的操作
    
    # MySQL5 是通过delete语句操作 MySQL.user表里的记录来实现
     delete from mysql.user where mysql.`user`.user="userName";
     
    #MySQL8 是通过drop user 语句来操作
    drop USER "userName"@"%" ;
    

三、数据库管理

  1. 数据库的增、删、改、查

    --  添加数据库
     CREATE DATABASE  IF NOT EXISTS newDB DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci
    
    -- 修改数据库
    -- 在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改,如果要修改数据名字,只能复制整个数据库文件数据库的这些特性都储存在 db.opt 文件中。下面我们来介绍一下修改数据库的基本操作。
    ALTER DATABASE [数据库名] { 
    [ DEFAULT ] CHARACTER SET <字符集名> |
    [ DEFAULT ] COLLATE <校对规则名>}
    
    -- 删除数据库
     DROP DATABASE IF EXISTS newDB
     
     -- 使用数据库
     use databaseName
    
    

四、数据表管理

  1. 数据表的增、删、改、查

    -- 创建数据库表 student
    
    create table if not exists student 
    (
    	id int(5) not null auto_increment primary key,
    	name varchar(50) not null ,
    	age int(2) not null
    )
    engine= innodb ,charset=utf8
    
    
    -- 修改数据库表
    /*
    { ADD COLUMN <列名> <类型> [first|after <columnName>]
    | CHANGE COLUMN <旧列名> <新列名> <新列类型>
    | ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
    | MODIFY COLUMN <列名> <类型>
    | DROP COLUMN <列名>
    | RENAME TO <新表名>
    | CHARACTER SET <字符集名>
    | COLLATE <校对规则名> }
    */
    -- ALTER TABLE  student
    -- change column id idd int(10) not null  # 没有涉及的旧设置将会保留
    -- modify column idd int(14) not null # 没有涉及的旧设置将会保留
    # 添加字段
    -- ADD COLUMN age INT(5) NOT NULL DEFAULT 7 AFTER id
    # 删除字段
    -- drop column age
    
    -- 删除数据表 
    -- DROP TABLE  IF EXISTS student
    
    
    
    
  2. 数据表修改名字

    
    
   
   

## 关系型数据库理论

1、关系:在关系数据库中,实体以及实体间的联系都是用关系来表示的。类似于程序设计

语言中变量的概念。

2、关系模式:是对关系的描述。类似于程序设计语言中类型定义的概念。

3、关系模型:是由若干个关系模式组成的集合。

4、属性:用来描述某一个事物的特征。

5、域:每个属性的取值范围所对应一个值的集合。

6、候选码:若关系中的某一属性或属性组的值能唯一标识一个元组,则称该属性或属性组

为候选码。

7、主码:又称为主键,若一个关系有多个候选码,则选定其中一个为主码。

8、主属性:包含在任何候选码中的各个属性称为主属性。

9、非主属性:不包含在任何候选码中的属性称为非主属性。

10、外码:如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该

属性集对关系模式R而言是外码。

![image-20211008115045968](C:\Users\enixl\Desktop\开发笔记\数据库学习笔记\image-20211008115045968.png)
posted @ 2022-10-15 20:10  江山老林  阅读(46)  评论(0)    收藏  举报