MySQL的基本语句

来源:互联网 发布:php培训学校 编辑:程序博客网 时间:2024/05/25 05:35

转载来自:点击打开链接


1、显示所有数据库:showdatabases;

2、使用数据库:use 数据库名;

3、显示所有列表:show tables;

4、建表 create table 表名(列名 列类型, ……)

5、插入数据 insert into 表名 values(列值, ……)

6、删除表       droptable 表名;

7、查询 select * from 表名;


查询语句

  SQL> select * from user_xxx;——“*”表示查询全部列

  SQL> select name,email fromuser_xxx; ——查询指定列

条件查询:

查找id=1001且passwd=1234考生的名字

  select name,email fromuser 

where id = 1001 and password = ‘1234’;


8、desc


9、查询名字、月薪、年薪(月薪*12)


10、插入数据:如插入empno为1011,ename为liu,其他信息为null

insert into emp(empno,ename)values(1011,'liu');

11、null的使用注意:null与任何类型进行算术运算均为空值即(NULL):

selectename,salary,bonus,salary+ifnull(bonus,0) month_sal from emp;



IFNULL(a,b) :如果a为NULL,则用b替换a值。

如:查询ename,job,如果job为NULL,则显示‘no position’:


12、复制表:create table emp1 as select * from emp;


13、去重:distinct(注意必须跟着select后面)


14、条件查询:

(1)where:select ename,salary from emp where salary > 10000;


select ename,job from emp where job = 'analyst';


(2)between...and...

select ename,salary from emp where salarybetween 6000 and 10000;

相当于 select ename ,salary from emp where salary >= 6000 and salary <=10000;


(3) in(列表)

select ename,job from emp where jobin('analyst','manager');

相当于 select ename, job from emp where job = 'analyst' or job ='manager';


(4)模糊配对:like % (注意:‘_’表示一个字符)

(5)is null :判断null值的方法;is not null:判断不是null值的方法。

select ename,job from emp where job isnull;

(6) NOT

 not in():不在()范围之内;notbetween ... and ... :不在...和...的范围内。

15、排序:

(1)从小到大:order by 或者 order by ... asc(asc可省去)


(2)从大到小(倒序)排列:order by ... desc:

按部门排列,同一部门按薪水高至低排列:

16、返回当前时间的函数:now():YYYY-mm-DD HH-MM-SS 形式


返回当前时间: curtime() : HH-MM-SS形式


17、组函数:

(1)count()

emp中一共有多少条员工记录:

select count(*) from emp;

emp中job不是null的人数有多少:

select count(job) from emp;

(2)avg()

emp中员工的平均薪水:(注意:此处的avg(salary)只按有薪水的员工人数除)

select avg(salary) from emp;

(3)sum()

emp表中的员工的总薪水:

select sum(salary) from emp;

(4)max()、min()

计算员工的人数总和、薪水综合、平均薪水是多少:

select count(*) num,sum(salary)sum_sal,sum(salary)/count(*) avg_sal from emp;

组函数:count / avg / sum / max / min 如果函数中写列名,默认忽略空值

avg / sum 针对数字的操作 max / min 对所有数据类型都可以操作

18、分组查询:group by

按部门计算每个部门的最高和最低薪水分别是多少:

计算每个部门的薪水总和和平均薪水:


按职位分组,每个职位的最高、最低的薪水和人数:

注意:select后出现的列,凡是没有被组函数包围的列,必须出现在group by 短语中

19、having 子句

用于对分组后的数据进行过滤。

注意区别where是对表中数据的过滤;having是对分组得到的结果数据进一步过滤

平均薪水大于5000元的部门数据,没有部门的不算

20、子查询

谁的薪水比拉克丝高:

子查询出现在having短语中

哪个部门的人数比部门30的人数多:


21、ALL、ANY

查询谁的薪水比所有叫拉克丝的薪水都高:

select ename,salary from emp where salary> ALL(select salary from emp where ename = 'Laucs');

22.关联子查询

哪些员工的薪水比本部门的平均薪水低


23、Exists

exists 判断子查询有没有数据返回,有则返回true,没有则返回false

exists 不关心查询的结果,所以子查询中select后面写什么都可以

通常,我们写常量“1”

哪些人是其他人的经理


24、表间关联查询

内连接

join关键字用于连接两个表,语法如下:

表1 join 表2 on 条件

列出员工的姓名和所在部门的名字和城市


25、列出员工的姓名和他上司的姓名(自连接)

SQL>select t1.ename,t2.ename fromemp_xxx t1

join emp_xxx t2 on t1.mgr = t2.empno;

 


0 0
原创粉丝点击