前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql开发手册

Mysql开发手册

作者头像
Lemon黄
发布2020-02-17 14:56:41
1.6K0
发布2020-02-17 14:56:41
举报
文章被收录于专栏:Lemon黄

打开 MySQL 服务

代码语言:javascript
复制
$ sudo service mysql start

Linux 安装mysql

代码语言:javascript
复制
#安装mysql服务端,核心程序
$ sudo apt-get install mysql-server
# 安装mysql客户端
$ sudo apt-get install mysql-client
  • 命令验证是否安装并启动成功:
代码语言:javascript
复制
$ sudo netstat -tp | grep mysql
  • 如果需要修改配置文件
代码语言:javascript
复制
$ sudo vim /etc/mysql/my.cnf

打开mysql

代码语言:javascript
复制
# 启动mysql
$ sudo service mysql start
# 登录
$ mysql -uroot -pxxxx

查看数据库

代码语言:javascript
复制
> show databases;

连接数据库

代码语言:javascript
复制
> use 数据库名称;

查看表

代码语言:javascript
复制
> show tables;

退出

代码语言:javascript
复制
> quit;
# 或者
> exit;

创建数据库

代码语言:javascript
复制
> CREATE DATABASE mysql_shiyan

新建数据表

代码语言:javascript
复制
CREATE TABLE 表的名字
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度),
列名c 数据类型(数据长度)
);

MySQL 常用数据类型

数据类型

大小(字节)

用途

格式

INT

4

整数

FLOAT

4

单精度浮点数

DOUBLE

8

双精度浮点数

ENUM

--

单选,比如性别

ENUM('a','b','c')

SET

--

多选

SET('1','2','3')

DATE

3

日期

YYYY-MM-DD

TIME

3

时间点或持续时间

HH:MM:SS

YEAR

1

年份值

YYYY

CHAR

0~255

定长字符串

VARCHAR

0~255

变长字符串

TEXT

0~65535

长文本数据

插入数据

代码语言:javascript
复制
INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);

约束

约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。

在MySQL中,通常有这几种约束:

约束类型:

主键

默认值

唯一

外键

非空

关键字:

PRIMARY KEY

DEFAULT

UNIQUE

FOREIGN KEY

NOT NULL

  • 主键:主键 (PRIMARY KEY)是用于约束表中的一行,作为这一行的唯一标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要,主键不能有重复记录且不能为空。

还有一种特殊的主键——复合主键。主键不仅可以是表中的一列,也可以由表中的两列或多列来共同标识,比如:

  • 默认值:默认值约束 (DEFAULT) 规定,当有 DEFAULT 约束的列,插入数据为空时,将使用默认值。
  • 唯一:唯一约束 (UNIQUE) 比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。
  • 外键:外键 (FOREIGN KEY) 既能确保数据完整性,也能表现表之间的关系。 Inser
  • 非空:非空约束 (NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。

查询语句

  • 基本查询语句
代码语言:javascript
复制
SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;

内置函数

SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;

函数名:

COUNT

SUM

AVG

MAX

MIN

作用:

计数

求和

求平均值

最大值

最小值

删除数据库

代码语言:javascript
复制
DROP DATABASE 数据库名称

重命名表

重命名一张表的语句有多种形式,以下 3 种格式效果是一样的:

代码语言:javascript
复制
RENAME TABLE 原名 TO 新名字;

ALTER TABLE 原名 RENAME 新名;

ALTER TABLE 原名 RENAME TO 新名;

删除一张表

代码语言:javascript
复制
DROP TABLE 表名字

表增加列

在表中增加一列的语句格式为:

代码语言:javascript
复制
ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束;
或:
ALTER TABLE 表名字 ADD 列名字 数据类型 约束;

表删除列

代码语言:javascript
复制
ALTER TABLE 表名字 DROP COLUMN 列名字;
或:
ALTER TABLE 表名字 DROP 列名字;

重命名一列

这条语句其实不只可用于重命名一列,准确地说,它是对一个列做修改(CHANGE) :

代码语言:javascript
复制
ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;

注意:这条重命名语句后面的 “数据类型” 不能省略,否则重命名失败。

当原列名和新列名相同的时候,指定新的数据类型或约束,就可以用于修改数据类型或约束。需要注意的是,修改数据类型可能会导致数据丢失,所以要慎重使用。

改变数据类型

要修改一列的数据类型,除了使用刚才的 CHANGE 语句外,还可以用这样的 MODIFY 语句:

代码语言:javascript
复制
ALTER TABLE 表名字 MODIFY 列名字 新数据类型;

再次提醒,修改数据类型必须小心,因为这可能会导致数据丢失。在尝试修改数据类型之前,请慎重考虑。

修改表中某个值

大多数时候我们需要做修改的不会是整个数据库或整张表,而是表中的某一个或几个数据,这就需要我们用下面这条命令达到精确的修改:

代码语言:javascript
复制
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;

注意:一定要有 WHERE 条件,否则会出现你不想看到的后果

删除一行记录

删除表中的一行数据,也必须加上 WHERE 条件,否则整列的数据都会被删除。删除语句:

代码语言:javascript
复制
DELETE FROM 表名字 WHERE 条件;

索引

索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容。

当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进行对比,然后返回满足条件的记录。这样做会执行大量磁盘 I/O 操作,并花费大量数据库系统时间。

而如果在表中已建立索引,在索引中找到符合查询条件的索引值,通过索引值就可以快速找到表中的数据,可以大大加快查询速度。

对一张表中的某个列建立索引,有以下两种语句格式:

代码语言:javascript
复制
ALTER TABLE 表名字 ADD INDEX 索引名 (列名);

CREATE INDEX 索引名 ON 表名字 (列名);

视图

视图是从一个或多个表中导出来的表,是一种虚拟存在的表。它就像一个窗口,通过这个窗口可以看到系统专门提供的数据,这样,用户可以不用看到整个数据库中的数据,而只关心对自己有用的数据。

注意理解视图是虚拟的表:

  • 数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中;
  • 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据;
  • 视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变;
  • 在使用视图的时候,可以把它当作一张表。

创建视图的语句格式为:

代码语言:javascript
复制
CREATE VIEW 视图名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名字;

备份

数据库中的数据十分重要,出于安全性考虑,在数据库的使用中,应该注意使用备份功能。

备份与导出的区别:导出的文件只是保存数据库中的数据;而备份,则是把数据库的结构,包括数据、约束、索引、视图等全部另存为一个文件。

mysqldump 是 MySQL 用于备份数据库的实用程序。它主要产生一个 SQL 脚本文件,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。

使用 mysqldump 备份的语句:

代码语言:javascript
复制
mysqldump -u root 数据库名>备份文件名;   #备份整个数据库

mysqldump -u root 数据库名 表名字>备份文件名;  #备份整个表
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lemon黄 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 打开 MySQL 服务
  • Linux 安装mysql
  • 打开mysql
  • 查看数据库
  • 连接数据库
  • 查看表
  • 退出
  • 创建数据库
  • 新建数据表
  • MySQL 常用数据类型
  • 插入数据
  • 约束
  • 查询语句
  • 内置函数
  • 删除数据库
  • 重命名表
  • 删除一张表
  • 表增加列
  • 表删除列
  • 重命名一列
  • 改变数据类型
  • 修改表中某个值
  • 删除一行记录
  • 索引
  • 视图
  • 备份
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档