|
1. 数据库的常见操作:
//查看当前所有的数据库:
SHOW DATABASES;
//创建数据库:
CREATE DATABASE 数据库名;
//删除数据库:
DROP DATABASE 数据库名;
//选择数据库:
USE 数据库名;
2. 进入数据库后数据表的常见操作:
介绍表之前首先要了解表中常见的数据类型(创建表的时候会用到)。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
数值类型
MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。
| 类型 |
大小 |
范围(有符号) |
范围(无符号) |
用途 |
|---|
| TINYINT |
1 byte |
(-128,127) |
(0,255) |
小整数值 |
| SMALLINT |
2 bytes |
(-32 768,32 767) |
(0,65 535) |
大整数值 |
| MEDIUMINT |
3 bytes |
(-8 388 608,8 388 607) |
(0,16 777 215) |
大整数值 |
| INT或INTEGER |
4 bytes |
(-2 147 483 648,2 147 483 647) |
(0,4 294 967 295) |
大整数值 |
| BIGINT |
8 bytes |
(-9,223,372,036,854,775,808,9 223 372 036 854 775 807) |
(0,18 446 744 073 709 551 615) |
极大整数值 |
| FLOAT |
4 bytes |
(-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 bytes |
(-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的值 |
小数值 |
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。TIMESTAMP类型有专有的自动更新特性,将在后面描述。
| 类型 |
大小
( bytes) |
范围 |
格式 |
用途 |
|---|
| DATE |
3 |
1000-01-01/9999-12-31 |
YYYY-MM-DD |
日期值 |
| TIME |
3 |
'-838:59:59'/'838:59:59' |
HH:MM:SS |
时间值或持续时间 |
| YEAR |
1 |
1901/2155 |
YYYY |
年份值 |
| DATETIME |
8 |
1000-01-01 00:00:00/9999-12-31 23:59:59 |
YYYY-MM-DD HH:MM:SS |
混合日期和时间值 |
| TIMESTAMP |
4 |
1970-01-01 00:00:00/2038
结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07
|
YYYYMMDD HHMMSS |
混合日期和时间值,时间戳 |
字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。
| 类型 |
大小 |
用途 |
|---|
| CHAR |
0-255 bytes |
定长字符串 |
| VARCHAR |
0-65535 bytes |
变长字符串 |
| TINYBLOB |
0-255 bytes |
不超过 255 个字符的二进制字符串 |
| TINYTEXT |
0-255 bytes |
短文本字符串 |
| BLOB |
0-65 535 bytes |
二进制形式的长文本数据 |
| TEXT |
0-65 535 bytes |
长文本数据 |
| MEDIUMBLOB |
0-16 777 215 bytes |
二进制形式的中等长度文本数据 |
| MEDIUMTEXT |
0-16 777 215 bytes |
中等长度文本数据 |
| LONGBLOB |
0-4 294 967 295 bytes |
二进制形式的极大文本数据 |
| LONGTEXT |
0-4 294 967 295 bytes |
极大文本数据 |
总结起来,有几点:
- 经常变化的字段用 varchar
- 知道固定长度的用 char
- 尽量用 varchar
- 超过 255 字符的只能用 varchar 或者 text
- 能用 varchar 的地方不用 text
//查看当前库的所有表:
SHOW TABLES;
//查看其他库的所有表:
SHOW TABLES FROM 表名;
//创建数据表:
CREATE TABLE 表名(
column_name column_type,
column_name column_type
)
//例子
CREATE TABLE IF NOT EXISTS runoob_tbl(
runoob_id INT UNSIGNED AUTO_INCREMENT,
runoob_title VARCHAR(100) NOT NULL,
runoob_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY (runoob_id)
)ENGINE=InnoDB;
实例解析:
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎。
DEFAULT 指定默认值,只支持常量,不支持函数。
//删除数据表:
DROP TABLE 表名;
//重命名数据包:
RENAME TABLE 表名 TO 新表名;
//查看表结构:
DESC 表名;
|