创建数据库:create database dbname;
删除数据库:drop database dbname;
创建表: 如createtable tablename(name varchar(10),hiredate date,sal decimal(10,2));
查看表中的数据: desc tablename;
删除表:drop table tablename;
2:更改表的结构:
(1) 更改表中的字段属性
alter table tablename modify ename varchar(20);
(2) 更改表中的字段名:
atler table tablename change ename ename2 varchar(30);
(注:change和modify都可以修改表的定义,但是change后面需要写两次列名,不方便,但change的优点是可以修改列名称)
(3) 增加表字段:
alter table tablename add column age int(3);
(注: add 增加的新字段默认加在表的最后位置,如需要确认它的位置,可以这么写, alter table tablename add column age int ( 3 ) after name; )
(4) 删除表字段:
alter table tablename drop column age;
(5) 移动字段名的顺序 如
alter table tablename modify age int(3)first;
3:DML
插入数据:insert into tablename(name,age)values(“小红”,18);
更新数据:update tablename set 字段名=‘’ where 。。
删除数据 delete from tablename where 字段名=‘’;
删除表中所有行 truncate tablename;
查询记录:
(1) 基本查询:select *from tablename;
(2) 查询不重复的记录:selectdistinct deptno from tablename;
(3) 条件查询:select *from tablename where 字段名=“”;
(4) 排序查询:如按薪水的高低排序select * from tablename order by salary(desc/asc);(注:这里括号内的(desc/asc)分别代表降序/升序,如果不写的话,默认是升序);如取薪水最高的前3位:select * from tablename order by salary limit 3;
如按照薪水排序后,取第二条记录开始的后三条:select *from tablename order by salarylimit 1,3;
4:表连接:从大类上面分,主要分为内连接和外连接
内连接:仅选出两个表中相互匹配的记录,外连接会选出其他不匹配的记录
外连接又分为左外连接和右外连接,左连接,包含所有的左边表中的记录和共同匹配的记录;
右连接,包含所有的右边表中的记录和共同匹配的记录。
如:select ename ,deptname from tablename1 left join tablenamed2 on tablename1.deptno=tablename2.deptno;
子查询:select * from tablename1 where depton in(select deptno from tablename2);
某些情况下,子查询可以转变成表连接,如上面的sql可以写成
select * from tablename1 ,tablename2 where tablename1.diptno=tablename2.deptno;
5:常见的命令顺序
select 字段名1,字段名2,聚合函数 from tablename
where contition
group by 字段名
having contition
oder by 字段名;
注:这里的聚合函数常见的有:记录数count(*);求和 sum(字段名);max(字段名);min(字段名)
contition:指的是条件;
group by:指的是排序;
having和where的区别在于:having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们先过滤记录,这样因为结果集减少,将对聚合的效率大大提高,最后再根据逻辑看看是否需要having进行过滤。