create database 库名 *创建数据库
create table 表名 *创建表
insert into 表名 *插入数据
drop database 库名 * 删除数据库;
desc 库名 * 查看表结构;
select * form 表名 *查看表的内容;
SHOW TABLES :*查看当前数据库中所有表名称
show databases: *查看所有数据库名
mysql 语法
select 列名 /要查询的列名表 /
from 表名 / 要查询的表名称/
where 条件 /* 行条件*/
group by 列名 /* 对结果分组*/
having condition /分组后的行条件/
order by 列名 asc(升序) /desc(j降序) /对结果排序/
分页查询
limit offset_ start, row_ count /结果限定分页/
如果给你了每页条数,和要查询的页数,如何计算分页查询的起始行数呢?
(当前页-1)每页记录数
第一页
每页10条
Limit(1-1) 10,10
第二页
每页10条
Limit (2-1)* 10, 10; .
第三页
每页10条
Limit (3-1)* 10,10; .
内连接:
inner join 表名 on 表名.列名
例如: SELECT * FROM emp e INNER JOIN dept d ON e.deptno=d.deptno;
外连接(左连接、右连接)
左连接是先查询出左表(即以左表为主),然后查询右表,右表中满足条件的显示出来,不满足条件的显示NULL。
左连接: 左边 为主表,右边为从表
left outer join … 列名 on…表名.列名
例如:SELECT * FROM emp e
LEFT OUTER JOIN dept d
ON e.deptno=d.deptno;
右连接
右连接就是先把右表中所有记录都查询出来,然后左表满足条件的显示,不满足显示NULL。
rigdit outer join 表名 on 表.列名;
例如:
select * from emp e
RIGDIT OUTER JOIN dept d
ON e.deptno=d.deptno;
连接查询心得:
连接不限与两张表,连接查询也可以是三张、四张,甚至N张表的连接查询。
left outer join … 列名 on…表名.列名
SELECT * FROM 左表名 LEFT OUTER(可省略) JOIN 右表名 ON 左表名.列名=右表明.列名;
SELECT * FROM emp e LEFT OUTER JOIN dept d ON e.deptno=d.deptno;
子查询
子查询就是嵌套查询,即SELECT中包含SELECT,也就是在select 中嵌套select ,如果一条语句中存在两个,或两个以上SELECT,那么就是子查询语句了。
例如:select * from emp where sal>(select sal from emp where ename=‘甘宁’);
交叉链接查询
交叉链接返回的结果是被链接的两个表中所有数据行的笛卡尔积,也就是返回第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数
交叉链接的语法格式如下:
select * from 表1 corss join 表2;
查询英文名字是不缺分大小写的
需要加 BINARY 来区别
例如:select from student where BINARY stuName like ‘A%’
也可以在建表的时候添加
例如
create table user(
id int,
username varchar(20) BINAEY
…
)