一、MySQL数据库数据类型
<1> MySQL数据库中反对多种数据类型
- 数值型
- 字符型
- 日期型
<2> 罕用的数据类型
整型
- int:整型,存储整数
int(M): M示意预期值,与存储大小和数值的范畴无关
- id int 1
- id int(3) zerofill 001
- zerofill 零填充 会在左侧补0
- tinyint 1 -128~127
- smallint 2 32767/65535
- int 4 21亿
- bigint 8 兆
- mediumint 3 八百多万/一千六百多万
浮点型
float[(M,D)]: 浮点型,存储小数
- salary float(6,2): 示意最多6位,小数占2位,最大存储数值为:9999.99
- double: 浮点型,小数
字符型
- char(M): 固定长度的字符串类型 name char(5) '1 '
- varchar(M): 可变长度的字符串类型 (举荐) name varchar(5) '1'
- text: 大的字符串类型,4G字符串
- blob:字节类型
日期
- date: 日期类型,年月日 YYYY-MM-DD 日期格局
- time: 工夫类型,时分秒 HH:mm:ss 工夫格局
- year: 年份,年 YYYY格局的年份值
- timestamp: 年月日 时分秒,工夫戳 1970年1月1日0时0分0秒 - 2037年的某一个时刻 YYYYMMDDhhmmss
- datetime: 年月日 时分秒 YY-MM-DD hh:mm:ss
- 留神:抉择适合的数据类型,是数据库优化的一部分,short it better 准则
二、MySQL数据库中的数据的应用
如何操作:编程语言
<1> SQL概述
- 结构化查询语言,能够用于查问和批改关系数据库的语言
- SQL语言,是数据库的外围语言,被ISO驳回为数据库语言国际标准,简直所有的数据库都反对SQL
<2> 组成
数据定义语言(Data Definition Language, DDL): 用于治理和定义数据对象,包含数据库,数据表等
- create: 创立数据库和表
- drop: 删除表对象
- alter: 批改表构造
数据操作语言(Data Manipulation Language, DML): 用于操作数据库对象中所蕴含的数据
- insert: 增加数据
- delete: 删除数据
- update: 批改数据
数据查询语言(Data Query Language, DQL): 用于查询数据库对象中所蕴含的数据
- select: 查问数据
事务管制语言(Transaction Control Language, TCL): 包含提交事务、事务回滚
- commit: 提交事务
- rollback: 事务回滚
- savepoint: 事务节点
数据管制语言(Data Control Language, DCL): 用来治理数据库,包含管理权限以及数据更改
- grant: 受权
- revoke: 发出权限
1. 数据定义语言(DDL)
数据库的操作
<1> 创立数据库
语法格局: creat database [if not exists] 数据库名称 [character set [=] 编码名称]; // '[]'示意可有可无
- 例如:
- create database ruochen;
- create database if not exists ruochen; // 漠视谬误,显示正告
<2> 查看数据库
语法格局
- show databases; // 查看所有的数据库
- show create database 数据库名称; // 查看某一个曾经创立的数据库
- show warnings; // 查看正告
- create database db character set gbk; // 指定创立的数据库的字符集
<3> 批改数据库
语法格局: alter database [if not exists] 数据库名称 [character set 新的编码名称]
- 例如:
- alter database db character set = utf8;
<4> 删除数据库
语法格局:drop database 数据库名称;
- 例如:
- drop database ruochen; // 删除数据库
数据表的操作
<1> 创立数据表
- 应用一个数据库: use 数据库名称
- select database(); // 查看以后正在应用的数据库
创立数据表语法:
- create table 表名(
字段名 字段类型 束缚,
字段名 字段类型 束缚,
......
)例如:创立用户表
- ceeate table user(
uid int,
username varchar(32),
password varchar(32),
birthday date,
sex enum('男', '女'))
<2> 查问数据表
- show tables; // 显示以后数据库中所有的数据表
- show columns from 表名; // 查问某张表表构造
- desc 表名; // 查问某张表的表构造
<3> 批改数据表
批改表名
形式一: alter table 表名 rename [as|to] 新表名
- 例如:alter table user rename us;
形式二:rename table 旧表名 to 新表名 [,旧表名 to 新表名, ....];
- 例如:rename table user to us;
增加列
语法格局:
- alter table 表名 add [column] 列名 列定义 [first|after 列名];
例如:
- alter table user add sal double after password; // 在指定的列前面增加新的列
- alter table user add phone varcher(32); // 默认在列的最初增加新的列
- alter table user add hobby varchar(32) first; // 在列的最后面增加新的列
批改列定义
语法格局:
- alter table 表名 modify 列名 列定义 [first|after 列名];
例如:
- alter table user modify sex varchar(32) first;
批改列名
语法格局:
- alter table 表名 change 列的列名 新的列名 新的列定义 [first|after 列名];
例如:
- alter table user change hobby address varchar(20) after sal;
删除列
语法格局:
- alter table 表名 drop [column] 列名;
例如:
- alter table user drop phone;
<4> 删除数据表
语法格局:
- drop table 表名;
例如:
- drop table user;
2. 数据操作语言(DML)
<1> 插入操作
语法格局:
- insert [into] 表名 [(列名1,列名2,....)] values|value (数值1|表达式,数值2|表达式,....);
例如:
- insert into teacher (id, name) values ('1', 'xian zheng ta yi ge yi');
- insert into teacher value(2, '
- wangjianlin', 'xian zheng ta yi ge yi'); // 如果后面不指定字段,默认采纳所有字段,依照列的程序增加
<2> 删除操作
语法格局:
- delete from 表名 where 条件;
例如:
- delete from teacher where id=1; // 指定条件删除记录
- delete from teacher; // 不带条件删除,删除所有记录
裁减:truncate table 表名; // 清空表,会清空表中所有数据
- 例如
- truncate table teacher;
面试题:
delete删除与truncate 有什么区别?
删除形式
- delete:一条一条的删除,不清空 auto_increment 记录数
- truncate:间接将表中的数据进行清空, auto_increment 自增将被重置,从新开始
<3> 批改操作
语法格局:
- update 表名 set 列名1=数值,列名2=数值,.... where 条件;
例如:
- update teacher set name='xiaosan',note='ming nian zai zhao yi ge' where id=1; // 带条件批改,批改指定记录
- update teacher set name='xiaosi'; // 不带条件,批改表中所有数据