mysql数据库的基本用法

1.mysql中的基本结构
数据空间(数据文件夹) : database
表(数据文件) : table
在数据库中数据空间和表均不可以重名

2.进入mysql
mysql -u root -p 回车
输入密码

3.显示数据空间(显示数据文件夹)
show databases;

4.选择数据空间
use database名称;

5.显示数据文件
show tables;

6.创建数据空间
create database 名称;

7.创建表
create table 名称(列名1 类型1,列名2 类型2,…列名N 类型N);

8.查看表的结构
desc 表名;

9.删除表
drop table 名称;

10.删除数据空间
drop database 名称;

11.插入数据
(1).insert into 表名 values(列值1,列值2,…列值N);
必须与表内数据类型对其

(2).insert into 表名(列名1,列名2,…列名N) values (列值1,列值2,…列值N);

12.删除表中的数据
delete from 表名; 清空表内所有数据

13.条件删除语句
delete from 表名 where 列名 = 列值;

14.更改数据
update 表名 set 列名 = 列值; 修改表内所有数据

15.条件修改语句
update 表名 set 列名 = 列值 where 列名x = 列值x;

16.查询数据
select 列名1,列名2,…列名N from 表名;

练习用查询语句:select * from 表名;

17.条件查询语句
select 列名1,列名2,…列名N from 表名 where 列名X = 列值X;

18.常用比较运算符 :

< >= <= = <>(mysql中可用!=)
and(mysql中可用&&) or(mysql中可用||)

19.特殊比较运算符
is is not 用于判断是否为NULL
列名 between 区间的开始 and 区间的结束
用于判断该列是否在区间内 返回一个[]的区间

in (值1,值2,…值N) 用于判断是否在该括号的集合内
一般不推荐使用,因为在简单的数据表结构中
特别的浪费效率,因为遍历次数过多

注:所有的比较运算符都在where语句后使用

20.常用的算数运算符
+ - * / %

21.查询出每个员工的编号,姓名和年薪(不算奖金,15月工资起算)
select empno,ename,salary*15 from emp;

22.查询出每个员工的编号,姓名和最大月工资
select empno,ename,salary + ifnull(bonus,0) from emp;

23.数据库中NULL有四种特性 :
1.凡是与NULL值做运算的结果 都为NULL
2.NULL值 不会与普通的比较运算符运算 判断列值是否为NULL
通过 is 判断等于空 is not判断不等于空
3.被组函数默认忽略 不会参与函数计算
4.在mysql中默认比所有的值都小,oracle中默认比所有值都大

24.普通函数
ifnull(列名,new值) 将该列中的所有NULL值转换为 new值
注:oracle下没有ifnull 但是有使用方法完全一致的 nvl(列名,new值)

lower(列名) 将该列中的值转换为小写
upper(列名) 将该列中的值转换为大写
注:在mysql下条件查询时,会默认将所有值转换为lower
但在oracle下不会被转换,所以oracle下必须手动添加lower或upper

25.别名机制
可以在任意列名或者表名重新定义一个别名 用于方便使用
as 新名字
注:as大部分时间略写

26.查询出每个员工的编号,姓名,基本工资,最大月薪,最大年薪
select e.empno no,e.ename name,e.salary sal,
e.salary+ifnull(e.bonus,0) month_sal,
(e.salary + ifnull(e.bonus,0))*15 year_sal from emp e;

27.查询出工资在5000到10000之间的员工的编号,姓名和工资
select empno,ename,salary from emp
where salary between 5000 and 10000;

28.查询出工资是5000,8000,15000的员工的编号,姓名和工资
select empno,ename,salary from emp
where salary in (5000,8000,15000);

29.组函数 :
直接与普通列一起查询 会出现数据显示有误的情况
如果组函数和普通列一起被查询,则必须分组
如果只有组函数的查询,则不需要分组
count(列名) : 求该列非NULL值的个数
max(列名) : 求该列最大值
min(列名) : 求该列最小值
sum(列名) : 求该列总和
avg(列名) : 求该列平均值
group by 列名 :
被分组的列,一般都是有重复数据的列
组函数和普通列一起被查询时,一般都直接按照该普通列分组

查询出公司有多少个员工
select count(empno) count_emp from emp;

查询出每个部门的员工个数
select count(empno) count_emp,deptno from emp group by deptno;

查询出每个职位的员工个数
select count(empno) count_emp,job from emp group by job;

查询出公司的最高工资、最低工资、公司每个月工资的总和和平均工资
select max(salary) max_sal,min(salary) min_sal,
sum(salary) sum_sal,avg(salary) avg_sal from emp;

查询出公司的每个月实际平均工资
select avg(salary+ifnull(bonus,0)) avg_sal from emp;

查询每个部门的最高工资和最低工资
select max(salary) max_sal,min(salary) min_sal,deptno from emp
group by deptno;

having字句 用于在分组后的判断条件
如果在没有分组的情况下使用,会默认按照第一列分组
极大的占用系统内存,所以只有在分组后需要的情况下使用

分组查询之后 默认语法不可以使用where语句
select avg(salary) avg_sal,deptno from emp
group by deptno having avg_sal > 5000;

查询公司的所有员工的编号,名称和工资 按照工资从小到大的顺序排序
select empno,ename,salary from emp order by salary;
注:order by 列名 排序后默认按照从小到大 关键字 asc
逆序 排序后添加desc

distinct 去重
写在select之后 列名之前

limit
可以选定显示哪部分的查询结果
在limit后面添加行数和显示的个数
注:limit关键字在低版本的mysql中有的不支持,少用

模糊查询 like
需要两个通配符配合使用
_ 每一个_都代表一个字符 直到匹配到类似的内容
% 放在字符前 用于表示以该字符为结尾
放在字符后 用于表示以该字符为开始
字符两边都添加 用于表示显示全部相关内容

复制一个表
create table 表名1 select * from 表名2 完全复制一个表结构和其内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值