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 -p
Enter 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 changed
mysql> 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改为28
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from meed;                         ##查看表
+----+-------+--------+------+
| id | name  | size   | age  |
+----+-------+--------+------+
|  1 | xuyan | 175.30 |   28 |
+----+-------+--------+------+
1 row in set (0.00 sec)




转载于:https://blog.51cto.com/13706064/2166596