mysql学习-mysql初步

一.数据库概述

1.数据库的分类

  • 关系型数据库(SQL)
    • 数据库里的数据存在明显的关系关联性。mysql,Oracle,SQLite
  • 非关系型数据库(NOSQL)
    • 其中的数据并不存在明晰、紧密的关系关联性,更多是松散的关联关系。Redis,mongoDB,Hbase
  • 非关系型数据库产生的背景:
    • 大数据量
    • 高吞吐量
    • 低延迟

2.数据库对象

2.1表

表是一种结构化的文件,里面有列,行,文件,类似Excel表

2.2视图

可以理解为是一张虚表(在物理磁盘中不真实存在).视图是基于select语句查询生成的结果集.当一条select语句比较复杂而且嗲用频率比较高的时候,就可以把这个select语句封装成一个视图

2.3函数

函数就是某个功能的实现,它只有一个返回值,函数分为系统函数和自定义函数,通常使用的都是系统函数

2.4存储过程

也是一个功能的实现。我们所说的数据库编程,SQL语句编程,就主要是指自定义一个存储过程。调用存储过程是使用exec 存储过程名 参数1等来调用。它是可以返回多个值,也可以没有返回值。

2.5索引

我们之前接触过,它就像一本书的目录一样,是为了加快我们查询速度而建立的。

二.数据类型

1.数值型

image-20210708130101770
2.时间型 

image-20210708130118791
3.字符串型 

image-20210708130131939
小知识 

char与varchar的区别。char(100)类型的字段一旦定义,不管里面是否真的有值,它就固定会占用100个字符对应的存储空间,这种类型对空间的利用率其实并不高。varchar(100)类型的字段定义后,它所占用的空间就是里面存储内容占用的空间,但是最大不会超过100个字符,这种类型对空间的利用率是很高的。

比如 手机号码(目前都是11位,前缀不考虑),就可以使用char定长

比如 姓名或者家庭地址,就可以使用varchar,

三.SQL的分类

四.MySql基本使用

1.DCL用户创建于授权

创建用户: 

CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;

需要切换到mysql数据库下,操作user表

username:用户名;host:指定在哪个主机上可以登录,本机可用localhost,%通配所有远程主机;password:用户登录密码;

授权:

GRANT ALL PRIVILEGES ON . TO ‘username’@’%’ IDENTIFIED BY ‘password’ ;

刷新权限:FLUSH PRIVILEGES;

格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by “用户密码”;*.*代表所有数据库和所有表;

@ 后面是访问MySQL的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。

如 GRANT ALL PRIVILEGES ON 08.* TO ‘tianliang’@’%’ IDENTIFIED BY ‘tianliang’ ;

把 _08_数据库的操作权限,授权给tianliang用户

All privileges 是所有权限

GRANT select,insert,update,drop,create,delete ON 08.* TO ‘c’@’%’ IDENTIFIED BY ‘c’ ;

上面是同时设置查询,添加,更新等操作

当然 也可以只写select , 是只能查询

Select 查询

Insert 插入数据

Update 更新数据

Delete 删除数据

Drop 删除表

Create 创建表

撤销权限:

revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可,并且IDENTIFIED BY ‘password’ ,不管是授权还是撤销,都可以不加:

grant all on . to ‘tledu’@‘localhost’;

revoke all on . from ‘tledu’@‘localhost’;

删除用户,会同步把user和db表都删除对应的数据drop user 用户名@’%’;

例子:

/*
    创建用户与授权
*/
-- 创建用户和删除用户之前必须先得进入到mysql表
-- use mysql;
-- 创建用户
-- create user 'antg'@'localhost' identified by 'antg';
-- 给用户授权
-- grant all privileges on test.* to 'antg'@'%' identified by 'antg';
-- 一般这里要刷新一下权限,因为搜全后数据是写在磁盘中的,而数据库一般会在一开机就将这些信息加载到内存中
-- flush privileges;
-- 移除权限
-- revoke all privileges on test.* from 'antg'@'%';
-- 授权
-- grant all privileges on test.* to 'antg'@'%';
-- 移除权限
-- revoke all privileges on test.* from 'antg'@'%';
-- 删除用户
-- drop user 'antg'@'%';

2.DDL数据库创建

注释:

– 单行注释

/*

​ 多行注释

*/

命令行的基本使用:

查看当前链接的MySQL服务器的版本

select version();

显示当前链接的MySQL服务器中的所有的数据库

show databases;

在当前数据库服务器上创建一个新库

create database day01;

在当前数据库服务器上删除一个库

drop database day01;

3.DDL表的创建和删除

表的创建

在数据库day01下创建表student_info

use day01;

create table student_info (

 id int,

​ name varchar(20),

​ salary decimal(18,2)

)ENGINE = innodb default charset = utf8;

在数据库day01下删除表student_info

表的删除

use day01;

drop table student_info;

4.DML操作

插入数据

insert into 表名 (列名1,列名2) values (值1,值2);

删除数据

delete from 表名 where 列名 = 值;

更新数据

update 表名 set 列名1=值 , 列名2=值 where 列名 = 值;

5.DQL操作

查询数据

select 列限定 from 表限定 where 行限定
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mizui_i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值