MySQL操作(1)创建数据库并插入数据
简介数据库和SQL数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它的产生距今已有六十多年。随着信息技术和市场的发展,数据库变得无处不在:它在电子商务、银行系统等众多领域都被广泛使用,且成为其系统的重要组成部分。数据库用于记录数据,使用数据库记录数据可以表现出各种数据间的联系,也可以很方便地对所记录的数据进行增、删、改、查等操作。结构化查询语言(Structured Quer
简介
数据库和SQL
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它的产生距今已有六十多年。随着信息技术和市场的发展,数据库变得无处不在:它在电子商务、银行系统等众多领域都被广泛使用,且成为其系统的重要组成部分。
数据库用于记录数据,使用数据库记录数据可以表现出各种数据间的联系,也可以很方便地对所记录的数据进行增、删、改、查等操作。
结构化查询语言(Structured Query Language)简称SQL,是上世纪70年代由IBM公司开发,用于对数据库进行操作的语言。更详细地说,SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。
MySQL 介绍
MySQL是一个DBMS(数据库管理系统),由瑞典MySQLAB公司开发,目前属于Oracle公司,MySQL是最流行的关系型数据库管理系统(关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发者都选择MySQL作为网站数据库。MySQL使用SQL语言进行操作。
数据库使用
准备
用以下两条命令打开 MySQL 服务并使用 root 登录:
# 打开 MySQL 服务
sudo service mysql start
#使用 root 用户登录,密码为空
mysql -u root
新建数据库
首先,我们创建一个数据库,给它一个名字,比如 mysql_shiyan,以后的几次实验也是对 mysql_shiyan 这个数据库进行操作。
语句格式为 CREATE DATABASE <数据库名字>;
,注意不要漏掉分号;
,下面的 CREATE DATABASE
也可以使用小写,具体命令为:
CREATE DATABASE mysql_shiyan;
创建成功后输入命令 show databases;
(注意不要漏掉;
)检查一下:
在大多数系统中,SQL 语句都是不区分大小写的,因此以下语句都是合法的:
CREATE DATABASE name1;
create database name2;
CREATE database name3;
create DAtabaSE name4;
但是出于严谨,而且便于区分保留字和变量名,我们把保留字大写,把变量和数据小写。
保留字(reserved word):指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。
连接数据库
接下来的操作,就在刚才创建的 mysql_shiyan 中进行,由于一个系统中可能会有多个数据库,要确定当前是对哪一个数据库操作,使用语句 use :
use mysql_shiyan;
如图显示,则连接成功:
输入命令 show tables;
可以查看当前数据库里有几张表,现在 mysql_shiyan 里还是空的:
新建数据表
数据表(table)简称表,它是数据库最重要的组成部分之一。数据库只是一个框架,表才是实质内容。
而一个数据库中一般会有多张表,这些各自独立的表通过建立关系被联接起来,才成为可以交叉查阅、一目了然的数据库。如下便是一张表:
ID | name | phone |
---|---|---|
01 | Tom | 110110110 |
02 | Jack | 119119119 |
03 | Rose | 114114114 |
在数据库中新建一张表的语句格式为:
CREATE TABLE 表的名字
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度),
列名c 数据类型(数据长度)
);
我们尝试在 mysql_shiyan 中新建一张表 employee,包含姓名,ID 和电话信息,所以语句为:
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 数据类型的信息,可以参考下面两篇博客。
插入数据
刚才我们新建了两张表,使用语句 SELECT * FROM employee;
查看表中的内容,可以看到 employee 表中现在还是空的:
我们通过 INSERT
语句向表中插入数据,语句格式为:
INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);
我们尝试向 employee 中加入 Tom、Jack 和 Rose:
INSERT INTO employee(id,name,phone) VALUES(01,'Tom',110110110);
INSERT INTO employee VALUES(02,'Jack',119119119);
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 的相关数据已经保存在其中了:
更多内容尽在微信公众号「卡卡成长汇聚」
更多推荐
所有评论(0)