mysql数据类型及常⽤命令⼀、数据类型
1、整型
数据类型存储空间说明取值范围
TINYINT1字节⾮常⼩的整数带符号值:-128~127
⽆符号值:0~255
SMALLINT2字节较⼩的整数带符号值:-32768~32767
⽆符号值:0~65535
MEDIUMNT3字节中等⼤⼩的整数带符号值:-8388608~8388607
⽆符号值:0~16777215
INT4字节标准整数带符号值:-2147483648~2147483647
⽆符号值:0~4294967295
BIGINT8字节⼤整数
2、浮点型
数据类型存储空间说明取值范围
FLOAT4字节但精度浮点数
DOUBLE8字节双精度浮点数
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、⽇期和时间型数据
类型存储空间说明最⼤长度
Date3字节YYYY-MM-DD格式表⽰1000-01-01~9999-12-31
TIME3字节hh:mm:ss格式表⽰时间值-838:59:59~838:59:59
DATETIME8字节YYYY-MM-DD  hh:mm:ss格式
TIMESTAMP4字节YYYYMMDDhhmmss格式表⽰时间戳
YEAR1字节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_db\employees.sql 例:mysql -uroot -proot employees <F:\employees_db\employees.sql ⽅法⼆:mysql -uroot -proot
use employees
source D:employees_db\employees.sql
(5)NOW(),CURRENT_TIMESTAMP(),SYSDATE()三个的差异,sysdate()取的是执⾏函数的时间,其它两个取的是执⾏sql时的时间decimal是整数数据类型
(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;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。