三、MySQL数据库数据类型
MySQL数据库中支持多种数据类型:数值型、字符型、日期型 常用的数据类型: 1.整型 int:整形,存储整数 int(M):M表示预期值。与存储大小和数值的范围无关。 id int 10000 id int(3) zerofill 10000 zerofill 零填充 会在左侧补0 2.浮点型 float[(M,D)]:浮点型,存储小数 salary float(6,2):表示最多6位,小数占2位,最大存储数值为:9999.99 double:浮点型,小数 3.字符型 char(M):固定长度的字符串类型 name char(5) '1 ' varchar(M):可变长度的字符串类型(推荐) name varchar(5) '1' text:大的字符串类型,4G字符串 blob:字节类型 4.日期 date:日期类型,年月日 YYYY-MM-DD 日期格式 time:时间类型,时分秒 HH:mm:ss 时间格式 year:年份,年 YYYY格式的年份值 timestamp:年月日 时分秒 ,时间戳 2037年的某一个时刻 YYYYMMDDhhmmss datetime:年月日 时分秒 YY-MM-DD hh:mm:ss 5:整型 tinyint 1 -128~127 smallint 2 32767/65535 int 4 21亿 bigint 8 兆 mediumint 3 八百多万/一千六百多万 注意:选择合适的数据类型,是数据库优化的一部分。 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>创建数据库 语法格式: create database [if not exists] 数据库名称 [character set [=] 编码名称]; 例如: create database tlxy; create database if not exists tlxy;//忽视错误,显示警告 show warnings;//查看警告 create database db character set gbk;//指定创建的数据库的字符集<2>查询数据库 语法格式:show databases;//查看所有的数据库 show create database 数据库名称;//查询某一个已经创建的数据库<3>修改数据库 语法格式: alter database [if not exists] 数据库名称 [character set 新的编码名称] 例如: alter database db character set = utf8;<4>删除数据库 语法格式: drop database 数据库名称; 例如: drop database db;//删除数据库db
数据表的操作
<1>创建数据表 使用一个数据库:use 数据库名称; 查看当前正在使用的数据库:select database(); 创建数据表语法: create table 表名( 字段名 字段类型 约束, 字段名 字段类型 约束, ........ ); 例如: 创建用户表 create table user( uid int, username varchar(32), password varchar(32), birthday date, sex enum('男','女') ); <2>查询数据表 show tables;显示当前数据库中所有的数据表 show columns from 表名;//查询某张表表结构 desc 表名; //查询某张表表结构<3>修改数据表 3.1 修改表名 方式一:alter table 表名 rename [as|to] 新表名; 例如:alter table user rename us; 方式二:rename table 旧表名 to 新表名 [,旧表名 to 新表名,..........] 例如:rename table us to user; 3.2 添加列 语法格式: alter table 表名 add [column] 列名 列定义 [first|after 列名]; 例如: alter table user add sal double after password;//在指定的列后面添加新的列 alter table user add phone varchar(32); //默认在列的最后添加新的列 alter table user add hobby varchar(32) first;//在列的最前面添加新的列 3.3 修改列定义 语法格式: alter table 表名 modify 列名 列定义 [first|after 列名]; 例如: alter table user modify sex varchar(32) first; 3.4 修改列名 语法格式: alter table 表名 change 列的列名 新的列名 新的列定义 [first|after 列名]; 例如: alter table user change hobby address varchar(20) after sal; 3.5 删除列 语法格式: alter table 表名 drop [column] 列名; 例如: alter table user drop phone;<4>删除数据表 语法格式: drop table 表名; 例如: drop table user;
2.数据操作语言(DML):用于操作数据库对象中所包含的数据
基本查询数据的语句: select * from 表名;<1>插入操作 语法格式:insert [into] 表名 [(列名1,列名2,.....)] values|value (数值1|表达式,数值2|表达式,....); 例如: insert into teacher (id,note) values ('1','先挣它一个亿.'); 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 表名; ---------- 清空表,会清空表中所有的数据 面试题: 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';//不带条件 修改表中所有数据