IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Mysql数据库管理以及SQL语句的基本命令操作 -> 正文阅读

[大数据]Mysql数据库管理以及SQL语句的基本命令操作

目录

前言

一、数据库基本操作命令

1、查看数据库的信息

2、查看数据库中包含的表

3、查看表的结构(字段)

二、SQL语句概述

1、?SQL语言

2、SQL分类

三、SQL语句基本操作

1、DDL

1.1??创建数据库

1.2? 创建数据表?

1.3? 删除指定的数据表

1.4? 删除指定的数据库

2、DML

2.1? 插入新数据(INSERT)

2.2? 更新原有数据(UPDATE)

2.3? 删除不需要的数据(DELETE)

3、DQL

4、DCL

4.1? 设置用户权限(用户不存在时,则新建用户)

4.2? 查看用户的权限

4.3? 撤销用户的权限

四、修改表名和表结构——alter

1、修改表名

2、扩展表结构(增加字段)

3、修改字段(列)名,添加唯一键

4、删除字段、主键

总结


?

前言

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,-目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

一、数据库基本操作命令

1、查看数据库的信息

mysql> show databases;      #大小写不区分,分号“;”表示结束
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql> 

2、查看数据库中包含的表

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

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
.............省略部分内容

3、查看表的结构(字段)

USE 数据库名;
DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名;

这里执行就像我们在Linux中使用绝对路径和相对路径一样,当你在所在表的库中时,可省略前面的数据库名(相对路径)。
当你需要对其他库中的表进行操作时,就需要加上库名(绝对路径)进行操作。
mysql> 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                     |       |
| Update_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Delete_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Create_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Reload_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Shutdown_priv          | enum('N','Y')                     | NO   |     | N                     |       |
.............省略部分内容	

数据表的结构:

第一字段 Field每条(行)代表的是字段

第二字段 Type代表是此条字段可以写什么样的数据类型

字段中定义了各个类型及是否为默认

第三字段 Null代表此条字段是否可以为空

第四字段 Key 主键 PRI(primary)代表是否为主键 ,主键可以有组合组件,多个字段组成一个组件

第五字段 Default 默认字段,当设置没有输入内容时,生成的表显示的就是默认字段,可以设置默认字段为一个固定值,例如设置默认字段为:nj,则之后创建如果没有设置此字段,表中此项默认为:nj。

第六字段 Extra 扩展 扩展可以显示标识符列:(引申概念:种子、增量,例如种子为1 增量为1,则生成一条记录时,id为1 第二个记录为2)不可人为修改

二、SQL语句概述

1、?SQL语言

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

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

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

2、SQL分类

DML数据操纵语言,用于对表中的数据进行管理
DQL数据查询语言,用于从数据表中查找符合条件的数据记录
DDL数据定义语言,用于创建数据库对象,如库、表、索引等
DCL数据控制语言,用于设置或者更改数据库用户或角色权限

三、SQL语句基本操作

1、DDL

1.1??创建数据库

格式:CREATE DATABASE 数据库名;

mysql> create database abc;   ##创建abc库
Query OK, 1 row affected (0.01 sec)

mysql> show databases;  ##查看库列表
+--------------------+
| Database           |
+--------------------+
| information_schema |
| abc                |      ##abc库已创建
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
mysql> 

1.2? 创建数据表?

格式:CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);

mysql> use abc;   ##进入abc库
Database changed
mysql> create table abc01(        ##创建abc01表                                                                          
     -> id int not null,              ##定义表中字段
    -> name char(10) not null,     
    -> address varchar(50) default 'BJ',
    -> primary key (id));
Query OK, 0 rows affected (0.43 sec)
mysql>  describe abc01;     ###查看数据表结构
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | NO   | PRI | NULL    |       |
| name    | char(10)    | NO   |     | NULL    |       |
| address | varchar(50) | YES  |     | BJ      |       |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql> 

1.3? 删除指定的数据表

格式:

use 数据库名;
drop table 表名;
或
drop table [数据库名.]表名;
mysql> drop table abc.abc01;   ##删除abc01数据表
Query OK, 0 rows affected (0.04 sec)
mysql> use abc;    ##进入abc库
Database changed
mysql> show tables; ##查看数据表列表
Empty set (0.00 sec)
                             ####没有任何数据表,abc01数据表已被删除
mysql> 

1.4? 删除指定的数据库

格式:?DROP DATABASE 数据库名;

mysql> drop database abc;   ##删除abc数据库
Query OK, 0 rows affected (0.01 sec)     ##ok,删除成功

2、DML

2.1? 插入新数据(INSERT)

格式:insert into 表名(字段1,字段2[,...]) values(字段1的值,字段2的值,...);

mysql> create database abcd;     ##创建abcd库
Query OK, 1 row affected (0.00 sec)
mysql> use abcd;                 ##进入abcd库
Database changed
mysql> create table abcd01(           ##创建abcd01表
    -> id int(4) not null,
    -> name char(10) not null,    
    -> address varchar(50) default 'NJ',
    -> primary key (id));
Query OK, 0 rows affected (0.04 sec)
mysql> desc abcd01;         ##显示abcd01表的结构
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(4)      | NO   | PRI | NULL    |       |
| name    | char(10)    | NO   |     | NULL    |       |
| address | varchar(50) | YES  |     | NJ      |       |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql> insert into abcd01(id,name)values(1,'zhangsan');  
                  ##插入数据id=1,姓名zhangsan
mysql> select * from abcd01;  ##查看表中数据内容
+----+----------+---------+
| id | name     | address |            ##id已经为1,姓名为zhangsan
+----+----------+---------+
|  1 | zhangsan | NJ      |
+----+----------+---------+
1 row in set (0.00 sec)
mysql> 

2.2? 更新原有数据(UPDATE)

格式:UPDATE 表名 SET 字段名1=值1 WHERE条件表达式;

mysql> update abcd01 set name='wangwu' where id =1;  
              ##修改id为1的字段姓名为wangwu
mysql> select * from abcd01;  ##显示表中数据内容
+----+--------+---------+
| id | name   | address |
+----+--------+---------+             ##姓名已变为wangwu
|  1 | wangwu | NJ      |
+----+--------+---------+
1 row in set (0.00 sec)

2.3? 删除不需要的数据(DELETE)

格式:DELETE FROM 表名 WHERE 条件表达式;

mysql> delete from  abcd01  where id =1;  ##删除id为1的字段的数据
Query OK, 1 row affected (0.01 sec)

mysql> select * from abcd01;     ##显示表中数据内容
Empty set (0.00 sec)               ##变为空

3、DQL

格式:selext 字段名1,字段名2… from 表名;

?查询时可不指定条件

mysql> select * from auth.users;
+----+----------+
| id | name     |
+----+----------+
|  2 | jiaoshou |
+----+----------+
1 row in set (0.01 sec)


查询时指定条件

mysql> select name from auth.users where name='jiaoshou';
+----------+
| name     |
+----------+
| jiaoshou |
+----------+
1 row in set (0.01 sec)

4、DCL

4.1? 设置用户权限(用户不存在时,则新建用户)

格式:grant 权限列表 on 数据库名.表名 to 用户名@来源地址 [identified by ‘密码’];

grant all privileges on *.* to 'root'@'192.168.181.%' identified by 'abc123' with grant option; #允许192.168.181.0网段使用root账号复制所有数据库数据,登录密码为‘abc123’
mysql> grant all privileges on *.* to 'root'@'192.168.181.%' identified by 'abc123' with grant option;
Query OK, 0 rows affected, 1 warning (0.01 sec)
#允许192.168.181.0网段使用root账号复制所有数据库数据,登录密码为‘abc123’

4.2? 查看用户的权限

格式:show grants for 用户名@来源地址;

mysql> show grants for 'root'@'192.168.181.%';
+-------------------------------------------------------------------------+
| Grants for root@192.168.181.%                                           |
+-------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.181.%' WITH GRANT OPTION |
+-------------------------------------------------------------------------+
1 row in set (0.00 sec)

4.3? 撤销用户的权限

格式:remove 权限列表 on 数据库名.表名 from 用户名@来源地址;

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

四、修改表名和表结构——alter

1、修改表名

ALTER TABLE 旧表名 RENAME 新表名;

例:alter table CLASS1 rename CLASS2;
show tables;
select * from CLASS2;

?

2、扩展表结构(增加字段)

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

#default ‘地址不详’:表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用

例:alter table class2 add address varchar(50) default '地址不详';

?

3、修改字段(列)名,添加唯一键

alter table 表名 change 旧列名 新列名 数据类型 [unique key];

#change 可修改字段名、数据类型、约束等所有项

唯一键:唯一,但可以为空(空值只能出现一次)
#每张表往往有多个字段具有唯一性,但是只能指定一个主键,所以唯一键就是用来解决表中多个字段需要具有唯一性的问题

主键包含唯一键的部分属性
唯一键不能完全作为主键

例:alter table class2 change name student_name varchar(20) unique key;
select * from class2;

insert into class2 (id,student_name,sex) values (1,'wangdachu','女');
select * from class2;
insert into class2 (id,student_name,sex) values (4,'wangdachu','女');

?

?

4、删除字段、主键

alter table 表名 drop 字段名;

例:alter table class2 drop address;

?

总结

主要讲述了数据库管理,之后会介绍数据库中索引、事务、视图、存储过程和存储引擎的理论和使用方法。?

?

?

?

?

?

?

?

?

?


?

?

?

?

?

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:36:07  更:2021-10-25 12:37:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:58:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码