mysql表单结构类型int_MySQL的数据类型和表结构

MySQL的数据类型和表结构

DB,DataBase

-数据库:依照某种数据模型进行组织并存放到存储器的数据集合。

DNMS,DataBase Management System

-数据库管理系统:用来操纵和管理数据库的大型服务软件。

DBS,DataBase System

-数据库系统:即DB+DBMS,指带有数据库并整合了数据库管理软件的计算机系统。

Oracle(甲骨文):Oracle Database 、 MySQL

Microsoft(微软):SQL Server 、Access

IBM: DB2

Sybase: Sybase

MySQL主要特点:

-关系型数据库

-支持Linux/Unix、Windows等多种操作系统

-使用C和C++编写,可移植性强

-通过API支持Python/Java/Perl/PHP等语言

应用环境:

-LAMP平台,与Apache HTTP Server组合

-LNMP平台,与Nginx组合

关系型数据库服务软件(RDBMS):按照规定的结果存储数据,并且数据(values)之间可以做关联操作。

例:Oracle MySQL DB2 SQL Server

非关系型数据库软件(NOSQL):以键值对的形式,一一对应,数据(values)之间没有关联。

例:Redis mongdb

一、安装MySQL

yum -y install perl-Data-Dumper Perl-JSON perl-Time-HiRes #依赖包

tar -xf mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar

rpm -Uvh mysql-conmmunity-*.rpm #U升级安装,可替换冲突文文件。

二、启动服务

/usr/lib/systemd/system/mysqld.service

systemctl start mysql

systemctl enable mysql

三、登录

默认的数据库管理员账号root,允许从localhost访问。

首次登录密码在安装时随机生成,存储在错误日志文件里。

grep 'temporary password' /var/log/mysql.log

.....@localhost: matoa>AV

mysql -uroot -p"matoa>AV

mysql>

四、修改密码

0 or LOW 长度

1 or MEDIUM(默认) 长度,数字,小写/大写,和特殊字符

2 or STRONG 长度,数字,小写/大写和特殊字符,字典文件

通过客户端工具mysql连接本地服务器,使用alter user重设置口令。

mysql>set global validate_password_policy=0; #只验证密码长度

mysql>set global validate_password_length=6; #修改密码长度为6个字符,默认是8个字符。

mysql>alter user user() identified by "123456"; #修改登录密码

mysql>quit #退出

mysql -uroot -p123456 #使用新密码登录

要想实现永久生效需修改配置文件:

vim /etc/my.cnf

.....

validate_password_policy=0

validate_password_length=6

服务相关文件

/etc/my.cnf 配置文件

/var/lib/mysql 数据库目录

默认端口 3306

进程名 mysqld

传输协议 TCP

进程所有者 mysql

进程所属组 mysql

使用mysql命令:

mysql -h服务器ip -u用户名 -p密码 [数据库库名]

指令类型:

MySQL指令:环境切换,看状态,退出等控制

SQL指令:数据库定义/查询/操纵/授权语句

DDL 数据定义语言(create alter drop)

DML 数据操作语言(insert updata delect)

DCL 数据控制语言(grant revoke)

DTL 数据事物语言(commit rollback savepoint)

基本注意事项:

1.指令不区分大小写(密码、变量值除外)

2.每条SQL指令以";"结束或分隔。

3.c\可废弃当前编写错的指令。

命令:

show databases; 查看所有的库

use 库名; 进入到指定库

show tables; 列出当前库内的所有表

describe 表名; 查看表的字段结构

create datebases 库名; 创建指定库

select database(); 查看当前所在的库

drop databas 库名; 删除指定的库

create table 库名.表名( #创建指定的表

字段名1 字段类型(宽度) 约束条件;

字段名2 字段类型(宽度) 约束条件;

...........

);

例建表:

mysql>create table gamedb.stu(

mysql>name char(10),

mysql>age int

mysql>);

drop table 库名.表名; 删除指定库下的表

insert into 库名.表名 values(值列表); #插入表记录

例:

insert into gamedb.stu values("jim",21),("tom",29);

select * from 库名.表名; 查看表的所有记录

delete from 库名.表名; 删除表的所有记录

常见类型的信息

数值型:体重、身高、成绩、工资、价格等

字符型:姓名、工作单位、地址等

枚举型:兴趣爱好、性别等

日期时间型:出生日期、注册时间等

1.数值型

类型 大小 范围(有符号) 范围(无符号) 用途

TINYINT 1字节 -128~127 0~255 微小整数

SMALLINT 2字节 -32768~32767 0~65535 小整数

MEDUIMINT 3字节 -(2^23)~(2^23)-1 0~(2^24)-1 中整数

INT 4字节 -(2^31)~(2^31)-1 0~(2^32)-1 大整数

BIGINT 8字节 -(2^63)~(2^63)-1 0~(2^64)-1 极大整数

FLOAT 4字节 单精度浮点数

DOUBLE 8字节 双精度浮点数

DECIMAL 对DECIMAL(M,D),其中M为有效位数、D为小数位数,M应大于D,占用M+2字符

1.1整数型

使用UNSIGED修饰时,对应的字段只保存正数(无符号)。

数值不够指定宽度时,默认是在左边填空格补位。

宽度仅是显示宽度,存数据值的大小有类型决定。

使用关键字ZEROFILL时,填0代替空格补位。

数值超出范围时,报错。

1.2浮点型

定义格式:float(总宽度,小数位数)

当字段值与类型不匹配时,字段值作为0处理。

数值超出范围时,仅保存最大/最小值。

浮点型:根据存储数值的范围分为 单精度 双精度

单精度float(n,m)

双精度double(n,m)

n表示总位数

m表示小数位的位数

2.字符类型

2.1定长:char(字符数)

最大长度255字符。

不够指定字符数时默认在右边用空格补齐。

字符数超出时,无法写入数据。

2.2变长:varchar(字符数)

按数据实际大小分配存储空间。

字符数超出时,无法写入数据。

缺点:每次都要计算,消耗资源。

2.3大文本类型:text/blob

字符数大于655535存储时使用。

例:

mysql>create database ku;

mysql>create table ku.biao(

>name char(7) ,

>age tinyint(3) unsigend,

>high float(3,2)

>);

mysql>desc ku.biao;

Fied Type Null key Default Extra

字段名 字段类型 是否为空 索引类型 默认值 描述信息

3.日期时间类型

3.1日期时间,DATETIME

占用8个字节。

范围:1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999

例:2017-12-31 23:59:59

3.2日期时间,TIMESTAMP

占用4个字节。

范围:1970-01-01 00:00:00.000000 ~ 2038-01-19 03:14:07.999999

例:2017-12-31 23:59:59

3.3日期,DATE

占用4个字节。

范围:0001-01-01 ~ 9999-12-31

3.4年份,YEAR

占用1个字节。

范围:1901~2155

3.5时间,TIME

占用3个字节。

格式:HH:MM:SS

关于日期时间字段,当未给TIMESTAMP字段赋值时,自动以当前系统时间赋值,而DATETIME字段默认值为NULL。

YEAR年份的处理,默认用4位数字表示,当只用2位数字赋值时,01~69视为2000~2069,而70~99视为1970~1999。

例:

mysql>create table ku.biao2(

>name varchar(8),

>starty year,

>birthy date,

>abc time

>);

时间函数:

now() 获取调用此函数时的系统日期

sysdate() 执行时间动态获得系统时间

sleep(N) 休眠N秒

curdate() 获取当前的系统时间

curtime() 获取当前的系统时刻

month() 获取指定时间中的月份

date() 获取指定时间中的日期

time() 获取指定时间中的时刻

例:

mysql>select now();

mysql>select date(now());

mysql>select time(now());

4.枚举类型

4.1从给定值集合中选择单个值,ENUM。

格式:enum(值1,值2,值N)

4.2从给定值集合中选择一个或多个值,SET。

格式:set(值1,值2,值N)

例:

mysql>create table ku.biao3(

>name char(5),

>gen enum("boy","girl"),

>likes set("book","music","pingpang","sleep")

>);

约束条件

Null 允许为空,默认设置

NOT NULL 不允许为空

key 索引类型

Default 设置默认值,缺省为NULL

例:

mysql>create table ku.tbiao5(

>name varchar(4) not null,

>gen enum("boy","girl") default "boy",

>age int(3) not null default 22,

>);

mysql>desc ku.biao5;

修改表的字段

基本用法:

ALTER TABLE 表名 执行动作;

执行动作:

1.添加新字段

ADD 字段名 类型(宽度) 约束条件;

ADD 字段名 类型(宽度) 约束条件 FIRST; //添加字段到最前面

ADD 字段名 类型(宽度) 约束条件 AFTER 字段名2; //添加字段到字段2后面

2.修改字段类型

MODIFY 字段名 类型(宽度) 约束条件;

3.修改字段名

CHANGE 源字段名 新字段名 类型(宽度) 约束条件;

4.删除指定字段

DROP 字段名;

例:

mysql>alter table ku.biao5 add

>kuki varchar(5) not null ;

本文转自夜流璃雨 51CTO博客,原文链接:http://blog.51cto.com/13399294/2065672,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值