MySQL学习笔记(一)

目录

1、数据准备及常用命令

1.1、常见的数据库管理系统

1.2、MySQL的安装与配置(略)

1.3、MySQL卸载

1.4、SQL、DB、DBMS关系

1.5、表Table

1.6、SQL语句的分类

1.7、导入数据

1.8、sql脚本

1.9、查看表结构

1.10、查看表中的数据

1.11、其他常用命令

1.12、查看创建表的语句

2、查询

2.1、简单的查询语句(DQL)

2.2、条件查询


1、数据准备及常用命令

1.1、常见的数据库管理系统

IBM-->eclipse。Oracle甲骨文(Sun:太阳)Oracle做数据库起家的。Oracle-->MySQL AB公司

  • Oracle MySQL DB2 Sybase “MS SQLSever 支持标志sql的数据库管理系统”

1.2、MySQL的安装与配置(略)

1.3、MySQL卸载

  1. 双击安装包,下一步,remove;
  2. 手动删除Program Files中的MySQL目录;
  3. 手动删除ProgramData目录(隐藏目录)中的MySQL。

1.4、SQL、DB、DBMS关系

  • DB:DataBase(数据库,实际上在硬盘上以文件形式存在)
  • DBMS:DataBase Management System(数据库管理系统,常见的有:MySQL、Oracle、DB2、Sybase、sqlServer。。)
  • SQL:结构化查询语言,是一门标准通用的语言。标准的sql适用于所有的数据库产品。SQL属于高级语言,SQL语句在执行的时候,实际上内部也会先进行编译,然后再执行sql。(sql语句的编译由DBMS完成。)

DBMS负责执行sql语句,通过执行sql语句来操作DB中的数据。

DBMS -(执行)->  SQL -(操作)-> DB

1.5、表Table

  • 表:table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。

表包括行和列:

  • 行:数据/记录(data)
  • 列:字段(column)

每个字段包括的属性:字段名、数据类型、相关的约束。

学号(int)        姓名(varchar)        年龄(int)

110                        张三                                20

1.6、SQL语句的分类

DQL(数据查询语言):查询语句,凡是select语句都是DQL。

DML(数据操作语言):insert、delete、update,对表当中的数据进行增删改。

DDL(数据定义语言):create、drop、alter,对表结构的增删改。

TCL(事务控制语言):commit提交事务,rollback回滚事务。(TCL中的T是Transaction)

DCL(数据控制语言):grant授权、revoke撤销权限等。

1.7、导入数据

  1. 登录mysql数据库管理系统,dos命令窗口:mysql -uroot -p
  2. 查看有哪些数据库:show databases;(这个不是SQL语句,属于MySQL的命令。)
  3. 创建数据库:create database bjpowernode;(MySQL命令)
  4. 使用数据库:use bjpowernode;(MySQL命令)
  5. 查看当前使用的数据库中有哪些表格:show tables;(MySQL命令)
  6. 初始化数据: source E:\MySQL\bjpowernode\bjpowernode.sql,然后show tables;数据初始化完成后看到有三张表。
  7. 删除数据库:drop database bjpowernode;

1.8、sql脚本

bjpowernode.sql文件以sql结尾,被称为“sql脚本”。

sql脚本:当一个文件的拓展名是.sql,并且该文件中编写了大量的sql语句,即称为sql脚本。

注意:直接使用source命令可以执行sql脚本。

sql脚本中的数据量太大的时候无法打开,可以使用source命令完成初始化。

1.9、查看表结构

desc dept;

dept部门表,emp员工表,salgrade工资等级表

DEPTNO部门编号,DNAME部门名称,LOC部门位置;

EMPNO员工编号,ENAME员工姓名,JOB工作岗位,MGR上级领导编号,HIREDATE入职日期,SAL月薪,COMM补助/津贴,DEPTNO部门编号;

GRADE等级,LOSAL最低薪资,HISAL最高薪资。

1.10、查看表中的数据

select * from emp;

1.11、其他常用命令

  1. 查看当前使用的数据库:select database();
  2. 查询数据库版本:select version();
  3. 终止一条语句:\c
  4. 退出mysql:exit

1.12、查看创建表的语句

show create table emp;

2、查询

2.1、简单的查询语句(DQL)

select 字段名1,字段名2,字段名3,...  from 表名;

注意:

  1. 任何一条sql语句以“;”结尾。
  2. sql语句不区分大小写。

mysql> select ENAME from emp;

mysql> select EMPNO,ENAME from emp;

mysql> select empno,ename from emp;

mysql> SELECT EMPNO,ENAME FROM EMP;

mysql> SELect EMPno,ename FROm emP;

mysql> select

    -> empno,ename

    -> from

    -> emp;

  1.  查询员工的年薪:select ename,sal * 12 from emp;(字段可以参与数学运算。)
  2. 给查询结果的列重命名:select ename,sal * 12 as yearsal from emp;
  3. 别名中有中文:select ename,sal * 12 as '年薪' from emp;(用单引号括起来)
  4. as关键字可以省略:select empno,ename,sal * 12 yearsal from emp;
  5. 查询所有字段:select * from emp;(实际开发中不建议使用*,效率较低。)

 注意:标准sql语句中要求字符串使用单引号括起来,虽然mysql支持双引号,尽量别用。

2.2、条件查询

select 字段,字段,... from 表名 where 条件;

 执行顺序:先from,然后where,最后select

  1. 查询工资等于5000的员工姓名:select ename from emp where sal = 5000;
  2. 查询SMITH的工资:select sal from emp where ename = 'SMITH';(字符串varchar使用单引号括起来,可以用desc emp;查看表结构。)
  3. 查询工资高于、低于3000的员工:
    1. select ename,sal from emp where sal > 3000;
    2. select ename,sal from emp where sal >= 3000;
    3. select ename,sal from emp where sal < 3000;
    4. select ename,sal from emp where sal <= 3000;
  4. 查询工资不等于3000的员工:
    1. select ename,sal from emp where sal <> 3000;
    2. select ename,sal from emp where sal != 3000;
  5. 找出工资在1100和3000 之间的员工,包括1100和3000:
    1. select ename,sal from emp where sal >=1100 and sal <=3000;
    2. select ename,sal from emp where sal between 1100 and 3000;(between...and...是闭区间。[1100,3000])
    3. select ename,sal from emp where sal between 3000 and 1100;(即>=3000 and <=1100,查询不到任何数据。)

between and在使用的时候必须左小右大。

between and除了可以使用在数字方面之外,还可以使用在字符串方面。(数字左右都是闭区间,字符左闭右开)

select ename from emp where ename between 'A' and 'C'; (左闭右开,不含C)

select ename from emp where ename between 'A' and 'D'; 

 

  1.  找出哪些人津贴为NULL:select ename,sal,comm from emp where comm is null;(在数据库中NULL不是一个值,代表什么也没有,为空。NULL不能用等号衡量,必须使用is null或者is not null。)
  2. 找出哪些人津贴不为NULL:select ename,sal,comm from emp where comm is not null;
  3. 找出哪些人没有津贴:select ename,sal,comm from emp where comm is null or comm = 0;
  4. 找出工作岗位是MANAGER和SALESMAN的员工:select ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';
  5. and和or联合起来用 -- 找出薪资大于1000的并且部门编号是20或30部门的员工:select ename,sal,deptno from emp where sal > 1000 and (deptno = 20 or deptno =30);(注意:当运算符的优先级不确定的时候加小括号。)
  6. in等同于or -- 找出工作岗位是MANAGER和SALESMAN的员工:
    1. select ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';
    2. select ename,job from emp where job in ('MANAGER' , 'SALESMAN');
    3. select ename,job from emp where sal in (1000,5000);(找出工资等于1000或等于5000的员工,in后面的值不是区间,是具体的值。)
    4. select ename,sal from emp where sal in (800,5000);
    5. select ename,job,sal from emp where sal not in (800,5000);(not in:不在这几个值当中。)

模糊查询like:(在模糊查询中,必须掌握两个特殊的符号,一个是%,一个是_。)

%代表任意多个字符,_代表任意一个字符。

  1. 找出名字当中含有O的:select ename from emp where ename like '%O%';
  2. 找出名字中第二个字母是A的:select ename from emp where ename like '_A%';
  3. 找出名字中第三个字母是A的:select ename from emp where ename like'__A%';
  4. 找出名字中有下划线的(新建一张表t_user):select name from t_user where name like '%\_%';(转义\)
  5. 找出名字中最后一个字母是T的:select ename from emp where ename like '%T';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值