mysql 数据类型 及 常用命令

一、数据类型

1、整型

数据类型 存储空间 说明 取值范围
TINYINT 1字节 非常小的整数 带符号值:-128~127
无符号值:0~255
SMALLINT 2字节 较小的整数 带符号值:-32768~32767
无符号值:0~65535
MEDIUMNT 3字节 中等大小的整数 带符号值:-8388608~8388607
无符号值:0~16777215
INT 4字节 标准整数 带符号值:-2147483648~2147483647
无符号值:0~4294967295
BIGINT 8字节 大整数  

2、浮点型

数据类型 存储空间 说明 取值范围
FLOAT 4字节 但精度浮点数  
DOUBLE 8字节 双精度浮点数  
DECIMAL(M,D) 自定义 以字符串形式表示  

3、字符串类型

类型 存储空间 说明 最大长度
Char[(M)] M字节 定长字符串 M字节
Varchar[(M)] L+1字节 可变长字符串 M字节
tinyblog,tingtext L+1字节 非常小的blob和文本串 2^8字符
blog,text L+2字节 小BLOB和文本串 2^16-1字节
mediumblob,mediumtext L+3字节 中等的BLOB和文本串 2^24字节
longblob,longtext L+4字节 大BLOB和文本串 2^32-1字节
enum('value','value') 1或2字节 枚举:可赋予某个枚举成员 65535个成员
set('value', 'value') 1,2,3,4或8字节 集合:可赋予多个集合成员 64个成员

4、日期和时间型数据
类型 存储空间 说明 最大长度
Date 3字节 YYYY-MM-DD格式表示 1000-01-01~9999-12-31
TIME 3字节 hh:mm:ss格式表示时间值 -838:59:59~838:59:59
DATETIME 8字节 YYYY-MM-DD  hh:mm:ss格式  
TIMESTAMP 4字节 YYYYMMDDhhmmss格式表示时间戳  
YEAR 1字节 YYYY格式的年份值 1901~2155

二、MySQL数据库的操作

1、登录数据库

mysql 参数

-D,--database=name 打开指定数据库

--delimiter=name 指定分隔符

-E,--vertical 垂直显示结果

-h,--host=name 服务器名称

-H,--html 提供HTML输出

-X,--xml 提供XML输出

-p,--password[=name]密码

-P,--port=# 端口号

--prompt=name 设置提示符

-u,--user=name 用户名

-V,--version 输出版本信息并退出

mysql -h 服务器主机地址 -u 用户名 -p 用户密码

2、退出登录

exit

quit

q

3、修改密码

4、创建选择及查看数据库

创建数据库

(1)更改mysql默认密码:可以先运行mysqladmin,然后进入mysql
使用一下语句:
use mysql;
update user set password=PASSWORD('1334') where user='root';
flush privileges;
(2)ifnull(字段,0)处理空值 sql server中是isnull(字段,0)
(3)mysql -uroot -proot  基本操作
 show databases;
 use  test;
 show tables from test;
 desc test;

(4)导入employees数据库
方法一
cmd
mysql -uroot -proot employees <路径+employees_dbemployees.sql
例:mysql -uroot -proot employees <F:employees_dbemployees.sql

方法二:mysql -uroot -proot
use employees
source D:employees_dbemployees.sql

(5)NOW(),CURRENT_TIMESTAMP(),SYSDATE()三个的差异,sysdate()取的是执行函数的时间,其它两个取的是执行sql时的时间

(6)生日问题:最近的生日(过去的不算)
select name,birthday,if(cur>today,cur,next) as birth_day
from (
select name,birthday,today,
    date_add(cur,interval IF( day(birthday)=29 && day(cur)=28,1,0) day) as cur,
  date_add(next,interval IF( day(birthday)=29 && day(next)=28,1,0) day) as next
from (
  select name,birthday,today,
    date_add(birthday,interval diff year) as cur,
    date_add(birthday,interval diff+1 year) as next
  from (
     select concat(last_name,' ',first_name) as name,
    birth_date as birthday,
    (year(now())-year(birth_date)) as diff,
    now() as today
  from employees) as a
 ) as b
) as c;

原文地址:https://www.cnblogs.com/M-D-Luffy/p/3681967.html