mysql详细教程大全

SQL简介:

SQL(Structured Query Language):是一种结构化查询语言,用于访问和处理关系型数据库系统的计算机标准语言。

关系型数据库系统(RDBMS:Relational Database Management System)

RDBMS中的数据存储在称为表的数据库对象中。这个表基本上是一个相关数据条目的集合,它由许多列和行组成。下图是adver_user(广告主表)的示例:
在这里插入图片描述

字段
 每个表都被分解成更小的实体,称为字段。adver_user表中的字段由:广告主ID、广告主名称、广告主手机号和创建时间组成。

字段是表中的列,用于维护有关表中每条记录的特定信息。


 列是表中的垂直实体,其中包含与表中特定字段关联的所有信息。

行数据
 记录也称为数据行,即表中存在的每个单独的条目。例如,上面的adver_user表中有3条记录。

MySQL数据库服务器
一:下载

安装地址:https://dev.mysql.com/downloads/mysql

二:解压并启动MySQL服务器

将下载好的压缩包解压。并以管理员身份打开命令行,进入 MySQL 服务器安装的目录:D:\software\mysql-5.7.18-winx64\bin ,执行以下命令启动 MySQL。

① mysqld -install

② net start mysql
在这里插入图片描述

SQL标准命令:
DDL(数据定义语言)
数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象。用于操纵表结构的数据定义语言命令有:

CREATE TABLE-- 创建(在数据库中创建新表、表视图或其他对象)

ALTER TABLE-- 更改 (修改现有的数据库对象,如表)

DROP TABLE-- 删除 (删除数据库中的整个表、表或其他对象的视图)

DML(数据操纵语言)
数据操纵语言用于检索、插入和修改数据,数据操纵语言是最常见的SQL命令。

数据操纵语言命令包括:

INSERT-- 插入 (创建记录)

DELETE-- 删除 (删除记录)

UPDATE-- 修改(修改记录)

SELECT – 检索 (从一个或多个表检索某些记录)

DCL(数据控制语言)
数据控制语言为用户提供权限控制命令。

用于权限控制的命令有:

GRANT-- 授予权限

REVOKE-- 撤销已授予的权限

数据库教程
数据库的连接

mysql -h 数据库IP地址 -P 端口号 -u 用户名 -p 密码在这里插入图片描述

数据库的相关操作
一、查询已有数据库列表
show databases;
在这里插入图片描述

二、创建数据库
CREATE DATABASE 数据库名字 [库选项];

#CREATE DATABASE test_table charset utf8;
在这里插入图片描述

三、查看数据库的创建语句
show create database 数据库名字;
在这里插入图片描述

四、修改数据库
注意:数据库的名字不可修改。

alter database 数据库名字 [库选项];
在这里插入图片描述

五、删除数据库:危险操作!!!
drop database [if exists] 数据库名字;在这里插入图片描述

六、进入/使用数据库
use 数据库名;
在这里插入图片描述

数据表的相关操作
一、表的创建
创建表的语句格式:

Create table [if not exists] 表名(

字段名字 数据类型 [列约束],

字段名字 数据类型 [列约束] ##最后一行不需要逗号

)[表选项];

创建一个名为“person”的表:

CREATE TABLE IF NOT EXISTS `person` (

   `id` INT UNSIGNED AUTO_INCREMENT,

   `name` VARCHAR (10) NOT NULL DEFAULT “Tom”,

   `age` int (3) NOT NULL,

   `birthday` DATE,

   PRIMARY KEY (`id`)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

约束(Constraints)

NOT NULL - 指示某列不能存储 NULL 值。eg:写在列中

UNIQUE - 保证某列的每行必须有唯一的值。eg:UNIQUE (列名)

PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。eg:RIMARY KEY (列名)

FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。eg:FOREIGN KEY (该表列名) REFERENCES 外表名(外表列名)

CHECK - 保证列中的值符合指定的条件。eg:CHECK(id > 0)

DEFAULT - 规定没有给列赋值时的默认值。eg:写在列中

AUTO_INCREMENT- 会在新记录插入表中时生成一个唯一的数字。eg:写在列中

Tip:

字符集: charset/character set 具体字符集; ##保证表中数据存储的字符集

校对集: collate 具体校对集; ## utf8mb4_general_ci

存储引擎: engine 具体的存储引擎(InnoDB和MyISAM)

列属性:NULL/NOT NULL, DEFAULT, PRIMARY KEY, UNIQUE KEY, AUTO_INCREMENT, COMMENT等

二、查询数据库中的所有表
##查询所有数据表

show tables;
在这里插入图片描述

##搜索带有关键词的数据表

show tables like ‘%关键词%’;

三、查看创建表时的语句
show create table 表名 \G

在这里插入图片描述

四、查看表结构
desc/describe/show columns from 表名;

在这里插入图片描述

五、修改数据表
数据表可修改的部分:表结构 和 字段

表结构

表名:

rename table 老表名 to 新表名;

在这里插入图片描述

表选项:字符集、校对集和存储引擎

alter table 表名 表选项 [=] 值;

表字段

新增字段:

alter table 表名 add [column] 字段名 数据类型 [列属性] [位置];
在这里插入图片描述

重命名字段

alter table 表名 change 旧字段 新字段名 数据类型 [属性] [位置]

在这里插入图片描述

删除字段:危险操作!!

alter table 表名 drop 字段名;

在这里插入图片描述

六、删除数据表:危险操作!!!
drop table [if exists] 表名1,表名2…; ##可
以一次性删除多张表
在这里插入图片描述

数据操作
新增数据
INSERT INTO 表名 VALUES (值列表)[,(值列表)]; ## 可以一次性插入多条记录

INSERT INTO 表名 (字段列表) VALUES (值列表)[,(值列表)];

在这里插入图片描述

查看数据
SELECT */字段列表 FROM 表名 [WHERE 条件];

在这里插入图片描述

更新数据
UPDATE 表名 SET 字段 = 值 [WHERE条件]; #建议都有where: 要不然是更新全部
在这里插入图片描述

删除数据
DELETE FROM 表名 [WHERE条件]; #建议都有where: 要不然是删除全部
在这里插入图片描述

清空表中所有数据

要删除表中的所有数据,可使用不带WHERE子句的DELETE语句。 但是对于具有几百万行的大表,DELETE语句很慢且效率不高。

要快速删除大表中的所有行,使用以下TRUNCATE TABLE语句:

TRUNCATE TABLE 表名;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐