码迷,mamicode.com
首页 > 数据库 > 详细

MySQL常用语句:

时间:2017-09-18 15:07:49      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:style   分组   arc   reference   int   group   one   sql   修改   

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 fromwhere id=1 and name=yan;
 7 
 8 3.改:    
 9     updateset name = yan where id>1;
10 
11 4.查:
12     select nid,name,age as 别名 fromwhere id>1

 

3.条件查询:

1     select * fromwhere id>1 and name!=yan and age=21;
2     select * fromwhere id between 1 and 9;
3     select * fromwhere id in (1,2,3);
4     select * fromwhere id not in (1,2,3)
5     select * fromwhere id in (select nid from 表);

 

通配符查询:

1     select * fromwhere name like  yan% ;
2     select * fromwhere 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 * fromorder byasc;              - 根据 “列” 从小到大排列
2     select * fromorder bydesc;             - 根据 “列” 从大到小排列
3     select * fromorder by 列1 desc,列2 asc;    - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序

 

分组查询:

1     select num fromgroup by num;
2     select num fromgroup 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

 

MySQL常用语句:

标签:style   分组   arc   reference   int   group   one   sql   修改   

原文地址:http://www.cnblogs.com/yan1314/p/7542733.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!