日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

·MySQL数据库管理(SQL操作命令,解决忘记密码,设置用户权限)

發布時間:2024/2/28 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ·MySQL数据库管理(SQL操作命令,解决忘记密码,设置用户权限) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 數據庫基本操作命令
    • MySQL查看當前服務器中包含的庫
    • 查看當前使用的庫中包含的表
    • 顯示數據表的結構(字段)命令
  • SQL操作管理命令
    • DDL操作命令
    • DDL語句創建庫,表的命令
    • DDL語句刪除庫,表的命令
    • DML操作命令
    • DML語句的作用是
    • 向數據表中插入新的數據記錄命令(insert)
    • alter用法總結
  • 修改,更新數據表中的數據記錄(update)
    • 刪除整個表
    • 在數據表中刪除指定的數據記錄命令(delete)
    • **清空表的數據**
    • 刪除數據庫和表
    • 查看表結構命令
    • DQL操作命令
    • 創建臨時表
  • DCL操作命令
    • DCL語句的作用
    • 設置用戶權限的命令
    • 撤銷用戶權限的命令
    • 遠程連接實例
    • 安裝mysql服務進行遠程連接
    • 設置環境變量
    • 忘記密碼
    • 改該密碼

數據庫基本操作命令

MySQL查看當前服務器中包含的庫

show databases;

mysql -u root -p進入數據庫 > show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)

查看當前使用的庫中包含的表

需要先使用USE語句切換到使用的庫

  • 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 -ADatabase changed mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | engine_cost | | event | | func | | general_log | ...省略內容

顯示數據表的結構(字段)命令

mysql> describe [數據庫名.]表名; ===>可以使用desc [數據庫名.]表名; mysql> describe user; +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Host | char(60) | NO | PRI | | | | User | char(32) | NO | PRI | | |

SQL操作管理命令

  • SQL語言
    • 是Structured Query Language的縮寫,及結構化查詢語言
    • 是關系型數據庫的標準語言
    • 用于維護管理數據庫,如數據查詢,數據更新,訪問控制,對象管理等功能
  • SQL分類
    • DDL:數據定義語言
    • DML:數據操縱語言
    • DQL:數據查詢語言
    • DCL:數據控制語言

DDL操作命令

DDL語句用于創建數據庫對象,如庫,表,索引等

DDL語句創建庫,表的命令

創建數據表:create table 表名(字段定義…)創建數據庫:create database 數據庫名

創建數據表

mysql> create database zhang; //創建庫 Query OK, 1 row affected (0.00 sec) mysql> use zhang; Database changed mysql> create table benat (id int(3) not null primary key auto_increment,name varchar(10) not null,score decimal(5,2),address varchar(50) default '未知');整數型int(3);000-999- double 浮點型 8字節- decimal(5,2)有效數字是5位,小數點后面保留2位 (100.00 099.50)- float 單精度浮點 4字節- char (10)固定長度字符串- varcha (50)可變長度字符串- char字符- create table benat 創建表 - not null 不允許為空auto_increment 自動增長default 未知- 字段約束:非空not null;默認default ‘’;主鍵primary key;自增auto increment。存儲引擎:myisam;innodb。字符集:utf8。

DDL語句刪除庫,表的命令

  • 刪除指定的數據表:drop table [數據庫名.]表名
  • 刪除指定的數據庫:drop database 數據庫名
mysql> drop table benat; '//刪除表'mysql> drop database zhang; '//刪除庫' mysql> drop table school.info; '//刪除表,中間加點,就相當于是絕對路徑' Query OK, 0 rows affected (0.00 sec)mysql> drop database school; '//刪除庫' Query OK, 0 rows affected (0.00 sec)

DML操作命令

DML語句的作用是

  • DML語句用于對表中的數據進行管理
  • 包括以下操作
    • insert:插入新數據
    • update:更新原有數據
    • delete:刪除不需要的數據

向數據表中插入新的數據記錄命令(insert)

mysql> insert into 表名(字段1,字段2,字段3,......) values (字段1的值,字段2的值,字段3的值,.....); mysql> insert into benat values (2,'lisi',77,'shanghai'); 'insert into 后面不跟字段名(默認所有字段),values后面按順序寫全'mysql> select * from info; +----+----------+-------+----------+ | id | name | score | address | +----+----------+-------+----------+ | 1 | zhangsan | 88.00 | beijing | | 2 | lisi | 77.00 | shanghai | +----+----------+-------+----------+

添加用戶

mysql> insert into benat (id,name,score,address) values (2,'lisi',88.6,'shanghai'); mysql> select * from benat; +----+----------+-------+----------+ | id | name | score | address | +----+----------+-------+----------+ | 1 | zhangsan | 88.60 | biejing | | 2 | lisi | 88.60 | shanghai | +----+----------+-------+----------+ 2 rows in set (0.00 sec)

alter用法總結

  • 刪除列
alter table 【表名】 drop 【列名】
  • 增加列
alter table 【表名】 add 【列名】 【類型】

重命名列

ALTER TABLE 【表名】 CHANGE 【列名】【新名】

給info表添加一個字段為hobby,整型數據類型,不允許為空

alter table info add hobby int(3) not null


查詢A表中的行數

select count(*) from A

顯示大于80的

mysql> select * from benat where score > 80;

創建一個新表tmp 把大于80 的數據導入進去

mysql> create table tmp as select * from benat where score > 80;

修改,更新數據表中的數據記錄(update)

update更新:表名 set 字段名 1=值1[,字段名2=值2] where條件表達式 mysql> update benat set name='zhangsan' where id=2; 修改id=2的名字 mysql> select * from benat; +----+----------+-------+----------+ | id | name | score | address | +----+----------+-------+----------+ | 2 | zhangsan | 88.60 | shanghai | | 3 | wangwu | 77.00 | shanghai | +----+----------+-------+----------+mysql> update benat set name='zhangsan'; //修改所有id的name' mysql> select * from benat; +----+----------+-------+----------+ | id | name | score | address | +----+----------+-------+----------+ | 2 | zhangsan | 88.60 | shanghai | | 3 | zhangsan | 77.00 | shanghai | +----+----------+-------+----------+mysql> update benat set score=77 where name='lisi'; 添加lisi mysql> select * from benat; +----+----------+-------+----------+ | id | name | score | address | +----+----------+-------+----------+ | 1 | zhangsan | 88.60 | biejing | | 2 | lisi | 77.00 | shanghai | | 3 | wangwu | 77.30 | hangzhou | | 4 | zhaoliu | 99.00 | suzhou | | 5 | tianxing | 60.00 | 未知 | +----+----------+-------+----------+ 5 rows in set (0.00 sec)

刪除整個表

mysql> delete from tmp; //刪除

在數據表中刪除指定的數據記錄命令(delete)

mysql> delete from 表名 where 條件表達式; mysql> delete from tmp where score >= 90 刪除90分以上的 mysql> select * from tmp; +----+----------+-------+----------+ | id | name | score | address | +----+----------+-------+----------+ | 1 | zhangsan | 88.60 | biejing | | 2 | lisi | 88.60 | shanghai | +----+----------+-------+----------+

清空表的數據

mysql> delete from table_name; mysql> truncate table table_name;

刪除數據庫和表

使用DDL語句刪除庫、表

  • 刪除指定的數據表
mysql> drop tables benat; //刪除整個表

刪除整個數據庫

mysql> drop database zhang;

查看表結構命令

mysql> desc benat; +---------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+----------------+ | id | int(3) | NO | PRI | NULL | auto_increment | | name | varchar(10) | NO | | NULL | | | score | decimal(5,2) | YES | | NULL | | | address | varchar(50) | YES | | 未知 | | +---------+--------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec)

DQL操作命令

  • DQL是數據查詢語句,只有一條:SELECT
  • 用于從數據表中查找符合條件的數據記錄
  • 查詢時可不指定條件
mysql> select 字段名1,字段名2,...... from 表名;

查詢時指定條件

mysql> select 字段名1,字段名2,...... from 表名 where 條件表達式; mysql> select score from benat; +-------+ | score | +-------+ | 88.60 | | 77.00 | +-------+ mysql> select score,address from benat; +-------+----------+ | score | address | +-------+----------+ | 88.60 | shanghai | | 77.00 | shanghai | +-------+----------+ mysql> select score,address from benat where id=2; +-------+----------+ | score | address | +-------+----------+ | 88.60 | shanghai | +-------+----------+ 1 row in set (0.00 sec)

創建臨時表

用于存放臨時的數據,不會長時間的存在,斷開連接就會被刪除,數據存放在內存之中,不在磁盤。

mysql> create temporary table tmp(id int (5) not null primary key auto_increment, -> name char(10) not null, -> socre double(5) default '0' -> )engine=innodb default charset=utf8; mysql> desc tmp; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(5) | NO | PRI | NULL | auto_increment | | name | char(10) | NO | | NULL | | | socre | decimal(5,2) | YES | | 0.00 | | +-------+--------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)

復制表

mysql> create table tmp as select * from benat; 復制 like方法 mysql> create table newtest like test; ===>從test完整復制表的結構生車工newtest mysql> insert into newtest select * from test; ===>導入數據

DCL操作命令

DCL語句的作用

  • 設置或查看用戶的權限,或者創建用戶

設置用戶權限的命令

  • 若用戶已存在,則更改用戶密碼

  • 若用戶不存在,則新建用戶

  • GRANT 權限列表 ON 數據庫名.表名 TO 用戶名@來源地址 [IDENTIFIED BY ‘密碼′

mysql> grant 權限列表 on 數據庫名.表名 to 用戶名@@來源地址 [identified by '密碼'];舉例mysql> grant select on zhang.* to 'test'@'localhost' identified by '123456';

查看用戶的權限
#示例
mysql> show grants for ‘test’@‘20.0.0.20’;

mysql> show grants for 用戶名@來源地址; 舉例 mysql> show grants for 'test'@'localhost'; +-------------------------------------------------+ | Grants for test@localhost | +-------------------------------------------------+ | GRANT USAGE ON *.* TO 'test'@'localhost' | | GRANT SELECT ON "zhang".* TO 'test'@'localhost' | +-------------------------------------------------+ 2 rows in set (0.00 sec) 查看所有權限 mysql> show grants; +---------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION | | GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION | +---------------------------------------------------------------------+ 2 rows in set (0.00 sec)

撤銷用戶權限的命令

  • REVOKE 權限列表 ON 數據庫名.表名 FROM 用戶名@來源地址

    mysql> revoke all privileges on *.* from 'root'@'%'; mysql> show grants for 'root'@'%'; +----------------------------------------------------+ | Grants for root@% | +----------------------------------------------------+ | GRANT USAGE ON *.* TO 'root'@'%' WITH GRANT OPTION | +----------------------------------------------------+ 1 row in set (0.00 sec)

遠程連接實例

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456'; '//all privileges:所有權限,%:所有終端' Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> grant all privileges on *.* to 'root'@'locahost' identified by '123456'; Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)

主機查看

查看數據庫

安裝mysql服務進行遠程連接

設置環境變量

mysql -uroot -p

忘記密碼

設置一個tom用戶

mysql> grant all privileges on *.* to 'tom'@'locahost' identified by '123456'; Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> quit

修改配置文件

root@localhost mysql]# vim /etc/my.cnf server-id=1 skip-grant-tables //添加 (跳過驗證) [root@localhost bin]# systemctl restart mysqld.service [root@localhost bin]# mysql -u tom -p 再次登錄就不用密碼 Enter password: mysql>

改該密碼

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 mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ . . . | time_zone_transition_type | | user | +---------------------------+ mysql> select * from user; authentication_string 用戶密碼的位置mysql> update mysql.user set authentication_string=password('123456') where user='tom'; Query OK, 0 rows affected, 1 warning (0.01 sec) Rows matched: 1 Changed: 0 Warnings: 1 mysql> flush privileges;

總結

以上是生活随笔為你收集整理的·MySQL数据库管理(SQL操作命令,解决忘记密码,设置用户权限)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。