mysql学习笔记

数据库操作

cmd进入数据库:

mysql -u账号 -p密码 charset utf8

查询已存在的数据库和数据表:

show databases;
show tables;

进入数据库语句:

use 数据库名称;
select database();			// 查看进入的是哪个数据库

创建删除数据库:

create database if not exists 数据库名称 charset utf8;
drop database  if exists 数据库名称;

查看建库建表的语句:

show create database 数据库名称;
show create table 表名称;

创建表语句

create table 表名称(
	列名称		数据类型		primary key auto_increment,
	列名称		数据类型		not null default 默认值,
	列名称		数据类型		unique
	);				//字段约束的具体内容写在后面
	
	desc 表名;		//查看表结构

DML数据操作语言

插入(insert):

insert into 表名 (列名,列名,列名) values (数据值,数据值,数据值);
//如果不写列名则所有的数据值都要插入

修改(update):

update 表名 set 列名 = 数据值 where 条件;
//where 字句用于对数据进行筛选过滤,保留符合条件的记录,将不符合的条件剔除

删除(delete):

delete from 表名 where 条件;
//where 字句用于对数据进行筛选过滤,保留符合条件的记录,将不符合的条件剔除

DQL数据查询语句

select 列名 as 列别名,列名 as 列别名 
//如果查询中存在大量的重复记录,可以使用distinct剔除重复的记录
from 表名 as 表别名,表名 as 表别名 
where 条件 		//在分组之前的筛选
//ifnull(a,b):判断指定的列a是否包含Null值,如果有,用数值b代替
group by 列名
having 条件 		//在分组之后的筛选
order by 列名		//默认是升序asc,降序是desc
limit (页码-1), 每页显示的记录数

//以上是语句书写顺序,执行顺序有细微差别
//from -> where -> select ->...
//所以where 条件中不能使用列别名

例题:

  1. 查询emp表中总薪资(薪资+奖金)大于3500的所有员工,显示员工姓名、总薪资
select name as 姓名 , sal+ifnull(bonus,0) as 总薪资 from emp where sal+ifnull(bonus,0) >3500;
  1. 查询emp表中薪资在3000和4500之间的员工,显示员工姓名和薪资
select name, sal from emp where sal between 3000 and 4500;
//between...and...    在...和...之间
  1. 查询薪资不为1400、1600、1800的员工
select name, sal from emp where sal not in(1400,1600,1800);
//not in 用法
  1. 查询emp表中姓名中包含"涛"和以"刘"开头并且姓名为2个字的员工,分别显示员工姓名
select name from emp where name like '%涛%';
select name from emp where name like '刘_';
//%表示任意0个或者多个,下划线_表示任意一个
  1. 对emp表按照职位进行分组, 并统计每个职位的人数, 显示职位和对应人数
select job,count(*) from emp group by job;
//聚合函数:count()、max()、sum()、avg()统计分组之后数据
  1. 查询本月过生日的所有员工
select name,birthday from emp where month(curdate())=month(birthday);
//curdate()表示获取当前的日期年月日,curtime()表示获取当前时间时分秒,sysdata()=curdate()+curtime()
//-- month(curdate()) 获取当前月份   -- month(birthday) 获取员工出生的月份
  1. 查询emp表中的所有记录,分页显示:每页显示3条记录,返回第 2 页。
select * from emp limit 3, 3;
//第一个三表示第四条记录,按照每页三天记录就是第二页的第一条
  1. 列出薪资比’王海涛’薪资高的所有员工,显示姓名、薪资
select name,sal
	from emp
	where sal>( select sal from emp where name='王海涛' );
	//做查询时一步一步来,拆分再合并
  1. 明天补…
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值