数据库学习1-DDL:操作数据库表


前言

SQL 是用于访问和处理数据库的标准的计算机语言。

SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。

关系型数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。这些数据库都是可以用SQL语言来去编写。

非关系型数据库Redise、Hbase、NOSQL等等。这些数据库他们使用的是类SQL语言去编写的

SQL 面向数据库执行查询
SQL 可从数据库取回数据
SQL 可在数据库中插入新的记录
SQL 可更新数据库中的数据
SQL 可从数据库删除记录
SQL 可创建新数据库
SQL 可在数据库中创建新表
SQL 可在数据库中创建存储过程
SQL 可在数据库中创建视图
SQL 可以设置表、存储过程和视图的权限


一、什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:

1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database

1.数据库的位置和地位

在这里插入图片描述

2.数据库种类

菜鸟教程

二、MySQL数据库

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

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context
data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。

三、RDBMS 术语

在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:

数据库: 数据库是一些关联表的集合。
数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
外键:外键用于关联两个表。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示:

 这是SQL server 的图

请添加图片描述

MySQL安装教程:链接: mysql8.0.25安装配置教程(windows 64位)最详细—聚精会神搞学习

四、SQL语言

SQL

在这里插入图片描述

1.什么是SQL ?

Structured Query Languange:结构cmd化查询语言
其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。

2.SQL通用语法

SQL语句可以单行或多行书写,以分号结尾。
可使用空格和缩进来增强语句的可读性。
MySQL数据库的SQL 语言不区分大小写,关键字建议使用大写。


  • 3种 注释
  • 单行注释: – 注释内容 或 # 注释内容(mysql特有)
  • 多行注释: /* 注释 */
  • /*! … */

5.退出命令

quit;     
exit;
ctrl + Z

3.SQL分类

  • 1.DDL(Data Definition Language)数据定义语言 用来定义数据库对象:数据库、表、列等。关键字:create,drop,alter,show,use等

  • 2.DML(Data Manipulatio Language)数据操作语言 用来对数据库中表的数据进行增删改。关键字:insert,delete,update 等

  • 3.DQL(Data Query Language)数据库查询语言 用来查询数据库中表的记录(数据)。关键字:select,where 等

  • 4.DCL(Data Control Language)数据控制语言(了解) 用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANY,REVOKE 等。

DDL:操作数据库表

1. 操作数据库:CRUD

在这里插入图片描述

1.C(Create):创建

  • 创建数据库: 数据库是不区分大小写,ABC001 和 abc001是一样的; 命令也不区分大小写;

  • 创建数据库的时候,名字的命名,只能是a-z,0-9,_

  • 组成,不能出现特殊字符,最好也不要用纯粹的0-9来命令,建议使用a-z,更具具体的事物去命名;

create database 数据库名称
mysql> create database abc001; -- 创建数据库
mysql> show databases;-- 显示数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| abc001             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
mysql> create database `001`; -- 创建和删除纯0-9的数据库 
Query OK, 1 row affected (0.00 sec)
mysql> drop database abc005;-- 删除数据库
Query OK, 0 rows affected (0.00 sec)
  • 创建数据库,判断不存在,再创建:
create database if not exists 数据库名称;
  • 创建数据库,并指定字符集
create database 数据库名称 character set 字符集名;
  • 练习:创建db3数据库,判断是否存在,并指定字符集为gbk
create database if not exists db3 character set gbk;
mysql> create database abc003 character set gbk;
Query OK, 1 row affected (0.00 sec)

2.R(Retrieve):查询

  • 查询所有数据库的名称:
show databases;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| abc001
  • 查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;
mysql> show create database abc001;
+----------+-----------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------------------------------+
| abc001 | CREATE DATABASE `abc001` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ |
+----------+-----------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

3.U(Update):修改

  • 修改数据库的字符集
alter database 数据库名称 character set 字符集名称:
mysql> alter database abc001 character set gbk;
Query OK, 1 row affected (0.00 sec)

mysql> show create database abc001;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| abc001   | CREATE DATABASE `abc001` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)

4.D(Delete):删除

  • 删除数据库
drop database 数据库名称;
mysql> drop database `123`;
Query OK, 0 rows affected (0.01 sec)
  • 判断数据库存在,存在再删除
drop database if exists 数据库名称;

5:使用数据库

  • 查询当前正在使用的数据库名称
select database();
use 数据库名;    进如数据库

mysql> use jnng;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| jnng       |
+------------+
1 row in set (0.00 sec)
  • 使用数据库
use 数据库名称;

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值