MySQL数据库管理

  • 一、查看数据库结构
  • 1.1、查看已存在数据库信息
  • 1.2、查看数据库表信息
  • 1.3、显示数据表的结构(字段)
  • 二、SQL语言概述
  • 2.1、SQL语言简介
  • 2.2、SQL分类
  • 2.2.1 char(字符形)和varchar(可变长字符串)的区别
  • 2.3 配置解析
  • DDL语句
  • 1. 创建数据库和表
  • 2. 删除数据库和表
  • 3. 修改表结构
  • DML语句
  • 1、向数据表中插入新的数据内容
  • 2、修改、更新数据表中的数据记录
  • 3、修改用户密码
  • 4、在数据库中删除指定的数据记录
  • DQL语句
  • 1、查询数据记录
  • DCL语句
  • 1、授予权限(用户不存在时,则新建用户)
  • 2、查看权限
  • 3、撤销用户的权限
  • 三、数据库高级操作


一、查看数据库结构

1.1、查看已存在数据库信息

mysql> show databases;

mysql 管理网页 mysql页面管理_mysql 管理网页

mysql默认4个数据库

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

1.2、查看数据库表信息

mysql> use mysql;
mysql> show tables;

mysql 管理网页 mysql页面管理_mysql 管理网页_02

1.3、显示数据表的结构(字段)

mysql> describe user;

mysql 管理网页 mysql页面管理_字段_03

二、SQL语言概述

2.1、SQL语言简介

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

2.2、SQL分类

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

2.2.1 char(字符形)和varchar(可变长字符串)的区别

1、char的长度是不可变的,而varchar的长度是可变的
字段b:类型char (10),     值为:abc,  存储为: abc    (abc+7个空格)   规定10个,实际只有3个,剩下的需要补全+7
字段d:类型varchar(10), 值为: abc, 存储为: abc    (自动变为3个的长度)   根据自己实际占有量自动调节,无需遵循设置

2、超出长度自动截取
字段c:类型char (3),        值为: abcdefg, 存储为: abc (defg 自动删除)
字段e:类型varchar (3),值为: abcdefg, 存储为: abc (defg 自动删除)

3、varchar(10)和char(10),都表示可存10个字符,无论存放的是数字、字母还是UTF8汉字(每
个汉字3字节),都可以存放10个

4、char最多可以存放255个字符
varchar的最大长度为65535个字节,varchar可存放的字符数跟编码有关
字符类型若为gbk, 每个字符最多占2个字节,最大长度不能超过32766个字符
字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845个字符
注:
一个汉字占多少长度与编码有关:
UTF-8: 一个汉字=3个字节
GBK:一个汉字=2个字节

5、char和varchar的最大长度限制是mysql规定的

2.3 配置解析

DDL语句

1. 创建数据库和表

1、DDL语句可用于创建数据库对象,如库、表、索引等;
2、使用DDL语句新建库、表;
示例

创建新的数据库

mysql> create database 表名;

mysql 管理网页 mysql页面管理_数据库_04


创建新的表

格式:
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
mysql> use xhc;
mysql> create table users(user_name char(64) not null primary key, user_passwd varchar(64) default '');

mysql 管理网页 mysql页面管理_字段_05


mysql 管理网页 mysql页面管理_数据库_06

2. 删除数据库和表

删除表

mysql> drop table users;

mysql 管理网页 mysql页面管理_字段_07

删除数据库

mysql> drop database xhc;

mysql 管理网页 mysql页面管理_字段_08

3. 修改表结构

mysql> alter table user add column addr int(3);

mysql 管理网页 mysql页面管理_mysql_09

DML语句

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

注意:对数据的操作用DELETE,对库和表用drop。

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

完整格式:insert into 表名 (字段1,字段2,…) values (字段1的值,字段2的值,…)

1、加字段

mysql> use xhc;
mysql> insert into ingo(id,name,passwd,location)values(1,'lisi',111,'nanjing');

mysql 管理网页 mysql页面管理_字段_10


2、不加字段,默认是所有字段,每个字段都要写

mysql> insert into ingo values(2,'beijing',222,'zhongguo');

mysql 管理网页 mysql页面管理_数据库_11


3、查看添加的信息

mysql> select * from xhc.ingo;

mysql 管理网页 mysql页面管理_mysql 管理网页_12

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

格式:update 表名 set 字段名1=值1,字段名2=值2 where 条件表达式

update ingo set passwd=123,location='shanghai' where name='lisi';

mysql 管理网页 mysql页面管理_字段_13

3、修改用户密码

mysql> update mysql.use set authentication_string=passwd('123456') where use='root';

mysql 管理网页 mysql页面管理_数据库_14

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

格式:

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

mysql 管理网页 mysql页面管理_字段_15

DQL语句

1、查询数据记录

格式:

select 字段名 1,字段名 2,··· from 表名 where 条件表达式

mysql 管理网页 mysql页面管理_mysql_16

DCL语句

1、授予权限(用户不存在时,则新建用户)

  • 设置登录密码为abc123的lisi用户,可以从任意终端登录,对所有库和所有表有全部权限
grant 权限列表 privileges on 数据库名.表名 to 用户名@来源地址 [ identified by '密码' ]

mysql 管理网页 mysql页面管理_数据库_17


mysql 管理网页 mysql页面管理_数据库_18

  • 设置登录密码为abc123的tom用户,可以从本地终端登录,对mysql库中的user表有select权限

2、查看权限

show grants for 用户名@来源地址

查看当前用户的权限

mysql 管理网页 mysql页面管理_数据库_19


查看从本地登录的cat用户的权限

mysql 管理网页 mysql页面管理_数据库_20


查看当前系统中的用户

mysql 管理网页 mysql页面管理_数据库_21

3、撤销用户的权限

revoke 权限列表 on 数据库名.表名 from 用户名@来源地址

mysql 管理网页 mysql页面管理_数据库_22


mysql 管理网页 mysql页面管理_mysql 管理网页_23

grant:当用户已存在时,直接提权。
当用户不存在时,先创建用户,再提权。
revoke:只撤销权限,不删除用户

三、数据库高级操作

1、清空表

delete from 名称;
truncate table 名称;

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

2、临时表

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

mysql> 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;

mysql 管理网页 mysql页面管理_数据库_24


innodb 支持事务;写在括号外面的是对整张表的设定。

show tables;看不到临时表

3、克隆表

like方法:从info表完整复制结构生成test表

mysql 管理网页 mysql页面管理_mysql 管理网页_25


导入数据

mysql 管理网页 mysql页面管理_字段_26


新建一个tang表,读取text表中的所有内容放入tang表

mysql 管理网页 mysql页面管理_数据库_27