MySQL操作语法整理

来源:互联网 发布:foursquare数据集下载 编辑:程序博客网 时间:2024/05/16 10:06

-------基础操作-------

增:

数据库   create database ***;  #MySQL5.0.2之后,等价于create schema ***;

表   create table ***;

字段   alter table *** add column *** type; #有没有column 都可以/ alter table *** add (*** type);

主键   alter table *** add primary key ***;

数据   insert into ***(字段1,字段2……) values(字段1的值,字段2的值);

 

删:

数据库   drop database ***;

表   drop table  ***;

表的数据非结构  truncate table ***;

字段   alter table *** drop column ***;

主键   alter table *** drop primary key ***;

数据   delete from *** where 字段1=***;

 

改:

表 alter table *** rename to ***;

字段名 alter table *** change columnname1  columnname2 varchar(50);

字段属性 alter table *** modify columnname char(20) not null;

数据 update *** set columnname1=*** where columnname2=***;

 

查:

数据

select * from *** ;

select * from *** where columnname= *** order by columnname2 desc;

 


-------实例练习-------

#显示数据库
show databases;

#创建数据库
create database db1;

#删除数据库
drop database db1;

#使用该数据库
use db1;

#显示数据库中的表
show tables;

#先判断表是否存在,存在先删除
drop table if exists student;

#创建表
create table student(
id int auto_increment primary key,
name varchar(50),
sex varchar(20),
date varchar(50),
content varchar(100)
)default charset=utf8;

#删除表
drop table student;

#查看表的结构
describe student;  

#插入数据
insert into student values(null,'aa','男','1988-10-2','......');
insert into student values(null,'bb','女','1889-03-6','......');
insert into student values(null,'cc','男','1889-08-8','......');
insert into student values(null,'dd','女','1889-12-8','......');
insert into student values(null,'ee','女','1889-09-6','......');
insert into student values(null,'ff','null','1889-09-6','......');

#查询表中的数据
select * from student;
select id,name from student;

#修改某一条数据
update student set sex='男' where id=4;

#删除数据
delete from student where id=5;

# and 且
select * from student where date>'1988-1-2' and date<'1988-12-1';

# or 或
select * from student where date<'1988-11-2' or date>'1988-12-1';
   
#between
select * from student where date between '1988-1-2' and '1988-12-1';

#in 查询制定集合内的数据
select * from student where id in (1,3,5);

#order by 排序, asc 升序  desc 降序
select * from student order by id asc;

#group by分组查询 
select max(id),name,sex from student group by sex;

select min(date) from student;

select avg(id) as '求平均' from student;

#count统计数量

select count(*) from student;   #统计全体数据总量

select count(sex) from student;   #统计表中性别总数  若有一条数据中sex为空的话,就不予以统计~

#sum、max、min、 avg基础运算

select sum(id) from student;

select max(id),name,sex from student group by sex;

select min(date) from student;

select avg(id) as '求平均' from student;

#查询第i条以后到第j条的数据(不包括第i条)
select * from student limit 2,5;  #显示3-5条数据

#查询不重复值

select distinct education from zhaopin;

#表连接,数据库中的表可通过相同的主键将彼此联系起来

select student.class,student.name,scholarship.amount

from student

inner join scholarship

on student.id_s=scholarship.id_s

order by student.class;   #通过id_s学号这个相同的主键,将学生信息与得奖学金的信息表连接在一起


join的语法关系如下:


(图片来源于网络)