SQL语句
创建表:
1 create table 表名( 2 列名 类型 是否可以为空, 3 列名 类型 是否可以为空 4 )ENGINE=InnoDB DEFAULT CHARSET=utf8;
1 create table school( 2 nid int not null primary key, 3 name varchar(20) 4 )engine=innodb default charset=utf8; 5 6 create table student( 7 nid int not null primary key, 8 name varchar(20), 9 age int, 10 school_id int not null, 11 constraint fk foreign key (school_id) references school(nid) 12 )engine=innodb default charset=utf8;
外键
修改表结构:
1 添加列:alter table 表名 add 列名 类型; 2 删除列:alter table 表名 drop column 列名; 3 4 修改列: 5 alter table 表名 modify column 列名 类型; 6 alter table 表名 change 原列名 新列名 类型; 7 8 添加主键:alter table 表名 add primary key(列名); 9 10 删除主键:alter table 表名 drop primary key; 11 12 添加外键:alter table 从表 add constraint 外键名称 foreign key 从表(外键字段) references 主表(主键字段); 13 删除外键:alter table 表名 drop foreign key 外键名称;
1 1.增: 2 insert into 表 (列名1,列名2...) values (值1,值2...),(值1,值2...); 3 insert into 表1 (列名1,列名2...) select 列名1,列名2,... from 表2; 4 5 2.删: 6 delete from 表 where id=1 and name=‘yan‘; 7 8 3.改: 9 update 表 set name = ‘yan‘ where id>1; 10 11 4.查: 12 select nid,name,age as 别名 from 表 where id>1;
3.条件查询:
1 select * from 表 where id>1 and name!=‘yan‘ and age=21; 2 select * from 表 where id between 1 and 9; 3 select * from 表 where id in (1,2,3); 4 select * from 表 where id not in (1,2,3) 5 select * from 表 where id in (select nid from 表);
通配符查询:
1 select * from 表 where name like ‘yan%‘ ; 2 select * from 表 where name like ‘yan_‘ ;
限制查询:
1 select * from 表 limit 5; - 前5行 2 select * from 表 limit 4,5; - 从第4行开始的5行 3 select * from 表 limit 5 offset 4 - 从第4行开始的5行
排序查询:
1 select * from 表 order by 列 asc; - 根据 “列” 从小到大排列 2 select * from 表 order by 列 desc; - 根据 “列” 从大到小排列 3 select * from 表 order by 列1 desc,列2 asc; - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序
分组查询:
1 select num from 表 group by num; 2 select num from 表 group by num having max(id)>10;
连表查询:
1 select A.num, A.name, B.name 2 from A 3 left join B 4 on A.nid = B.nid
时间: 2024-10-02 14:31:20