MySQL基础操作一遍就过

一.什么是数据库

我们常用的数据存储方式,比如内存和文件,数据保存在内存中时,存取速度快,但是数据不能永久保存 ;数据保存在文件时,数据永久,但是速度比内存操作慢,频繁的IO操作,并且查询数据不方便。而数据库的存储方式,数据持久化保存,高可靠,高可用,数据的快速提取。所以在企业中得以广泛使用。

二.数据库概述

数据库概述

  • 数据库作用:数据持久化保存,高可靠,高可用,数据的快速提取。
  • 数据库存储类型:关系型数据库 非关系型数据库。
  • 数据保存在内存
  • 优点:存取速度快
  • 缺点:数据不能永久保存

数据保存在文件

  • 优点:数据永久保存
  • 缺点:速度比内存操作慢,频繁的IO操作。2)查询数据不方便

数据保存在数据库

  • 数据永久保存
  • 使用SQL语句,查询方便效率高。
  • 管理数据方便

三.查看数据库信息

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

6 rows in set (0.00 sec)

四.查看数据库中的表

mysql> use moon; //切换到moon库

mysql> show tables; //查看表
+----------------+
| Tables_in_moon |
+----------------+
| abc            |
| svip           |
| vip            |
| vvip           |
+----------------+

Mysql数据库的数据文件都存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,用于储存数据表文件。每一个数据表对应为三个文件,后缀名分别为’’.frm “.myd” 和“.myi"。当然也有少数以opt、csm、csv、ibd结尾的。

四.查看表结构

mysql> desc vip;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(2)      | YES  |     | NULL    |       |
| name   | varchar(10) | YES  |     | NULL    |       |
| number | int(3)      | YES  |     | NULL    |       |
| age    | int(3)      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

五.SQL语句

1.sql语言

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

2.SQL分类

  • DDL:数据定义语言
  • DML:数据操纵语言
  • DQL:数据查询语言
  • DCL:数据控制语言

DDL:数据定义语言

DDL语句用于创建数据库对象,如库、表、索引等。
eg:新建库

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

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| moon               |
| mysql              |
| nice               |
| performance_schema |
| sys                |
| think              |
+--------------------+

eg:新建表

create table 表名(字段01名称 字段01类型 字段01约束,字段02名 字段02类型 字段02约束)存储引擎 字符集 ,多个字段用,隔开

mysql> use think;
Database changed
mysql> create table omen(id int(2),name varchar(10),number varchar(10));
Query OK, 0 rows affected (0.01 sec)
mysql> desc omen; 
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(2)      | YES  |     | NULL    |       |
| name   | varchar(10) | YES  |     | NULL    |       |
| number | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

字段类型:

  • int (5) 整型 00000-99999
  • double 浮点型
  • decimal(5,2) 有效数字是5位,小数点后面保留2位100.00 088.45
  • fioat 单精度浮点 4字节
  • varchar(50) 可变长度字符串
  • char(10) 固定长度字符串

字段01约束:

  • 非空约束:内容不允许为空
  • 主键约束:非空且唯一 典型的标识
  • 默认值:假如没有填数据,默认预先设定的值
  • 自增特:id 1 2 3 自动帮你去填

 

存数引擎:myisam innodb

字符集:UTF-8

eg: 删除表,删除库

mysql> drop table omen;
Query OK, 0 rows affected (0.00 sec)

mysql> drop database think;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| moon               |
| mysql              |
| nice               |
| performance_schema |
| sys                |
+--------------------+

 DML语句

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

  • INSERT:插入新数据
  • UPDATE:更新原有数据
  • DELETE:删除不不需要的数据

eg:INSERT插入数据

mysql> insert into omen(id,name,number) values(1,'ziyang',10),(2,'weilai',12);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from omen;
+------+--------+--------+
| id   | name   | number |
+------+--------+--------+
|    1 | ziyang | 10     |
|    2 | weilai | 12     |
+------+--------+--------+

eg:UPDATE:更新原有数据

mysql> update omen set name='yueliang' where name='weilai';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from omen;
+------+----------+--------+
| id   | name     | number |
+------+----------+--------+
|    1 | ziyang   | 10     |
|    2 | yueliang | 12     |
+------+----------+--------+

eg:DELETE:删除不不需要的数据

mysql> delete from omen where name='ziyang';
Query OK, 1 row affected (0.00 sec)

mysql> select * from omen;
+------+----------+--------+
| id   | name     | number |
+------+----------+--------+
|    2 | yueliang | 12     |
+------+----------+--------+

六.进阶操作

1.清空表

mysql> truncate table omen; //清空表数据,不清空结构
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+-----------------+
| Tables_in_think |
+-----------------+
| omen            |
+-----------------+
mysql> drop table omen; //清空表数据和结构
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
Empty set (0.00 sec)

2.建立临时表

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

mysql> create temporary table omen(id int(2),name varchar(10),number varchar(10));
Query OK, 0 rows affected (0.00 sec)

mysql> desc omen;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(2)      | YES  |     | NULL    |       |
| name   | varchar(10) | YES  |     | NULL    |       |
| number | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

3.克隆表

mysql> create table df like vip; //复制表结构
Query OK, 0 rows affected (0.01 sec)

mysql> insert into df select *from vip; //导入数据
Query OK, 7 rows affected (0.00 sec)
Records: 7  Duplicates: 0  Warnings: 0

mysql> select *from df;
+------+----------+--------+------+
| id   | name     | number | age  |
+------+----------+--------+------+
|    1 | ziyang   |     10 |   24 |
|    2 | xiner    |     12 |   17 |
|    3 | weilai   |     12 |   24 |
|    4 | keai     |     17 |   20 |
|    5 | yueliang |     15 |   21 |
|    6 | meimei   |     15 |   24 |
|    7 | menxin   |     15 |   21 |
+------+----------+--------+------+
7 rows in set (0.00 sec)

 

七.DCL数据库用户授权

DCL语句设置用户权限(用户不存在时;则会新建用户)

  • 若用户已存在,则更改用户密码
  • 若用户不存在,则新建用户
mysql> create user 'knight'@'%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on *.* to 'knight'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (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)

查看数据库有哪些用户

mysql> select user from mysql.user;
+---------------+
| user          |
+---------------+
| knight        |
| mysql.session |
| mysql.sys     |
| root          |
+---------------+

撤销用户权限

mysql> revoke all privileges on *.* from 'knight'@'%';
Query OK, 0 rows affected (0.00 sec)

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Moon-01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值