我是靠谱客的博主 单薄蜜粉,最近开发中收集的这篇文章主要介绍操作表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

操作表 

 数据类型

整数类型:

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

 

 

最后

以上就是单薄蜜粉为你收集整理的操作表的全部内容,希望文章能够帮你解决操作表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(102)

评论列表共有 0 条评论

立即
投稿
返回
顶部