MySQL学习笔记(1)---基本使用以及基本操作

MySQL学习笔记

安装及基本操作

安装:

  1. 登录:mysql -u root -p 会登录到root账户,输入密码即可
  2. 查看数据库:show databases;
  3. 选择连接其中一个数据库,语句格式为 use <数据库名>,这里可以不用加分号
  4. 使用命令 show tables;查看数据库中有哪些表(注意不要漏掉“;”)
  5. 使用命令 quit 或者 exit 退出 MySQL

创建数据库和新建表

  1. 新建数据库:create database 名字;,如:CREATE DATABASE mysql_shiyan;

  2. 显示数据库:show databases;

  3. 连接数据库:use 名字;,如:use mysql_shiyan;

  4. 当连接数据库以后,查看当前数据库的表:show tables;

  5. 新建数据表:
    格式为:

    我们尝试在 mysql_shiyan 中新建一张表 employee,包含姓名,ID 和电话信息,所以语句为:

  6. 查看表中内容:SELECT * FROM employee(表名);

  7. 删除数据库:DROP DATABASE mysql_shiyan(数据库名);

数据类型

在刚才新建表的过程中,我们提到了数据类型,MySQL 的数据类型和其他编程语言大同小异,下表是一些 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 长文本数据

整数除了 INT 外,还有 TINYINT、SMALLINT、MEDIUMINT、BIGINT。

CHAR 和 VARCHAR 的区别: CHAR 的长度是固定的,而 VARCHAR 的长度是可以变化的,比如,存储字符串 “abc”,对于 CHAR(10),表示存储的字符将占 10 个字节(包括 7 个空字符),而同样的 VARCHAR(12) 则只占用4个字节的长度,增加一个额外字节来存储字符串本身的长度,12 只是最大值,当你存储的字符小于 12 时,按实际长度存储。

ENUM和SET的区别: ENUM 类型的数据的值,必须是定义时枚举的值的其中之一,即单选,而 SET 类型的值则可以多选。

想要了解更多关于 MySQL 数据类型的信息,可以参考下面两篇博客。

插入数据

利用INSERT插入数据,用法:

我们尝试向 employee 中加入 Tom、Jack 和 Rose:

然后利用SELECT * FROM employee;来显示表中数据:

有的数据需要用单引号括起来,比如 Tom、Jack、Rose 的名字,这是由于它们的数据类型是 CHAR 型。此外 VARCHAR,TEXT,DATE,TIME,ENUM 等类型的数据也需要单引号修饰,而 INT,FLOAT,DOUBLE 等则不需要。

第一条语句比第二条语句多了一部分:(id,name,phone) 这个括号里列出的,是将要添加的数据 (01,'Tom',110110110) 其中每个值在表中对应的列。而第三条语句只添加了 (id,name) 两列的数据,所以在表中Rose的phone为NULL

SQL的约束

定义:约束是一种限制,它通过对表的行或列的数据做出限制

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

约束类型: 主键 默认值 唯一 外键 非空
关键字: PRIMARY KEY DEFAULT UNIQUE FOREIGN KEY NOT NULL

如先用如下语句创建数据库:

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

  2. 默认值约束 (DEFAULT) 规定,当有 DEFAULT 约束的列,插入数据为空时,将使用默认值。

    例如:

  3. 唯一约束 (UNIQUE) 比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。当 INSERT 语句新插入的数据和已有数据重复的时候,如果有 UNIQUE约束,则 INSERT 失败,比如:

  4. 外键 (FOREIGN KEY) 既能确保数据完整性,也能表现表之间的关系。

    一个表可以有多个外键,每个外键必须 REFERENCES (参考) 另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。

    在 INSERT 时,如果被外键约束的值没有在参考列中有对应,比如以下命令,参考列 (department 表的 dpt_name) 中没有dpt3,则INSERT 失败:

    可见之后将 dpt3 改为 dpt2(department 表中有 dpt2),则插入成功.

  5. 非空约束 (NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。

    在MySQL中违反非空约束,不会报错,只会有警告,比如以下语句:

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注