MySQL---数据类型和表的基本操作
2017-07-01 10:12
387 查看
数据类型
整型
TINYINT 1个字节SMALLINT 2个字节
MEDIUMINT 3个字节
INT 4个字节
BIGINT 8个字节
可以用UNSIGNED表示无符号整形
浮点型
FLOAT[(M,D)] M总共位数,D小数位数,精度时小数点后7位DOUBLE[(M,D)] M总共位数,D小数位数
类型 | 大小 | 范围(有符号) | 范围(无符号)UNSIGNED | 用途 |
---|---|---|---|---|
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(M,D) | 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) | 单精度 浮点数值 M表示总位数,D表示小数位数 |
DOUBLE(M,D) | 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) | 双精度 浮点数值 M表示总位数,D表示小数位数 |
DECIMAL | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
日期
类型 | 大小(字节) | 范围 | 格式 | 用途 |
---|---|---|---|---|
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 ~ 2037 年某时 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
字符型
CHAR(M) : M个字节(0~255)定长VARCHAR(M) : 变长(0~65535)
TINYTEXT : 1个字节(0~255)
TEXT : 2个字节
MEDIUMTEXT : 3个字节
LONGTEXT : 4个字节
ENUM(‘value1’,’value2’) : 枚举值(最多65535个)
SET(‘value1’,’value2’) : 集合,最多64个成员
创建表
USE 使用/打开数据库SELECT DATABASE() 显示当前打开的数据库
*CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
…
)*
mysql> CREATE TABLE tb1( -> username VARCHAR(20), -> age TINYINT UNSIGNED, -> salary FLOAT(8,2) UNSIGNED -> );
查看表
SHOW TABLES [FROM db_name] [LIKE ‘pattern’ | WHERE expr]可以查看其他数据库的表,当前数据库不会改变
查看表结构
SHOW COLUMNS FROM tbl_nameDESCRIBE
插入记录
INSERT [INTO] tbl_name [(col_name,…)]VALUES(val,…)如果省略col_name则必须插入所有字段
mysql> INSERT INTO tb1 VALUES('TOM',20,5000.00); Query OK, 1 row affected (0.34 sec)
mysql> INSERT tb1 (username,age) VALUES('jhon',25); Query OK, 1 row affected (0.09 sec)
查询
SELECT expr,… FROM tbl_namemysql> SELECT * FROM tb1; +----------+------+---------+ | username | age | salary | +----------+------+---------+ | TOM | 20 | 5000.00 | | jhon | 25 | NULL | +----------+------+---------+ 2 rows in set (0.00 sec)
约束
AUTO_INCREMENT 自增[PRIMARY] KEY 主键 自动禁止为null
UNIQUE KEY 唯一性,可以存空值
DEFAULT 默认值
NULL/NOT NULL 是否允许空值
自动增加
AUTO_INCREMENT 起始值为1递增量为1 ,该字段必须是主键可以自己指定自增主键的值,如果不指定,则在最大的序号上自增
mysql> CREATE TABLE tb2( -> id INT(5) PRIMARY KEY AUTO_INCREMENT, -> username VARCHAR(20) -> ); Query OK, 0 rows affected (0.37 sec)
UNIQUE KEY
唯一性约束:mysql> CREATE TABLE tb3( -> id INT(5) KEY AUTO_INCREMENT, -> username VARCHAR(20) UNIQUE KEY , -> age INT(5) -> ); mysql> SHOW COLUMNS FROM tb3; +----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+----------------+ | id | int(5) | NO | PRI | NULL | auto_increment | | username | varchar(20) | YES | UNI | NULL | | | age | int(5) | YES | | NULL | | +----------+-------------+------+-----+---------+----------------+
DEFAULT 默认
mysql> CREATE TABLE tb4( -> id INT(5) PRIMARY KEY AUTO_INCREMENT, -> username VARCHAR(20) UNIQUE KEY, -> sex ENUM('MEN','WOMEN','NONE') DEFAULT 'MEN' -> ); Query OK, 0 rows affected (0.26 sec) mysql> DESCRIBE tb4; +----------+----------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------------+------+-----+---------+----------------+ | id | int(5) | NO | PRI | NULL | auto_increment | | username | varchar(20) | YES | UNI | NULL | | | sex | enum('MEN','WOMEN','NONE') | YES | | MEN | | +----------+----------------------------+------+-----+---------+----------------+ mysql> INSERT INTO tb4 (username) VALUES('TOM'); Query OK, 1 row affected (0.07 sec) mysql> select * from tb4; +----+----------+------+ | id | username | sex | +----+----------+------+ | 1 | TOM | MEN | +----+----------+------+
相关文章推荐
- MySQL day1---初涉MySQL 基本操作 数据类型 约束
- mysql 基本操作 数据类型、常用函数、存储引擎特点 (第二章)
- MySql入门之一:DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
- 基于Linux的MySQL操作实例(软件安装,mysql基本操作,mysql数据类型,建表、插入数据操作)
- MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
- (1) Mysql ---- ABC 数据库基本操作、数据类型和运算符、函数 《MYSQL 5.5从零开始学》笔记
- MySQL 基础之了解基本操作和基本数据类型
- Oracle学习笔记1-用户操作及基本数据类型
- 黑马程序员:操作基本数据类型的流对象DataStream
- Mysql/SQLServer数据类型与java基本数据类型的对应
- MySql的基本数据类型(来自网络)
- MySQL基本数据类型与Java基本数据类型
- Mysql/SQLServer数据类型与java基本数据类型的对应
- SQL 对DateTime (时间和日期)数据类型的基本操作
- Part02_MySQL对数据的基本操作
- java基本数据类型及其所对应对象的自动装箱,new,valueof操作研究
- 用于操作基本数据类型的流对象
- Java中的移位操作以及基本数据类型转换成字节数组【收集】
- 第2章_基本数据类型和基本操作_编程练习Exercise2.11通过控制台进行大小写的切换
- 第2章_基本数据类型和基本操作_编程练习Exercise2.7通过创建窗口进行大小写的切换