1 MySQL日期和时间类型

创建一个包含DATE类型的表

mysql> create table test3(
-> star varchar(20) not null default '',
-> birth date
-> )engine myisam charset utf8;

向表中插入数据

mysql> insert into test3
-> values
-> ('张国荣','2010-10-10');
Query OK, 1 row affected (0.38 sec)

2010-10-10两边的单引号不要忘记。

date能存1000-01-01到9999-12-31

2 time类型

3 datetime类型

4 year类型只占1个字节,只能代表1901-2155年,若果范围出错,则为0000。

5 练习题

高端私密白领社交网站数据库

优化前

优化后

分析,这张表除了username/intro列之外,每一列都是定长的。我们不妨可以让所有列都定长,可以极大提高查询速度

username中把varchar改为char,虽然会造成存储空间上的浪费,但是提高了速度。但是把intro改为char(1500),就会造成空间的极大浪费。

空间和时间是一对矛盾,优化方法:时间换空间,空间换时间。

第一次优化后



又考虑到,当一个人注册后,个人简介不会频繁的改动,可以把intro单独拿出来成为一个表

在开发过程中,会员的信息优化往往是,把频繁用到的信息,优先考虑效率,存储到一张表中。不常用的信息和比较占据空间的信息,优先考虑空间占用。存储到辅表。

第二次优化



上次登录时间使用datetime类型,不容易计算,考虑使用时间戳

建表语句

mysql> create table member(
-> id int unsigned auto_increment primary key,
-> username char(20) not null default '',
-> gender char(1) not null default '',
-> weight tinyint unsigned not null default 0,
-> birth date,
-> salary decimal(8,2) not null default 0.00,
-> lastlogin int unsigned not null default 0
-> )engine myisam charset utf8;
Query OK, 0 rows affected, 1 warning (0.67 sec)

6 一张表创建完毕后,有了N列,之后还有可能增加或删除或修改列。

添加无完整约束条件的字段

创建一个表

mysql> create table m1(
-> id int
-> )engine myisam charset utf8;

添加字段

mysql> alter table m1 add name varchar(30);

在表的指定列之后添加一个字段

mysql> alter table m1 add location varchar(30) after id;

在表的第一列添加一个字段

mysql> alter table m1 add managerid int(10) first;

删除字段

mysql> alter table m1 drop location;

修改字段的排列位置

mysql> alter table m1 modify name varchar(5);

修改后

注意 modify不能改列名,修改列类型用change

修改字段名

mysql> alter table m1 change location loc varchar(5);

7 课后问题:如果列类型改变,导致数据存不下怎么办?

比如int改为smallint列,如果不匹配,数据会丢失,或者在mysql的strict_mode下无法修改。

MySQL学习(四)的更多相关文章

  1. MySql学习(四) —— 函数、视图

    注:该MySql系列博客仅为个人学习笔记. 本篇博客主要涉及MySql 函数(数学函数.字符串函数.日期时间函数.流程控制函数等),视图. 一.函数 1. 数学函数 对于数学函数,若发生错误,所有数学 ...

  2. MySQL 学习四 SQL优化

    MySQL逻辑架构: 第一层:客户端层,连接处理,授权认证,安全等功能.   第二层:核心层,查询解析,分析,优化,缓存,内置函数(时间,数学,加密),存储过程,触发器,视图   第三层:存储引擎.负 ...

  3. MySQL学习(四)——外键

    1.比方现在有两张表“分类表”和“商品表”,为了表明商品属于哪个分类,通常我们将在商品表上添加一列,用于存放分类cid的信息,此列称为:外键. 此时分类表category称为主表,cid称为主键:商品 ...

  4. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

  5. 我的MYSQL学习心得(十四) 备份和恢复

    我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) ...

  6. 我的MYSQL学习心得(四)

    原文:我的MYSQL学习心得(四) 我的MYSQL学习心得(四) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(五) 我的MYSQL ...

  7. MySql学习笔记四

    MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...

  8. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  9. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

随机推荐

  1. Prometheus监控学习笔记之初识PromQL

    0x00 概述 Prometheus 提供了一种功能表达式语言 PromQL,允许用户实时选择和汇聚时间序列数据.表达式的结果可以在浏览器中显示为图形,也可以显示为表格数据,或者由外部系统通过 HTT ...

  2. MySQL半同步安装以及参数

    MySQL半同步安装以及参数 基于MySQL5.5 官档地址: Semisynchronous Replication Administrative Interface https://dev.mys ...

  3. eclipse maven jar工程导出项目依赖的jar包

    今天遇到个事,给业务开发/测试搞个了转换工具,是使用swing写的,依赖了很多的三方包,为了方便打算以bat方式提供,但是要导出依赖的三方jar,网上搜了下,如下(已测试): 一.导出到默认目录 ta ...

  4. Spring Boot 项目初始化

    Spring Boot 项目创建 File->New->New Project->Spring Initializr 勾选 Web Spring Boot 版本选择稳定版,本文选择 ...

  5. Python 模块的加载顺序

    基本概念 module 模块, 一个 py 文件或以其他文件形式存在的可被导入的就是一个模块 package 包,包含有 init 文件的文件夹 relative path 相对路径,相对于某个目录的 ...

  6. ssm项目部署到服务器过程

    ssm项目部署到服务器过程 特别篇 由于准备春招,所以希望各位看客方便的话,能去github上面帮我Star一下项目 https://github.com/Draymonders/Campus-Sho ...

  7. UI、JS框架----Bootstrap、Metro

    Bootstrap Datagrid EasyUI Metro bootstrap Datepicker Editable for Bootstrap:bootstrap-editable.js X- ...

  8. python反爬虫解决方法——模拟浏览器上网

    之前第一次练习爬虫的时候看网上的代码有些会设置headers,然后后面的东西我又看不懂,今天终于知道了原来这东西是用来模拟浏览器上网用的,因为有些网站会设置反爬虫机制,所以如果要获取内容的话,需要使用 ...

  9. 51nod 1215 数组的宽度(单调栈)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1215 题意: 思路: 计算出以第i个数为最大值的区间范围,l_max[i ...

  10. WinForm 中 comboBox控件数据绑定

    一.IList 现在我们直接创建一个List集合,然后绑定 IList<string> list = new List<string>(); list.Add("11 ...