MySQL数据库管理

目录

一、数据库基本操作

1.查看数据库信息

​编辑

1.1查看数据库中的表信息

1.2 显示数据表的结构

      常见的数据类型

2.数据库管理操作

2.1 SQL语言

2.2 创建数据库和表

      删除表名

3.管理表中的数据

3.1 向数据表中插入新的数据记录

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

3.3 在数据表中删除指定的数据记录

4.查找符合条件的数据记录

二、数据表高级操作

1.清空表

2.临时表

3.克隆表

4.alter

4.1修改表名

4.2拓展自带名

4.3修改拓展自带名

三、数据库用户管理

四、数据库用户授权


一、数据库基本操作

1.查看数据库信息

SHOW DATABASES 

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| njzb               |                大部分SQL操作命令
| performance_schema |                必须以; 结束
| sys                |
+--------------------+
5 rows in set (0.00 sec

1.1查看数据库中的表信息

USE 数据库名

SHOW  TABLES

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
ysql> show tables
    -> ;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |

1.2 显示数据表的结构

DESCRIBE [数据库名.]表名

describe user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(32)                          | NO   | PRI |                       |       |
| Select_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Insert_priv            | enum('N','Y')                     | NO   |     | N              

注:也可以使用“desc user;”

      常见的数据类型

常用的数据类型:
int:整型                        用于定义整数类型的数据
float:单精度浮点4字节32位        准确表示到小数点后六位        
double:双精度浮点8字节64位
char:固定长度的字符类型        用于定义字符类型数据。 20字节  4 
varchar:可变长度的字符类型                               20   4 
text:文本
image:图片
decimal(5,2):5个有效长度数字,小数点后面有2位        指定长度数组 

2.数据库管理操作

2.1 SQL语言

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

SQL分类

DDL:数据定义语言

DML:数据操纵语言

DQL:数据查询语言

DCL:数据控制语言

2.2 创建数据库和表

  • DDL语句可用于创建数据库对象,如库、表、索引等
  • 使用DDL语句新建库、表
  • 创建数据库:CREATE DATABASE 数据库名
  • 创建数据表:CREATE TEBLE 表名 (字段定义......)
mysql> create database njzb;
Query Ok,1 row affected (0.0l sec)

创建名为njzb的数据库

由上可知show databases可以查看数据库的表信息

mysql>create table ky35 (id int not null,name char(15) not null,score decimal(4,2),passwd char(45) default'',primary key (id));

由上又可以用到desc ky35来显示表的结构

      删除表名

DROP TABLE [数据库名.】表名

再次建立名为ky37的表名

如果想将ky37删除

当然也有其他删除方法

删除数据库也是同样道理

DROP DATAVASE 数据库名

创建名为ufc的数据库

依旧是用drop 删除

3.管理表中的数据

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

3.1 向数据表中插入新的数据记录

INSERT INTO 表名(字段1,字段2......)

      VALUES(字段1的值,字段2的值,.......)

mysql> INSERT INTO ky35  (id,name,score,passwd) values(1,'zhaoyan',80.5,PASSWORD('201314'));
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> INSERT INTO ky35  (id,name,score,passwd) values(2,'xuzhou',82.5,303475);
Query OK, 1 row affected (0.00 sec)

如果不用PASSWORD(' ')密码不会隐藏

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

UPDATE 表名 SET 字段名1=值1[字段名2=值2] WHERE 条件表达式

mysql> update auth.users set user_passwd=PASSWORD(") where
user name='lisi':
Query OK, 1 row affected (0.00 sec)
Rows matched:1 Changed:1 Warnings:0
mysql> update mysql.user set authentication string=PASSWORD('123457')

where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched:4 Changed:4 Warnings: 0
mysqI> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

3.3 在数据表中删除指定的数据记录

DELETE FROM 表名 WHERE 条件表达式

mysql> delete from auth.users where user name='lisi'
Query OK, 1 row affected (0.00 sec)

不带where条件的语句表示删除表中所有记录

mysql> delete from auth.users;
Query OK, 1 row affected (0.00 sec)

由上可知drop是删除,但它连同表名和数据一块删除

至此我们用delete

这个时候我们再去创建也是可以的

4.查找符合条件的数据记录

  • DQL是数据查询语句,只有SELECT
  • 用于从数据表中查找符合条件的数据记录
  • 查询时可不指定条件

SELECT 字段名1,字段名2.....FROM表名

查询时指定条件

SELECT 字段名1,字段名2.....FROM表名 WHERE 条件表达式

注意条件就行

拓展:limit :可以指定行数

limit 2 可以查到第二行

二、数据表高级操作

1.清空表

  • DELETE FROM  tablename
  • TRUNCATE TABLE tablename

        mysql>truncate table tmp;

方法一:
delete from yyy3;
#DELETE清空表后,返回的结果内有删除的记录条目; 
DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除
所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录。

方法二:
truncate table test01;
#TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,
因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,
ID会从1开始重新记录

2.临时表

  • 临时建立的表,用于保存一些临时数据,不会长期存在
mysqI> CREATE TEMPORARY TABLE `mytmp'(
'id`int(10) 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;
Query OK,0 rows affected(0.00 sec)

3.克隆表

LIKE方法

mysql> create table test like mytmp;

mysql> insert into test select * from mytmp;

SHOW CREATE TABLE方法

mysql> show create table mytmp\G

mysql> create table test(.....);

mysql> insert into test select * from mytmp;

方法1:

方法2:

虽然字段属性都有 但是主件没有

4.alter

4.1修改表名

ALTER TABLE 旧表名 RENAME 新表名

列子:

ALTER TABLE  zzz  RENAME  yyy;

ALTER TABLE yyy   RENAME  xxx;

当然里边数据也都在

4.2拓展自带名

拓展表结构

ALTER TABLE 表名 ADD address varchar(50) default '地址不详';

4.3修改拓展自带名

ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
 

三、数据库用户管理

1.创建

'密码':若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密;

若使用加密密码,需要先使用SELECT PASSWORD('密码');获取密文,再在语句中添PASSWORD '密文';
若省略“IDENTIFIED BY"部分,则用户的密码将为空(不建议使用)

 

SELECT PASSWORD('abc123');   修改当前密码
CREATE USER 'user2'@'localhost' IDENTIFIED BY PASSWORD '*   

删除用户

DROP USER 'xuzhou'@'localhost' ;

删除后查看名为xuzhou的用户没了

3.如果密码忘记了 可以在服务端修改

首先退出mysql

(也可以快捷键ctrl+d)

在服务端添加skip-grant-tables并重启

然后输入mysql -uroot,可以直接进来

因为我们是跳进来的,需要刷新一下!!!

不刷新会报错!!

接着就可以设置密码了

四、数据库用户授权

grant 提权
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

1.创建普通用户

2.刷新并退出

3.登录进入数据库

4.可以查看数据库

5.也能查看表

6.但不能删除表,因为权限不够

使用Navicat Premium链接数据库

刚刚创建的xuzhou因为没有权限所有外部链接不上

设置外部ip为192.168.10.%的外部可链接

撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;

记得重启!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值