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. python-selenium,关于页面滑动的操作

    //移动到元素element对象的“顶端”与当前窗口的“顶部”对齐 ((JavascriptExecutor) driver).executeScript("arguments[0].scr ...

  2. java使用wait(),notify(),notifyAll()实现等待/通知机制

    public class WaitNotify { static boolean flag=true; static Object lock=new Object(); static class Wa ...

  3. python简说(十六)第三方模块安装

    安装第三模块 1.pip install xxx pip问题 1.提示没有pip命令的, 把python的安装目录. 安装目录下面的scripts目录加入到环境变量里面 2.Unknown or un ...

  4. MS11-050安全漏洞

    IE浏览器渗透攻击--MS11050安全漏洞 实验前准备 1.两台虚拟机,其中一台为kali,一台为windows xp sp3(包含IE7). 2.设置虚拟机网络为NAT模式,保证两台虚拟机可以相互 ...

  5. JAVA中拆箱和装箱

    浅谈JAVA中拆箱与装箱 一.  什么是装箱?什么是拆箱? 在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行: Integer i = new Integer(10) ...

  6. 使用vim打造自己的python编辑器

    基础配置 vim的配置是在用户主目录下的 ~/.vimrc 文件中完成的,如果没有的话,需要自己新建一下: cd ~ touch .vimrc 首先做些简单的配置: set nocompatible ...

  7. How to install Maven on Windows

    To install Apache Maven on Windows, you just need to download the Maven’s zip file, and Unzip it to ...

  8. linux内核中的最简单的输入输出调度算法noop

    1. noop是什么? noop是一种输入输出调度算法 2. noop的别称 又称为电梯调度算法 3. noop原理是怎样的? 将输入输出请求放到一个FIFO队列中,然后按次序执行队列中的输入输出请求 ...

  9. 最大公约数gcd与最小公倍数lcm

    最大公约数:gcd 最大公倍数:lcm gcd和lcm的性质:(我觉得主要是第三点性质) 若gcd (

  10. P3311 [SDOI2014]数数

    思路 看到多个子串并且不能包含的情况,想到了AC自动机 但是题目多了一个不能大于给出的n的限制条件,联想数位dp的过程,设f[i][j][0/1]表示在第i位,AC自动机的第j个节点,数位有/无限制的 ...