理论+实验·MySQL数据库管理

理论+实验·MySQL数据库管理

文章目录

  • 理论+实验·MySQL数据库管理
    • 一、数据库基本操作
      • 1.1 数据库基本操作
      • 1.2 SQL语句概述
      • 1.3 创建数据库和表
      • 1.4 删除数据库和表
      • 1.5 管理表中的数据
    • 二、数据库用户授权
      • 2.1 数据表高级操作
      • 2.2 数据库用户授权
    • 三、忘记数据库密码如何修改

一、数据库基本操作

1.1 数据库基本操作

  • 查看数据库信息
mysql>	show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
  • 查看数据库中的表信息
mysql>	use 数据库名;
mysql>	show tables;
+------------------+
| Tables_in_school |
+------------------+
| info             |
+------------------+
1 row in set (0.00 sec)
  • 显示数据表的结构
mysql>	describe [数据库名.]表名;		===>可以使用desc [数据库名.]表名;

1.2 SQL语句概述

1.2.1 SQL语言

  • Structured Query Language的缩写,即结构化查询语言

  • 关系型数据库的标准语言

  • 用于维护管理数据库 包括数据查询、数据更新、访问控制、对象管理等功能

1.2.2 SQL分类

  • DDL: 数据定义语言—create(创建数据库,表)、drop(删除数据库,表)

  • DML: 数据操纵语言—insert(添加数据)、update(更新数据)、delete(删除数据,可单独删除一条数据)

  • DQL: 数据查询语言—select(查看)

  • DCL: 数据控制语言—grant(加权)、revoke(撤权)

1.3 创建数据库和表

1.3.1 DDL语句可用于创建数据库对象,如库、表、索引等

1.3.2 使用DDL语句新建库、表

  • 创建数据库
mysql>	create database 数据库名;
  • 创建数据表
mysql>	create table 表名 (字段定义......);
create table 表名 (字段01名称 字段01类型 字段01约束,字段02名称 字段02类型 字段02约束,......)存储引擎,字符集;
字段01名称:	属性名称,自定义
字段01类型:
	int(4):				整型			0000-9999
	double				浮点型			8字节
	decimal(5,2)		有效数字是5位,小数点后面保留2位		100.00	099.50
	float				单精度浮点		4字节
	char(10)			固定长度字符串
	varchar(50)			可变长度字符串		可以超出
字段01约束:
	非空约束(not null)				内容不允许为空
	主键约束(primary key)			非空且唯一		标识
	默认值(default '未知')			加入没有填数据,默认预先设定的值填写
	自增特性(auto_increment)		id		从1开始
存储引擎:				innodb
字符集:				 UTF-8

1.4 删除数据库和表

1.4.1 使用DDL语句删除库、表

  • 删除指定的数据表
mysql>	drop table [数据库名.]表名;
  • 删除指定的数据库
mysql>	drop database 数据库名;

1.5 管理表中的数据

  • DML语句用于对表中的数据进行管理

  • 包括的操作

insert:	插入新数据

update:	更新原有数据

delete:	删除不需要的数据
  • 向数据表中插入新的数据记录
mysql>	insert into 表名(字段1,字段2,字段3,......) values (字段1的值,字段2的值,字段3的值,.....);
  • 修改、更新数据表中的数据记录
mysql>	update 表名 set 字段名1=值1[,字段名2=值2] where 条件表达式;
  • 在数据表中删除指定的数据记录
mysql>	delete from 表名 where 条件表达式;
  • 不带where条件的语句标识删除表中所有记录
mysql>	delete from [数据库名.]表名;		===>在当前数据库里面就可以不写数据库名
  • DQL是数据查询语句,只有select

  • 用于从数据表中查询符合条件的数据记录

  • 查询时可不指定条件

mysql>	select 字段名1,字段名2,...... from 表名;
  • 查询时指定条件
mysql>	select 字段名1,字段名2,...... from 表名 where 条件表达式;

二、数据库用户授权

2.1 数据表高级操作

  • 清空表
mysql>	delete from table_name;			
mysql>	truncate table table_name;
  • 临时表

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

#连接断开,临时表被删除
create temporary table mytest (
	id int(3) not null auto_increment,
    name varchar(10) character set utf8 collate utf8_bin notnull,
    score decimal(5,2) not null,
    address varchar(50) default '未知',
    )
    engine=innodb default charset=utf8;
  • 克隆表
mysql>	create table newtest as select * from test;
#	like方法
mysql>	create table newtest like test;						===>从test完整复制表的结构涩会给生成到newtest
mysql>	insert into newtest select * from test;				===>导入数据
#	show create table方法
mysql>	show create table test\G;				===>查看表的完整结构			\G===>表示以列显示
#	创建表newtest
mysql>	create table newtest(......);
#	导入数据
mysql>	insert into newtest select * from test;

2.2 数据库用户授权

  • DCL语句设置用户权限(用户不存在时,则新建用户)
mysql>	grant 权限列表 on 数据库名.表名 to 用户名@@来源地址 [identifited by '密码'];
#示例
mysql>	grant select on auth.* to 'test'@'localhost' identifited by '123456';
  • 查看用户的权限
mysql>	show grants for 用户名@来源地址;
#示例
mysql>	show grants for 'test'@'20.0.0.20';
  • 撤销用户的权限
mysql>	revoke 权限列表 on 数据库名.表名 from 用户名@来源地址;
#示例
mysql>	revoke all on auth.* from 'test'@'20.0.0.20';

三、忘记数据库密码如何修改

#配置文件里面设置语句进行跳过验证
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
......
skip-grant-tables			===>添加一条代码

#进入mysql数据库
mysql> use mysql;
mysql> update mysql.user set authentication_string=password('123456') where user='tom';
#修改好之后记得将之前添加的代码删除

你可能感兴趣的:(mysql数据库)