MySQL数据库管理

本文详细介绍了MySQL的基本操作,包括查看数据库信息、数据库表结构,以及使用DDL和DML进行数据定义和操作。内容涵盖创建、删除数据库和表,插入、查询、修改、删除数据记录,以及权限管理和高级操作如清空表、创建临时表、克隆表、用户授权等。
摘要由CSDN通过智能技术生成

1.查看数据库信息

[root@server ~]# mysql -uroot -pabc123	#登录数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |		#定义访问数据库单元数据的方式。数据库名和表名,列的数据类型,访问权限等。
| auth               |
| bbs                |
| mysql              |		#核心数据库,负责存储数据库用户、权限、关键字等用户自己需要使用的控制和管理信息。
| performance_schema |		#数据库的性能参数,存储引擎等。
| sys                |		#sys系统库下包含许多试图,它们以各种方式对performance_schema表进行聚合计算展示。
| tanwenlong         |
+--------------------+
7 rows in set (0.00 sec)

2.查看当前数据库中有哪些表

mysql> use mysql;		#use 数据库名;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;		#查看数据库中的表
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)

3.查看表的结构

mysql> use mysql;
mysql> describe  user;

4.SQL语句概述

1、SQL语言
	1、Structured Query Language的缩写,即结构化查询语言
	2、关系型数据库的标准语言
	3、用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能
2、SQL分类
	1、DDL(Data Definition Language)数据定义语言:用来建立数据库、数据库对象和定义字段,如CREATE、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

5.DDL(Data Definition Language)数据定义语言

5.1.创建新的数据库和新的表

mysql> create database twl;		#CREATE DATABASE 数据库名
mysql> use twl;
mysql> create table users(name char(26) not null,passwd char(36) default'123456',primary key(name));		#CREATE TABLE 表名(字段定义......)

5.2删除一个数据表

mysql> drop table twl.users;

5.3删除一个数据库

mysql> drop database twl;

6.DML(Data Manipulation Language)数据操纵语言

6.1创建数据库与数据表

mysql> create database twl;
Query OK, 1 row affected (0.00 sec)

mysql> use twl;
Database changed
mysql> create table users(name char(26) not null,passwd char(36) default'123456',primary key(name));
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+---------------+
| Tables_in_twl |
+---------------+
| users         |
+---------------+
1 row in set (0.00 sec)

mysql> describe users;
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| name   | char(26) | NO   | PRI | NULL    |       |
| passwd | char(36) | YES  |     | 123456  |       |
+--------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

6.2插入数据记录

INSERT INTO 表名(字段1,字段2…) VALUES(字段1的值,字段2的值…)

mysql> use twl;
mysql> insert into users values('zhangsan',default);
mysql>  insert into users(name,passwd) values('lisi','123456');

6.3查询数据记录

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

mysql> select * from twl.users;
+----------+--------+
| name     | passwd |
+----------+--------+
| lisi     | 123456 |
| zhangsan | 123456 |
+----------+--------+
2 rows in set (0.00 sec)
mysql> select name,passwd from twl.users where name='zhangsan';		#单独查询张三

6.4修改数据记录

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

mysql> update twl.users set passwd=123123 where name='zhangsan';

6.5修改数据库密码

方法一:
mysql> update mysql.user set authentication_string=PASSWORD('123456') where user='root';
mysql> flush privileges;
方法二:
[root@server ~]# mysqladmin -u root -p'123456' password 'abc123'
方法三:
mysql> SET PASSWORD = PASSWORD('newpass'); //root用户
mysql> SET PASSWORD FOR 用户 = PASSWORD(‘newpass');
忘记密码:
vi /etc/my.cnf
[mysqld] 
末尾添加
skip_name_resolve
skip_grant_tables
bind-address=0.0.0.0
systemctl restart mysqld

6.6删除数据库的记录

DELETE FROM 表名 WHERE 条件表达式

mysql> delete from twl.users where name='zhangsan';
mysql> select * from twl.users;

7.数据表的高级操作

7.1清空表

mysql> delete from twl.users;		#DELETE语句可以通过WHERE对要删除的记录进行选择。数据没了,结构还在。
mysql> truncate table twl.users;	#TRUNCATE TABLE将删除表中的所有记录。数据没了,结构还在。

7.2创建临时表

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

mysql> CREATE TEMPORARY TABLE `lt`(`id` int(10) NOT NULL AUTO_INCREMENT,`ame name` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,`level` int(10) NOT NULL,PRIMARY KEY (id))ENGINE=InnoDB  DEFAULT COLLATE=utf8;		#TEMPORARY:临时,AUTO_INCREMENT:自加一,CHARACTER SET utf8字符集设置utf8,COLLATE utf8_bin NOT NULL:编码设置二进制编码,DEFAULT COLLATE=utf8:默认字符集
mysql> INSERT INTO lt(name,level) VALUES('aa',10);
mysql> select * from lt; 	#临时建立,退出删除,在show tables;看不到

7.3克隆表

LIKE方法:

从ttt完整复制结构生成test1表,再导入数据

mysql> create table test1 like ttt;
mysql> insert into test1 select * from ttt;	#插入信息

SHOW CREATE TABLE方法:

先查看bbb表完整结构,根据此结构创建名字不同结构相同的表test2,再导入数据

mysql> show create table bbb\G
mysql> create table test2("id" int(20) NOT NULL AUTO_INCREMENT,   "name" varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,   "level" int(20) NOT NULL,   PRIMARY KEY ("id") ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
mysql>insert into test2 select * from bbb;

7.4数据库用户授权

语法:GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 IDENTIFIED BY ‘密码’

mysql> insert into users(name,passwd) VALUES('lisi',PASSWORD'123123');
mysql> GRANT select ON twl.users TO 'lisi'@'localhost' IDENTIFIED BY '123456';

7.5查看用户权限

语法:SHOW GRANTS FOR 用户名@来源地址

mysql> SHOW GRANTS FOR 'lisi'@'localhost';
mysql> exit
mysql -ulisi -p 123456

7.6撤销用户的权限

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

mysql> REVOKE all ON twl.users FROM 'lisi'@'localhost';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值