数据表SQL
数据表创建
语法:
create table 表名(列名 类型(长度),列名 类型(长度) ...) character set 编码集;
举例:
create table users(
id int,
name varchar(40),
password varchar(40),
birthday date
);
注:
如果不设置编码集,数据表将采用数据库默认字符集
所有数据类型中,除了char 、varchar 必须指定长度,其它类型默认长度
数据类型
1) 整数类型 tinyint (byte) smallint(short) int(int) bigint(long) float double
2) 字符串类型 varchar char 长度取值0-255 ---- String
varchar变长 ,长度会根据保存内容自动调整
char定长
注:varchar经常使用,char性能更好
3) 逻辑性 bit 一位 --- boolean *bit(8)表示8位 等于tinyint ,bit(32) 等于int
4) 日期型 date time datetime timestamp
date 只能保存日期
time 只能保存时间
datetime 日期和时间都有
timestamp 日期和时间都有,自动更新 ---- 操作数据表,timestamp字段自动更新当前时间
5) 大数据类型 text、blob
text 文本类型数据,主要存储字符文件 --- 文本文件
blob 二进制文件 ,存储任何类型文件(音乐、电影)
注:blob和text最大类型 longtext longblob 最大可以保存4GB文件
举例:
创建一个员工表employee (
id 整形
name 字符型
gender 字符型
birthday 日期型
entry_date 日期型
job 字符型
salary 小数型
resume 大文本型
);
create table employee (
id int,
name varchar(40),
gender varchar(10),
birthday date,
entry_date date,
job varchar(20),
salary double,
resume longtext
);
约束
单表约束:
主键约束(唯一标识一条记录)
唯一约束(该字段内容不允许重复)
非空约束(值不能为空)
主键约束----- primary key 不能为空、不能重复
注:主键数字类型,一般设置主键自动增长 mysql设置自动增长 auto_increment
唯一约束 ----- unique 一张表只有最重要那个字段才能作为主键
非空约束 ----- not null
举例:
create table employee (
id int primary key not null auto_increment ,
name varchar(40) unique not null,
gender varchar(10) not null,
birthday date not null,
entry_date date not null,
job varchar(20) not null,
salary double not null,
resume longtext not null
);
数据表查看
语法:desc 表名;
数据表修改
语法:
<1>向已有数据表添加一列 :alter table 表名 add 列名 类型(长度) 约束;
<2>改变已有数据表一列类型、长度: alter table 表名 modify 列名 类型(长度) 约束;
<3>改变已有数据表一列的名称 : alter table 表名 change 旧列名 新列名 类型(长度) 约束;
<4>删除已有一列 : alter table 表名 drop 列名;
<5>修改表名: rename table 旧表名 to 新表名;
<6>修改表的字符集:alter table student character set utf8;
练习 :
<1>在上面员工表的基本上增加一个image列 ----- alter table employee add image varchar(255);
<2>修改job列,使其长度为60 ------ alter table employee modify job varchar(60) not null;
<3>删除gender列。------ alter table employee drop gender;
<4>表名改为user。 ----- rename table employee to user;
<5>修改表的字符集为utf8 ---- alter table user character set utf8;
<6>列名name修改为username ---- alter table user change name username varchar(40) unique not null;
数据表删除
语法:
drop table 表名;
注:show tables; 查看当前数据 中所有表