MySQL数据库

MySQL 数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

数值类型

MySQL支持所有标准SQL数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。

作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型

大小 范围(有符号) 范围(无符号)

用途

TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值

MEDIUMINT

3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整数值

BIGINT

8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 字节 (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38)

单精度

浮点数值

DOUBLE 8 字节 (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

双精度

浮点数值

DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

 

 

创建数据库

我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:

CREATE DATABASE 数据库名;

以下命令简单的演示了创建数据库的过程,数据名为 mood:

root@localhost ~]# mysql -uroot -pabc123      ##登陆mysql> create database mood;                        ##创建Query OK, 1 row affected (0.00 sec)mysql> show databases;                                  ##验证+--------------------+| Database     |+--------------------+| information_schema|| mood       || mysql       || performance_schema|| sys        |+--------------------+5 rows in set (0.00 sec)

选择数据库

在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。

以下实例选取了数据库 mood:

[root@host]# mysql -u root -pEnter password:******mysql> use mood;Database changed

执行以上命令后,你就已经成功选择了 RUNOOB 数据库,在后续的操作中都会在 RUNOOB 数据库中执行。

注意:所有的数据库名,表名,表字段都是区分大小写的。所以你在使用SQL命令时需要输入正确的名称。

 

删除数据库

在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。

删除数据库mood:

drop database 
<数据库名>
;   ##格式mysql> drop database mood;         ##删除数据库Query OK, 0 rows affected (0.00 sec)mysql> show databases;                ##查看数据库+--------------------+| Database     |+--------------------+| information_schema|| mysql       || performance_schema|| sys        |+--------------------+4 rows in set (0.00 sec)

 

MySQL 数据表

创建MySQL数据表需要以下信息:

  • 表名

  • 表字段名

  • 定义每个表字段

语法

以下为创建MySQL数据表的SQL通用语法

CREATE TABLE table_name (column_name column_type);

在数据库mood中创建一个名为meed的表:

mysql> use mood;                                               ##进入数据库Database changedmysql> create table meed (id int not null primary key auto_increment,name char(100) not null,size decimal (10,2),age int(2));     ##创建表Query OK, 0 rows affected (0.01 sec)mysql> desc meed;                                             ##查看表结构+-------+---------------+------+-----+---------+----------------+| Field | Type          | Null | Key | Default | Extra          |+-------+---------------+------+-----+---------+----------------+| id    | int(11)       | NO   | PRI | NULL    | auto_increment || name  | char(10)      | NO   |     | NULL    |                || size  | decimal(10,2) | YES  |     | NULL    |                || age   | int(2)        | YES  |     | NULL    |                |+-------+---------------+------+-----+---------+----------------+4 rows in set (0.00 sec)

删除表meed:

mysql> drop table meed;            ##删除Query OK, 0 rows affected (0.01 sec)mysql> show tables;                   ##查看数据空中的表Empty set (0.00 sec)

MySQL 插入数据

MySQL 表中使用 INSERT INTO SQL语句来插入数据。

你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据。

语法

在meed表中插入数据:

mysql> insert into meed (name,size,age) values ('xuyan',175.3,27);     ##插入Query OK, 1 row affected (0.01 sec)mysql> select * from meed;                             ##查看表的数据+----+-------+--------+------+| id | name  | size   | age  |+----+-------+--------+------+|  1 | xuyan | 175.30 |   27 |+----+-------+--------+------+1 row in set (0.00 sec)

更新meed表中的age字段:

mysql> update meed set age=28 where id=1;             ##把27改为28Query OK, 1 row affected (0.01 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from meed;                         ##查看表+----+-------+--------+------+| id | name  | size   | age  |+----+-------+--------+------+|  1 | xuyan | 175.30 |   28 |+----+-------+--------+------+1 row in set (0.00 sec)