首页 > 数据库技术 > 详细

mysql 表操作

时间:2018-05-08 15:49:24      阅读:146      评论:0      收藏:0      [点我收藏+]

一、表介绍

表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段

二 、创建表

1、基本语法

# 语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);
# 解释:
类型:使用限制字段必须以什么样的数据类型传值
约束条件:约束条件是在类型之外添加一种额外的限制
# 注意: 1. 在同一张表中,字段名是不能相同 2. 宽度和约束条件可选 3. 字段名和类型是必须的
4. 表中的最后一个字段不能加逗号 ’,‘

2、数据表操作

查看表之前先选择数据库
use db1;
查看当前库下所有的表
show tables;
单独查看一个表的信息
show create tables  t1;
查看表的结构
desc t1;
创建表
create table t1 (字段名 数据类型 [完整性约束条件]);
修改表名
alter table t1 rename t2;
删除表
drop table t1;

3、查看表结构

mysql> desc t2
  技术分享图片

三、数据类型

1、整形类型(一般常用  int  )

1、作用:id号,各种号码,年龄,等级
2、分类:
tinyint----tinyint[(m)] [unsigned] [zerofill]
有符号:-128 ~ 127
无符号:0 ~ 255
int--------int[(m)][unsigned][zerofill]
有符号:-2147483648 ~ 2147483647
无符号: 0 ~ 4294967295
bigint-----[(m)][unsigned][zerofill]
有符号:-9223372036854775808 ~ 9223372036854775807
无符号:0 ~ 18446744073709551615
3、测试:默认整型都是有符号的 create table t1(x tinyint); insert into t1 values(128),(-129); create table t2(x tinyint unsigned); insert into t2 values(-1),(256); create table t3(x int unsigned); #4294967295 insert into t3 values(4294967296); create table t4(x int(12) unsigned); insert into t4 values(4294967296123); 4强调:对于整型来说,数据类型后的宽度并不是存储限制,而是显示限制 所以在创建表示,如果字段采用的是整型类型,完全无需指定显示宽度, 默认的显示宽度,足够显示完整当初存放的数据 # 显示时,不够8位用0填充,如果超出8位则正常显示 create table t5(x int(8) unsigned zerofill); insert into t5 values(4294967296123); insert into t5 values(1);

 

2、浮点型(一般常用  float  )

作用:存储身高、体重、薪资
分类:
float (*****)
double (**)
decimal (**)

测试:
#相同点
#1、对于三者来说,都能存放30位小数,
#不同点:
1、精度的排序从低到高:float,double,decimal
2、float与double类型能存放的整数位比decimal更多


create table t9(x float(255,30));
create table t10(x double(255,30));
create table t11(x decimal(65,30));

insert into t9 values(1.111111111111111111111111111111);
insert into t10 values(1.111111111111111111111111111111);
insert into t11 values(1.111111111111111111111111111111);


mysql> select * from t9;
+----------------------------------+
| x                                |
+----------------------------------+
| 1.111111164093017600000000000000 |
+----------------------------------+
1 row in set (0.00 sec)

mysql> select * from t10;
+----------------------------------+
| x                                |
+----------------------------------+
| 1.111111111111111200000000000000 |
+----------------------------------+
1 row in set (0.00 sec)

mysql> select * from t11;
+----------------------------------+
| x                                |
+----------------------------------+
| 1.111111111111111111111111111111 |
+----------------------------------+
1 row in set (0.00 sec)

 

3、字符类型

1、作用:姓名,地址,描述类的信息

2、分类:
char 定长
varchar 变长

char
# 缺点:浪费空间
# 优点:存取速度都快

varchar
# 缺点:存取速度都慢
# 优点:节省空间

3、测试:字符的宽度限制单位是字符个数 create table t12(x char(4)); # 超出4个字符则报错,不够4个字符则用空格补全成4个字符 create table t13(y varchar(4));# 超出4个字符则报错,不够4个字符那么字符有几个就存几个 insert into t12 values(hello); insert into t13 values(hello); insert into t12 values(a); #‘a ‘ insert into t13 values(a); #‘a‘ set global sql_mode="strict_trans_tables,PAD_CHAR_TO_FULL_LENGTH"; select char_length(x) from t12; #4 select char_length(y) from t13; #1 # 注意: 针对char类型,mysql在存储时会将数据用空格补全存放到硬盘中 但会在读出结果时自动去掉末尾的空格,因为末尾的空格在以下场景中是无用 mysql> select * from t14 where name="lxx"; # name字段明确地等于一个值,该值后填充空格是没有用 mysql> select * from t14 where name like "lxx"; # name字段模糊匹配一个值,该值后填充空格是有用的

 

4、日期类型

 

1、作用:时间相关

2、分类:
date:1999-01-27
time: 11:11:11
datetime:1999-01-27 11:11:11
year:1999

3、测试
create table student(
    id int,
    name char(16),
    born_year year,
    birth date,
    class_time time,
    reg_time datetime
);

insert into student values(1,egon,2000,2000-01-27,08:30:00,2013-11-11 11:11:11);

 

5、枚举和集合类型

作用与分类:
枚举enum,多选一个
集合set,多选多


测试

create table teacher(
    id int,
    name char(16),
    sex enum(male,female,others),
    hobbies set(play,read,music,piao)
);

 

mysql 表操作

原文:https://www.cnblogs.com/fixdq/p/9008290.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!