概述
操作表
数据类型
整数类型:
tinyInt:很小的整数,
smallint:小的整数,数据类型存储从-2的15次方到2的15次方之间的所有正负整数。每个smallint类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。
mediumint:中等大小的整数
int(integer):数据类型存储从-2的31次方到2的31次方之间的所有正负整数。每个int类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小 eg:id int(10) 设置变量id为整数数据类型,长度为10,
小数类型:
float(m,d):单精度浮点数,m表示数字长度,d表示小数位数,例如float(5,2)最大值999.99,float数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308。 每个float类型的数据占用8 个字节的存储空间
double(m,d):双精度浮点数
decimal(m,d):压缩严格的定点数
字符数据类型:
char(m):m为0~255之间的整数,长度不可变,保存数据长度不变的数值,比如身份证号(18位)、手机号(11位)、UUID(36位)、MD5(32位)
vaechar(m):m为0~65535之间的整数,长度可变,保存数据长度不一的数值,比如用户名、密码、地址,姓名;
日期类型:
year:YYYY 1901~2155 time:HH:MM:SS -838:59:59~838:59:59
date:YYYY-MM-DD 1000-01-01~9999-12-3
datetime:YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59 timestamp:YYYY-MM-DD HH:MM:SS 1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC
文本、二进制等类型:
text:允许长度0~65535字节,当我们需要存储非常大量的字符串时使用
bit:数据类型占用1 个字节的存储空间,其值为0 或1 。如果输入0 或1 以外的值,将被视为1。 BIT 类型不能定义为NULL 值(NULL 值是指空值或无意义的值)如:性别只有两种可能性,不是男就是女。这时就可以把性别这列的数据类型设为bit。凡是与之类似的情况都可以用bit数据类型
binary: 数据类型用于存储二进制数据。其定义形式为BINARY( n), n 表示数据的长度,取值为1 到8000 。在使用时必须指定BINARY 类型数据的大小,至少应为1 个字节。BINARY 类型数据占用n+4 个字节的存储空间。
创建表
语法:
CREATE TABLE table_name(
column_name data_type [default default_value] [column_constaint] [comment 'comment_content'],
……
[table_constaint]
)[engine=engine_type] [default charset=charset_type];
说明: table_name:表名; column_name:字段名,字段名一般由字母和下划线构成,多个单词时,单词与单词之间使用下划线间隔;同一个表中字段名不允许重复; data_type:字段类型; default default_value:设置默认值; column_constaint:设置字段级约束; comment ‘comment_content‘:设置注释; table_constaint:设置表级约束; engine:设置存储引擎 https://blog.csdn.net/gaohuanjie/article/details/50944782 charset:设置编码,一般为uft8;如:
create table student(
id char (15),
name varchar (24),
moblie char (11),
address varchar(120)
)
约束:
MySQL数据库通过约束(constraints)防止无效的数据进入到表中,以保护数据的实体完整性。 约束分为字段级别约束和表级别约束:
字段级约束:只为单个字段添加约束;
表级约束:为一个或多个字段添加约束
常见约束:
primary key:指定主键。该约束强制字段或字段组合必须具有唯一性且每个字段不能为空。可以为字段级别约束,也可以为表级别约束。
CREATE TABLE teacher(
id char(36) comment '主键’,
PRIMARY KEY(id)#表级约束
);
auto_incremenrt:设置表字段自增长,默认从1开始
CREATE TABLE teacher(
id int(11) PRIMARY KEY auto_increment comment '主键',
user_name varchar(12) comment '用户名',
password char(32) not null comment '密码'
);
not null 不允许为空
drop table student
create table student(
id char(15) not null,
user_name varchar(18),
password varchar(15)
)
insert into student (id,user_name,password) values('00000000001','admin','123456')
select * from student
insert into student (id,user_name,password) values('00000000002','admin','123456')
select * from student
以上代码若id对应为空,则插入语句就无法执行。
unique:指定字段的值(或字段组合的值)对于表中所有的行必须是唯一的。对于无非空约束的字段,唯一键约束允许输入空值,且包含空值的行可以有多个。可以为字段级别约束,也可以为表级别约束,表级约束时可以定义复合唯一键。
drop table student
create table student(
id char(15) not null,
user_name varchar(18) unique,
password varchar(15)
)
foreign key:指定一个字段或字段组合作为一个外键(即外来的主键或唯一键),该外键和另一个表的主键或唯一键(MySQL不支持,Oracle支持)建立起一个关系,只能定义为表级约束,
外键使用条件:1、两个表存储引擎必须是InnoDB,MyISAM暂时不支持外键;2、外键列必须建立索引,MySQL4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立;3、外键关系的两表的列的数据类型必须相似,必须是可相互转换类型的列,比如int和tinyint可以,int和char则不可以;
注意: 1、外键值必须匹配父表中存在的值;2、如果父表主键值或唯一键值是子表的外键值,则父表中的这条数据不能删除。
create table user_info(
id char(36) primary key,
user_name varchar(30) not null,
password varchar(30) not null
)
create table address(
id char(36) primary key,
user_info_id char(36),
real_name varchar(8) not null,
mobile char(11) not null,
address varchar(150) not null,
constraint address_user_info_id_fk foreign key(user_info_id) references user_info(id)
)
修改表
添加字段语法:
alter table table_name
add column_name data_type [default default_value] [column_constaint] [comment 'comment_content’] [after 字段名] ;
执行时要连着alter一起执行,不可单独执行add,否则出现错误。
[after 字段名]:表示添加到此字段后面。
alter table user_info
add sex tinyint(1) default 0 comment '性别0-男 1-女',
add birth date not null comment'出生日期'
alter table user_info
add mobile char(11) comment'手机号'after password
修改字段语法:
alter table table_name
modify column_name data_type [default default_value] ;
字段的修改包括修改数据类型(只有对应列为空指才可以修改)、大小和默认值(默认值的修改只会影响后来插入表的数据,对之前的数据不会产生影响); 不能修改字段约束、字段先后顺序和注释。eg:
alter table user_info
modify user_name vachar(50)unique comment'用户名',
modify password varchar(50)not null comment'密码'
删除表
删除字段语法:
alter table table_name
drop column_name
一次只能删除一个字段; 一个表至少要保留一个字段; 如果所删列是另一个表address的外键则该列在address表删除之前无法删除。
alter table user_info
drop birth
drop moblie
删除表语法:
drop table 表名
如果所删表table中某列是另一个表address的外键则该表在address表删除之前无法删除
drop table student
最后
以上就是单薄蜜粉为你收集整理的操作表的全部内容,希望文章能够帮你解决操作表所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复