1. 数据库基本命令:
SHOW DATABASES;.查看mysql服务器中所有数据库
CREATE DATABASE mydb1;创建数据库
drop database mydb1;删除mydb1库
drop database if exists mydb1;思考:当删除的库不存在时,如何避免错误产生
use mydb1;.进入某一数据库
SELECT DATABASE();查看已进入的库
Set names utf8;设置数据库编码方式
create database mydb1 charset utf8; 重新创建mydb1库,指定编码为utf8
create database if not exists mydb1 charset utf8;如果不存在则创建mydb1;
show create dabase mydb1;–查看建库时的语句
show create table table;–查看建表时的语句
扩展:
2. 建表:
users表:uid(用户id) nickname(用户昵称);
daka表:id(ID)、uid(用户id)、dakaAt(打卡时间);
CREATE TABLE users
(
uid
int(11) NOT NULL primary key AUTO_INCREMENT COMMENT ‘用户id’,
nickname
varchar(20) DEFAULT NULL COMMENT ‘用户昵称’);
CREATE TABLE daka
(
id
int(11) NOT NULL primary key AUTO_INCREMENT COMMENT ‘ID’,
uid
varchar(20) DEFAULT NULL COMMENT ‘用户id’,
dakaAt
datetime DEFAULT NULL COMMENT ‘打卡时间’);
3. 别名:
select sal+ifnull(bonus,0) as 总薪资,name from emp where sal+ifnull(bonus,0)>3500;//使用as可以为表头指定别名,as可以省略
4. 模糊查询:
包含"涛"字的员工,显示员工姓名:select * from emp where name like ‘%涛%’
以"刘"字开头的员工,显示员工姓名:select * from emp where name like ‘刘%’;
5. 分组查询:
34.对emp表按照部门进行分组,求每个部门的最高薪资(不包含奖金),显示部门名称和最高薪资
select dept ,max(sal) from emp group by job;
6. 排序查询:
ASC(默认)升序,即从低到高;DESC 降序,即从高到低。
对emp表中所有员工的薪资进行升序(从低到高)排序,显示员工姓名、薪资。
select name,sal from emp order by sal asc;
7. 分页查询:
select * from emp order by sal desc limit 0,3;–查询薪资最高前三名
8. 左外连接查询
:可以将左边表中的所有记录都查询出来,右边表只显示和左边相对应的数据,如果左边表中某些记录在右边没有对应的数据,可以显示为null。select * from emp left join dept on dept_id=dept.id;
9. 右外连接查询:
可以将右边表中的所有记录都查询出来,左边表只显示和右边相对应的数据,如果右边表中某些记录在左边没有对应的数据,可以显示为null。
select * from dept right join emp on dept_id=dept.id;