mysql

1、单表

create table userinfo(

  id int not null auto_increment primary key,

  name char(20),

  age int default 18,

  gender char(1)

)engine=innodb default charset=utf8;

1.列名

2.数据类型

3.是否可以为空

4.默认值

5.自增(一个表只能有一个自增序列)

6.主键

  约束:不能为空,不能重复

  索引:加速查找:

7.外键

  约束:只能是某个表中某列已经存在的数据

  constraint xxxxx foreign key (department_id) references deparment(id)

多表:

  一对多

    create table userinfo(

      id int not null auto_increment primary key,

      name char(20),

      age int default 18,

      gender char(1),

      department_id int,

      constraint xxxx foreign key (department_id) references deparment(id)

)engine=innodb default charset=utf8;

 

create talbe deparment(

  id nit not null auto_increment primary key,

  title char(32)

  )engine=innodb default charset=utf8;

 

  多对多:

  

create talbe boy(

  id nit not null auto_increment primary key,

  name char(32)

  )engine=innodb default charset=utf8;

create talbe girl(

  id nit not null auto_increment primary key,

  name char(32)

  )engine=innodb default charset=utf8;

create talbe b2g(

  id nit not null auto_increment primary key,

  bid int,

  gid int,

  constraint fk1 foreign key (bid) refereces boy(id),

  constraint fk1 foreign key (gid) refereces girl(id)

  )engine=innodb default charset=utf8;

应用场景,根据具体业务比较

--增加

  insert into class(caption) values('三年二班'),('三年三班'),('三年四班');

  insert into student(sname,gender,class_id) values('刘涛','男',1),('李飞','男',1);

  insert into class(caption) select tname from teacher;

--删除

  delete from 表名;   不能清除主键系列号不能归零

  truncate talbe 表名; 清空所有

  delete from deparment where id = 2;

  delete from deparment where id = 2 and title='xxx';

  delete from deparment where id = 2 or title = 'xxx';

  delete from deparment where id > 2;

  delete from deparment where id between 5 and 10;

--改

  update deparment set title='ddddd';

  update deparment set title='333333',id=9 where id = 2;

--查询

  delete from class where cid >2;

  select cid as c1,caption as xxx from class;

  select * from class where cid in (1,2);

  select * from class where cid in (select tid from teacher);

  --排序

    select * from score order by number asc;  从小到大

    select * from score order by number desc;  从大到小

  --限制

    select * from score order by number desc limit 2;

    select * from score order by number asc limit 2;

    select * from score;

    select * from score limit 5;     取前5个数据

    select * from score limit 0,10;  取前十个数据

    select * from score limit 10,10;  从第十个开始去十个数据

  --通配符

    select * from teacher where tname like "%瞎%"

    select * from teacher where tname like "瞎%"

    select * from teacher where tname like "%瞎"

    select * from teacher where tname like "%驴"

    select * from teacher where tname like "_驴";

 

posted @ 2017-07-10 18:31  Sober--Never  阅读(64)  评论(0)    收藏  举报