你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / 数据库开发
MySQL数据库的启动和登录等常规使用总结
 

一、整形

1、分类:tinyint smallint mediumint int bigint

(1)有符号:有正负数

(2)无符号:没有负数 类型后面使用unsigned 和zerofill修饰符

存储数据大小范围:

1个字节 2个字节 3个字节 4个字节 8个字节

8bit 16 24 32 64

11111111 2^16-1

无符号:范围运算公式 0到2^n-1

比如:

tinyint:0到255

bigint:0到2^64-1

有符号:范围运算公式-2^(n-1)到2^(n-1)-1

比如:

tinyint:-128到127

(3)显示宽度

类型后的小括号内的数字是显示宽度,不能限制插入数值的大小

比如:bigint(2) 2是显示宽度

(4)定义无符号整型:

unsigned:

mysql>create table t1(id bigint(2) unsigned);

zerofill:

mysql>create table t2( id1 int zerofill, id2 int(6) zerofill);

mysql>insert into t2 values(2,2);

mysql>select * from t2;

+------------+--------+

| id1 | id2 |

+------------+--------+

| 0000000002 | 000002 |

+------------+--------+

1 row in set (0.00 sec)

二、浮点型

1. 单精度:float(5.3) 5宽度(总共长度) 3精度(小数点后三位)

mysql>create table t3(id float(6,2));

2.双精度:double(5.3)

mysql>create table t4(id double(5,3));

3.定点型

定点数在Mysql内部以字符串形式存储,比浮点数更精确,适合用来表示货币等精度高的数据。

decimal(5,3)

4.位类型BIT(M)

M范围从1—64,如果不写默认为0

bit( ) 显示为二进制

mysql>create table t3(id bit(4)); 4bit 能存储的最大值是15

三、字符串类型

1.字符类型 char varchar

(1)char(10) 根据小括号中的10,占10个。

列的长度固定为创建表时的声明的长度:0~255

(2)varchar(10) 根据实际字符串长度占空间,最多10个

列中的值为可变长字符串,长度:0~65535

2.总结字符类型使用:

(1)经常变化的字段用varchar

(2)知道固定长度的用char

(3)尽量用varchar

(4)超过255字符的只能用varchar或者text

(5)能用varchar的地方不用text(text是i当varchar长度不够时再使用text)

3.枚举类型 enum (enumerate[nju:mret])

作用:在给的固定范围内多选一

mysql>create table t3(name enum('wing','tom'));

mysql>insert into t3 values('wing');

只能从给的wing和tom两个中2选1

4.集合类型 set

作用:在给的固定范围内可选多个

mysql>create table t3(name set('wing','tom','haha'));

mysql>insert into t3 set anme="wing,haha";

四、时间类型

时间和日期类型:year date time datetime timestamp(时间戳)

作用:用于存储用户的注册时间、文件的发布时间、文章的更新时间、员工的入职时间deng

(1)date

06/04

06-04

(2)year

00到69 为21世纪

70到99 为20世纪

(3)time

050510

(4)datetime 不给默认值为null

180509221810

(5)timestamp 默认把当前时间自动加上

180509221810

和datetime不同的是:当插入值为null时,显示值也会是当前的时间。

例题1:mysql>create table t(date timestamp);

mysql>insert into t values(null);

mysql>select * from t;

+---------------------+

| id |

+---------------------+

| 2013-12-18 00:08:41 |

+---------------------+

1 row in set (0.00 sec)

2. mysql>create table t6(d date,t time,dt datetime);

mysql>insert into t6 values(now(),nwo(),nwo()); -----引用now( )函数

mysql> select * from t6;

+------------+----------+---------------------+

| d | t | dt |

+------------+----------+---------------------+

| 2018-01-11 | 10:59:57 | 2018-01-11 10:59:57 |

+------------+----------+---------------------+

五、约束(修饰符)

1.当一个字段被设置不能为空(not null)但是又没有给它设置值的时候,系统会按照不同的类型给予默认值

(1)数值 0

(2)字符串 空

(3)枚举类型enum 第一个预定义值

(4)时间戳timestamp 当前时间

2.设置系统默认值default

mysql>alter table t2 modify id int not null default 8; 修改表t2的id字段的默认值为8

3.unique (key)唯一 (唯一性不能重复:如果id=1已经被设置则不能再设置为id=1)

mysql>alter table t2 modify id int unique;

4.auto_increment 自增 (额外的属性)

mysql>create table t2(id int unique auto_increment,name varchar(10));

删除时先modify修改属性再drop删除掉

5.primary key (key) 主键 ----->not null + unique(key) 类似身份证ID

每张表中只能有一个主键

主键不能为空,而且唯一

方法一:mysql>create table t4(hostname char(20) primary key,ip char(150));

方法二:mysql>create table t3(hostname char(20),ip char(150),primary key(hostname));

6.联合主键(把多列设置为一个主键)

(1)设置主键:mysql>create table t4(hostname char(10),ip char(150),primary key(hostname,ip));

(2)删除主键:mysql>alter table t3 drop primary key;

8.index(key) 把某一个字段(列)设置成index

索引 优化查询速度,便于查询

(1)创建索引的三种方法:

mysql> create table t4(hostname char(20) primary key,ip char(150),index (ip));

mysql> create table t3(hostname char(20) primary key,ip char(150),index dazhi(ip));

mysql> create index index_name on t3(ip);

语法:CREATE INDEX index_name ON table_name (column_list)

不设置index_name默认把该字段(列)的名字作为索引名

(2)删除索引

mysql>alter table t3 drop index index_name;

(3)查看索引

mysql> SHOW INDEX FROM table_name\G

· Key_name

索引的名称。

· Column_name

列名称。

9.查看key

查看:mysql>desc t2\G

PRI主键约束;

UNI唯一约束;

MUL非唯一的索引。

10.外键foreign key (key)

mysql> create table t1(id int,manager char(10) primary key) engine = innodb;

mysql> create table t2(id int,admin char(10),foreign key (admin) references t1 (manager)) engine = innodb ;

带关联删除的外键:on delete cascade

mysql> create table xingzheng(id int,admin char(10),foreign key (admin) references t4(manager) on delete cascade) engine = innodb;

  推荐精品文章

·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录
·2023年4月目录 
·2023年3月目录 
·2023年2月目录 
·2023年1月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089