本节将介绍 MySQL 新建数据库,新建表,插入数据以及基本数据类型的相关知识。本节实验将创建一个名为 mysql_shiyan 的数据库,其中有两张表 employee和 department

1. 准备

再安装并配置好MySQL的Linux系统上,先用以下两条命令打开 MySQL 服务并使用 root 登录:

  1. # 打开 MySQL 服务
  2. sudo service mysql start
  3.  
  4. #使用 root 用户登录,密码为空
  5. mysql -u root

如果你理解了上述代码的含义, -u 和 root 之间可以不要空格

后续的实验都在 MySQL 的控制台输入命令进行操作。

2. 新建数据库

首先,我们创建一个数据库,给它一个名字,比如 mysql_shiyan,以后的几次实验也是对 mysql_shiyan 这个数据库进行操作。 语句格式为 CREATE DATABASE <数据库名字>;,(注意不要漏掉分号 ;),前面的 CREATE DATABASE 也可以使用小写,具体命令为:

  1. CREATE DATABASE mysql_shiyan;

创建成功后输入命令 show databases; (注意不要漏掉;)检查一下:

在大多数系统中,SQL 语句都是不区分大小写的,因此以下语句都是合法的:

  1. CREATE DATABASE name1;
  2. create database name2;
  3. CREATE database name3;
  4. create DAtabaSE name4;

但是出于严谨,而且便于区分保留字(保留字(reserved word):指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。)和变量名,我们把保留字大写,把变量和数据小写。

3. 连接数据库

接下来的操作,就在刚才创建的 mysql_shiyan 中进行,由于一个系统中可能会有多个数据库,要确定当前是对哪一个数据库操作,使用语句 use <数据库名字>

  1. use mysql_shiyan;

输入命令 show tables; 可以查看当前数据库里有几张表,现在mysql_shiyan 里还是空的:

数据表

数据表(table)简称表,它是数据库最重要的组成部分之一。数据库只是一个框架,表才是实质内容。

而一个数据库中一般会有多张表,这些各自独立的表通过建立关系被联接起来,才成为可以交叉查阅、一目了然的数据库。如下便是一张表:

ID name phone
01 Tom 110110110
02 Jack 119119119
03 Rose 114114114

4 新建数据表

在数据库中新建一张表的语句格式为:

  1. CREATE TABLE 表的名字
  2. (
  3. 列名a 数据类型(数据长度),
  4. 列名b 数据类型(数据长度),
  5. 列名c 数据类型(数据长度)
  6. );

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

  1. CREATE TABLE employee (id int(10),name char(20),phone int(12));

然后再创建一张表 department,包含名称和电话信息,想让命令看起来更整洁,你可以这样输入命令:

这时候再 show tables; 一下,可以看到刚才添加的两张表:

数据类型

在刚才新建表的过程中,我们提到了数据类型,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 数据类型的信息,可以参考下面两篇博客。

5. 插入数据

刚才我们新建了两张表,使用语句 SELECT * FROM employee; 查看表中的内容,可以看到 employee 表中现在还是空的:

    刚才使用的SELECT语句将在下一节实验中详细介绍

我们通过 INSERT 语句向表中插入数据,语句格式为:

  1. INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);

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

  1. INSERT INTO employee(id,name,phone) VALUES(01,'Tom',110110110);
  2.  
  3. INSERT INTO employee VALUES(02,'Jack',119119119);
  4.  
  5. INSERT INTO employee(id,name) VALUES(03,'Rose');

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

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

现在我们再次使用语句 SELECT * FROM employee; 查看 employee 表,可见 Tom 和 Jack 的相关数据已经保存在其中了:

6. 总结

经过本次实验,我们已经有了一个名为 mysql_shiyan的数据库,其中有两张表,我们已经向其中插入了一些数据。务必完整地操作一遍,以熟练SQL语句的使用。下一节我们将进入 SQL 约束的学习。

参考链接: 实验楼——MySQL基础教程

MySQL基础教程——创建数据库并插入数据的更多相关文章

  1. MySQL命令:创建数据库、插入数据

    简介: 学习mysql环境为ubantu,下面记录一些基本的创建数据库和插入数据的口令 打开MySQL 服务并使用 root 登录: --打开 MySQL 服务 sudo service mysql ...

  2. (大数据工程师学习路径)第四步 SQL基础课程----创建数据库并插入数据

    一.练习内容 1.新建数据库 首先,我们创建一个数据库,给它一个名字,比如“mysql_shiyan”,以后的几次实验也是对mysql_shiyan这个数据库进行操作. 语句格式为“CREATE DA ...

  3. MySQL创建数据库并插入数据

    启动MySql 启动服务:sudo service mysql start 登陆:mysql -u root 新建数据库 CREATE DATABASE <数据库名>; 在大多数SQL系统 ...

  4. 使用SQLiteHelper创建数据库并插入数据

    参考<疯狂android讲义>8.4节P424 1.获取SQLiteDatabase实例有2种方法,一是直接new SQLiteDatabase(),另一种使用SQLiteHelper.一 ...

  5. 使用SQLiteHelper创建数据库并插入数据 分类: H1_ANDROID 2013-11-05 22:44 1398人阅读 评论(0) 收藏

    参考<疯狂android讲义>8.4节P424 1.获取SQLiteDatabase实例有2种方法,一是直接new SQLiteDatabase(),另一种使用SQLiteHelper.一 ...

  6. linq,创建数据库,插入数据,newDB.CreateDatabase();newDB.tb2.InsertOnSubmit(stu); newDB.SubmitChanges();

    using System.Data.Linq;using System.Data.Linq.Mapping; namespace ConsoleApplication1388{ class Progr ...

  7. MYSQL通过循环向数据库中插入数据

    BEGINdeclare i int default 305;declare a char(255);REPEATset a=concat("测试机构00",cast(i as c ...

  8. mysql数据库中插入数据INSERT INTO SET的优势

    往mysql数据库中插入数据.以前常用 INSERT INTO 表名 (列名1,列名2…) VALUES(列值1,列值2); 如果在PHP程序中,就会写成如下示例(往商品库里增加商品) $sql = ...

  9. MySQL基础教程——mysql脚本编写

    SQL,结构化查询语言,既是对数据库进行操作的语言,也是数据库脚本文件的扩展名. 要求:新建一个名为 library 的数据库,包含 book.reader 两张表,根据自己的理解安排表的内容并插入数 ...

随机推荐

  1. Java socket异常

    Java socket异常 分类: Java 2013-07-15 22:38 981人阅读 评论(0) 收藏 举报 目录(?)[+] 使用Java socket编写程序时,通常会遇到几种种异常:Bi ...

  2. 黑科技抢先尝(续2) - Windows terminal中Powershell Tab的极简美化指南

    目录 安装python 安装git 安装powerline字体 主题定制 安装oh-my-posh 查看策略组的执行权限 使用choco 安装终端模拟器 - ConEmu 优化 PowerShell ...

  3. IT兄弟连 JavaWeb教程 过滤器与监听器经典面试题

    1.谈谈你对Servlet过滤器的理解 过滤器是Servlet2.3规范中定义的一种小型的.可插入的Web组件.用来拦截Servlet容器的请求和响应过程,以便查看.提取客户端和服务器之间正在交换的数 ...

  4. MyBaties源码解析

    觉得查看源代码确实是一个学习的一种方法 因为很多时候别人把最核心的代码给我们都封装好了 我们直接可以来拿使用 很多时候自己也会问 为什么通过这个方法就可以得到我觉得就是一颗好奇心吧 我算了算 就这三个 ...

  5. java基础第五篇封装与面向对象

    a.方法: public static void main(String[] args) { } 一般定义标准: 形参:一般把 不确定的量或者变化的量定义在形参位置//圆的的半径,长方形的长和宽,传递 ...

  6. shell常用正则表达式

    转载自: http://www.cnblogs.com/linhaifeng/p/6596660.html 和 http://www.blogjava.net/jasmine214--love/arc ...

  7. 黑马学习MyBatis 用MyBatis对表进行条件查询 模糊查询 动态sql

    package cn.itcast.domain; /* CREATE TABLE `message` ( `id` int(11) NOT NULL, `command` varchar(16) D ...

  8. redis最佳实践

    总结: String类型的value(string/list/set/hash)使用StringRedisTemplate 其他类型的value(string/list/set/hash/object ...

  9. 熔断 降级(polly)

    熔断 降级(polly) https://www.cnblogs.com/szlblog/p/9300845.html1.熔断降级的概念: 熔断:我这里有一根长度一米的钢铁,钢铁的熔点1000度(假设 ...

  10. Nginx托管.Net Core应用程序

    Nginx托管.Net Core应用程序 一.安装.Net Core 参考官方文档:https://www.microsoft.com/net/core#linuxcentos 1.添加dotnet产 ...