MySQL数据库管理

数据库概述

  • 数据
    描述事物的符号记录
    包括数字、文字、图形、图像、声音、档案记录等
    以“记录“形式按统一的格式进行存储

  • 将不用的记录组织在一起
    用来存储具体数据
  • 数据库
    表的集合,是存储数据的仓库
    以一定的组织方式存储的相互有关的数据集合
  • 数据库管理系统
    是实现对数据库资源有效阻止、管理和存取的系统软件
  • 数据库系统
    是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成
    用户可以通过DBMS或应用程序操作数据库
    在这里插入图片描述

MySQL数据库介绍

一款深受欢迎的开源关系型数据库
Oracle旗下的产品
遵守GPL协议,可以免费使用与修改

  • 特点
    性能卓越、服务稳定
    开源、无版权限制、成本低
    多线程、多用户
    基于C/S(客户端/服务器)架构
    安全可靠
  • MySQL商业版与社区版
    MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用
    MySQL社区版室友分散在世界各地的MySQL开发者、爱好者一起开发与维护、可以免费使用

SQL语句概述

SQL语言

Structured Query Language的缩写,即结构化查询语言
关系型数据库的标准语言
用于维护管理数据库
包括数据查询、数据更新、访问控制、对象管理等功能

MySQL数据库常用语句分类

DDL(Date Definition Language,数据定义语言):用来建立数据库、数据库对象和定义字段,如CREATE、ALTER、DROP。
DML(Date Manipulation Language,数据操纵语言):用来插入、删除和修改数据中的数据,如INSERT、UPADTE、DELETE
DQL(Date Query Language,数据查询语言):用来查询数据中的数据,如SELECT
DCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可、存取权限等,如COMMIT、ROLLBACK、GRANT、REVOKE

管理数据库和表

创建数据库和表

  • 格式
    create table 表名(字段01名称 字段01类型 字段01约束,字段02名称 字段02类型 字段02约束,…)存储引擎,字符集

字段名称、类型、约束解释:
字段01名称:属性名称,自定义
字段01类型:int(4) 整型 代表0000-9999
double 浮点型
decimal(5,2)有效数字是5位,小数点后面保留2位 100.00;099.50
float 单精度浮点 4字节
char 字符
char (10)固定长度字符串,字符串要用单引号引起来
varchar(50)可变长度字符串
字段01约束:
非空约束:内容不允许为空 not null
主键约束:非空且唯一 标识 primary key(主键)
默认约束:假如没有填数据,默认预先设定的值填写 default ‘未知’
自增特性:id 1 2 3 4 auto_increment(自动增长)
存储引擎:myisam innodb
字符集:UTF-8

  • 创建数据库
create database students;
  • 使用数据库
use students;
  • 创建表
create table results(id int(5) auto_increment primary key, age int(3) not null, name varchar(128) not null, score decimal(5));

在这里插入图片描述

  • char和varchar
    1、char的长度是不可变的,而varchar的长度是可变的
    字段b:类型char(10),值为: abc,存储为: abc (abc+7个空格)
    字段d:类型varchar(10),值为: abc,存储为: abc(自动变为3个的长度)
    2、超出长度自动截取
    字段c:类型char(3),值为: abcdefg,存储为: abc (defg自动删除)
    字段e:类型varchar(3),值为: abcdefg,存储为:abc(defg自动删除)
    3、var(10)和char(10),都表示可存10个字符,无论存放的是数字、字母还是UTF8汉字(每
    个汉字3字节),都可以存放10个
    4、char最多可以存放255个字符
    varchar的最大长度为65535个字节,varchar可存放的字符数跟编码有关
    字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766个字符
    字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845个字符

数据表中插入列

alter table results add column addr varchar(64);

在这里插入图片描述

删除数据库和表

  • 删除表
    格式:drop table 库名.表名;
    例如:删除students库里面的chengji2表
    在这里插入图片描述
  • 删除数据库
    在这里插入图片描述

查看数据库结构

查看已存在的数据库信息

show databases;

在这里插入图片描述

  • mysql默认4个数据库
    information_schema:定义访问数据库元数据的方式。数据库名和表名,列的数据类型、访问权限等。
    mysql:核心数据库,负责存储数据库用户、权限、关键字等用户自己需要使用的控制和管理信息。
    performance_schema:数据库的性能参数,存储引擎等。
    sys:sys系统库下包含许多视图,它们以各种方式对preformance_schema表进行聚合计算展示。

查看数据库表信息

show tables;

在这里插入图片描述

查看数据表的结构

查看results的表的结构

desc results;

在这里插入图片描述

管理数据表中的数据

DML语句用于对表中的数据进行管理
包括的操作
insert:插入新数据
update:更新原有数据
delete:删除不需要的数据
注意:对数据的操作用DELETE,对库和表用drop

向数据表中插入新的数据内容

insert into results(age,name,score,addr) values(17,'zhangsan',80,501),(18,'lisi',85,502),(18,'wangwu',86,502),(19,'zhaoliu',87,503);
  • 查看插入的信息
select * from results;

在这里插入图片描述

修改、更新数据表中的数据记录

update results set age=19,score=82 where name='zhangsan';

在这里插入图片描述

在数据库中删除指定的数据记录

格式:delete from 表名 where 条件表达式(不带where代表删除表中所有记录)

delete from students.results where name='wangwu';

数据库的高级操作

清空表

delete from info;
truncate table info;
truncate清空表,表还在;drop是删除表中所有记录。
truncate和delete是两者的新值初始id不同。

临时表

临时建立的表,用于保存一些临时数据,不会长期存在

create temporary table temp_info(id int(4) not null auto_increment, name varchar(32) character set utf8 collate utf8_bin not null, level int(10) not null, primary key(id))engine=innodb default charset=utf8;
  • 添加数据
insert into temp_info(id,name,level) values(22,'zhangsan',10),(23,'lisi',20);

可以查看到表中添加的数据;但是查看表的时候,没有这张表
在这里插入图片描述

克隆表

方法一

like方法:从results表完整复制结构生成chengji表

create table chengji like results;

在这里插入图片描述

方法二

show create table results\G;

复制如下内容,修改一下表的名称
在这里插入图片描述
粘贴
在这里插入图片描述

导入数据

insert into chengji select * from results;

在这里插入图片描述

数据库用户授权

  • DCL语句设置用户权限(用户不存在时,则新建用户)
    设置登录密码为abc123的lisi用户,可以从任意终端登录,对所有库和所有表有全部权限
create user 'lisi'@'%' identified by 'abc123';
grant all on *.* to 'lisi'@'%' identified by 'abc123';
select user,host from mysql.user;

在这里插入图片描述
设置登录密码为abc123的wangwu用户,可以从本地终端登录,对mysql库中的user表有select权限

create user 'wangwu'@'loaclhost' identified by 'abc123';
grant select on mysql.user to 'wangwu'@'localhost' identified by 'abc123';
  • 查看当前用户的权限
    show grants;
    在这里插入图片描述
    查看从本地登录的wangwu用户的权限
show grants for 'wangwu'@'localhost';
  • 撤销用户的权限
revoke select on mysql.user from 'wangwu'@'loaclhost';
  • 查看当前系统中的用户
select user from mysql.user;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值