MySQL单表查询的基本操作

mysql用来保存数据,并提供对数据进行增删改查的操作。


数据库的特点
1.实现数据共享
2.减少数据的冗余度
3.数据实现集中控制
4.数据一致性,完整性和可维护性,以确保数据的安全性和可靠性
5.故障恢复.


常见数据库
1.mysql是最受欢迎的开源sql数据库管理系统,它由MYSQL AB开发、发布和支持。
2.sql server 是由微软开发的数据库管理系统,它只能在windows上运行。
3.oracle 是由甲骨文公司研发,使世界上使用最广泛的关系数据系统之一。
4.sybase(隐退)是由sybase公司开发,并推出了power designer 数据库设计软件。
5.db2 是由IBM开发的,也是收费数据库。


sql语句分类
DDL  数据库定义语言,影响数据结构,增删改查库或表
DCL  数据库控制语言,操作数据,对表中数据的增删改查
DML  数据库操纵语言,创建用户,管理用户权限,事务控制
 

SQL中的注释
单行 --
多行 /**/


DDL操作
创建一个数据库
create database 数据库名;
显示mysql中有哪些数据库
show databases;
删除数据库
drop database 数据库名;
当前要使用的库
use 数据库名;
查看当前选择的数据库
select database();

创建表
create table t_user(
  id int primary key auto_increament,
  userName varchar(10)  not null,
  userPassword varchar(20)  not null,
  userAge int(3) default 18,
  birthday datetime
);

增加表列
alter table t_user add sex  enum('男',‘女’,‘保密’);
修改userPassword列使其长度为25
alter table t_user modify userPassword varchar(25);
删除列
alter table t_user drop birthday;
将t_user表更名为t_student
rename table t_user to t_student;


DML操作
添加数据
insert into 表名[(列名1,列名2...)] values (值1,值2...);
不指定具体的字段名
insert into t_user values (null,'zhangsan','zhangsan2016',22,'1995-11-10');
指定具体的字段名
insert into t_user(userName,userPassword) values('lisi','lisi2016');
同时插入多条记录
insert into t_user values(null,'zhangsan','zhangsan2016',22,'1995-11-10'),
                         (null,'lisi','lisi2016',23,'1994-11-10'),
                         (null,'wangwu','wuwang2016',22,'1995-11-10'),
                         (null,'章子怡','章子怡2016',32,'1985-11-10');


更新数据
update 表名 set 字段名称1=值1,字段名称2=值2,...[where条件][order by 字段名称][limit限制];
将id为4的数据记录的userName改为zhangziyi
update t_user set userName='zhangziyi' where id=4;

删除数据
delete from 表名 [where条件][order by 字段名称][limit限制];
将id为4的数据删除
delete from t_user where id=4;
彻底清空数据表
truncate [table] 表名;

查询数据
查询所有记录
select * from 表名;
查询所有行指定列
select 列名 from 表名;
select 字段名1,字段名2,...from 表名 [where条件][order by 字段名称][limit限制];
查询userName和userAge并分别起别名为姓名和年龄
select userName as 姓名,userAge as 年龄 from t_user;

where条件
比较 =、<、<=、〉、〉=、!=、<=>等
指定范围  between and 、not between and
指定集合  in、not in
匹配字符  like、not like
是否为空值 is null、 not is null
多个查询条件 and 、 or

查询年龄大于18
select * from t_user where userAge>18;
查询年龄是否为空值
select * from t_user where userAge is null;
select * from t_user where userAge<=>null;

范围查询
查询年龄在20-25之间
select * from t_user where userAge between 20 and 25;
查询年龄为18,20,22
select * from t_user where userAge in(18,20,22);
 
模糊查询
% 表示单个或多个字符
_ 表示单个字符
查询userName为姓张记录
select * from t_user where userName like '张%';
查询userName中带有国的纪录
select * from t_user where userName like '%张%';
查询userName中姓王的四个字的记录
select * from t_user where userNmae like '王___';

逻辑运算查询
查询编号在3-10和年龄不为空和性别为男的记录
select * from t_user where id between 3 and 10 and userAge is not null and sex='男';
查询编号在3-10或年龄不为空或性别为男的记录
select * from t_user where id between 3 and 10 or userAge is not null or sex='男';

分组查询
按照年龄分组
select * from t_user group by userAge;
按照编号大于3,年龄和性别分组
select * from t_user where id>3 group by userAge,sex;
每个部门的编号以及工资和
select deptno,sum(sal) fron emp group by deptno;
部门编号与人数
select depton ,count(empno) from emp group by deptno;
每个部门的部门编号以及以及大于15000的人数
select deptno ,count(empno) from emp where sal>1500 group by depno;
having语句
查询工资总和大于9000的部门编号以及工资和
select deptno ,sum(sal) from emp group by deptno having sum(sal)>9000;
 
去除重复查询
去除年龄相同的部分
select distinct userAge from t_user;

与null进行运算结果也为null,应此要判断是否为0
从emp表中查询姓名和月总收入(月收入+奖金)
select ename,sal+ifnull(comm,0) from emp;

聚合函数
查询所有记录
select count(*) from emp;
查询emp表中有佣金的数
select count(*) from emp where comm is not null and comm!=0;
查询月薪的和
select sum(sal) from emp;
查询月薪和和佣金的和
select sum(sal),sum(comm) from emp;
查询月薪和佣金和
select sum(sal)+sum(comm) from emp;
select sum(sql+ifnull(comm,0) from emp;
查询平均工资
select avg(sal) from emp;
查询工资最大值和最小值
select max(sal),min(sal) from emp;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值