创建数据库

create database 数据库名称 default character set utf8 collate utf8_general_ci;

create database 数据库名称 default charset utf8 collate utf8_general_ci;

create database 数据库名称 default character set gbk collate gbk_chinese_ci;

 

创建表

create table 表(

  列名  类型  是否可以为空,

  列名  类型  是否可以为空,

)engine=InnoDB default charset=utf8

InnoDB 支持事务和原子操作

 

是否为空,null表示空

not  null  #不可为空

null  #可以为空

auto_increment #自增 后面需要加索引和数字  一般是主键索引 primary key

使用递增的时候 如果之前是1 2 3 你可以直接insert为7 之后递增的就是 8 9 10 如果删了8 9 10 后面递增的显示的就是11 12 13 truncate 这个表之后 递增从1开始重新计数

primary key  #主键  一张表只有一个主键

 default xx 默认值

删除表

drop table 表名  #直接删除表  包括表结构

delete from 表名 #清空表内容 可以配合where使用 清楚的auto_increment的字段记忆删除的内容

truncate table 表名 #清空表内容 清除的auto_increment的字段从1重新开始 速度相对delete快一些

create table userinfo(

nid int not null auto_increment primary key,

name varchar(10),

age int,

part_nid int

)engine=innodb default charset=utf8;

create table part(

nid int not null auto_increment primary key,

caption varchar(30)

)engine=innodb default charset=utf8;

insert into part(caption) values ("行政") ;

insert into part(caption) values ("人事") ;

insert into part(caption) values ("财务") ;

insert into part(caption) values ("综合服务") ;

 

添加外键

alter table userinfo add constraint 外键名称 foreign key userinfo(关联字段) references part(关联字段)

alter table userinfo add constraint fk_u_p foreign key userinfo(part_nid) references part(nid);

 

修改表

添加列:alter table 表名 add 列名 类型

删除列:alter table 表名 drop column 列名

修改列:alter table 表名 modify column 列名 类型  --修改类型

    alter tavle 表名 change 原列名 新列名 类型; --修改列名  类型

主键

添加主键:alter table 表名 add primary ker(列名);

删除主键:alter table 表名 drop primary key;

     alter table 表名 modify 列名 int,drop primary key;

外键

添加外键:alter table 从表 add constraint 外键名称 foreign key 从表(外键字段) 主表(主键字段)

删除外键:alter table 表名 drop foreign key 外键名称

 

默认值

修改默认值:alter table 表名称 alter i set dafault 1000;

删除默认值:alter table 表名称 alter i drop default; 

 

数值类型

数值

  bit 二进制         定义几位存储数据按照二进制

  tinyint     有符号-128^127  无符号0^255

  smallint

  int      无符号使用int unsigned

  bigint

  decimal    十进制小数 精确的一般薪水有这个类型

  float      

  double    

字符串

  char      定长 查找速度快 浪费空间 最大是255字符

  varchar      变长 查看速度相对慢 节省空间最大是255字符

  text      2**16

  mediumtext    2**24

  longtext     2**32

时间:

  DATE    YYYY-MM-DD

  TIME HH-MM-SS

  TEAR  YYYY

  DATETIME  YYYY-MM-DD HH-MM-SS

  TIMESTAMP  YYYYMMDD HHMMSS

枚举和set

  enum    枚举  在内存中创建了几个值 只能从枚举的数值中获取一个

  set     集合 可以将set中的字段进行组合获取

create table shirts(

name varchar(20),

size enum('x-small','small','medium','large','x-large')

);

insert into shirts (name,size) values ('dress','small'),('t-shirt','large');

 

create table myset(col set('a','b','c','d'))engine=innodb default charset=utf8 ;

insert into myset(col) values ('a,d'),('c,d,a');

 

 

create table tb1(

nid int not null default 2,

num int null

)engine=innodb default charset=utf8;

create table tb2(

nid int not null  auto_increment primary key ,

num int null

)engine=innodb default charset=utf8;

 

create table student(

name varchar(10) not null ,

num int not null,

age int not null default 19,

gender int not null,

primary key (name,num) 

)engine=innodb  default charset=utf8;

 

 

create table tb3(

num int not null auto_increment primary key,

name varchar(10) not null ,

age int not null default 19,

gender int not null

)engine=innodb  default charset=utf8;

 

 

f5  disn