MySQL从入门到精通(一)

一、表的定义

表是一种结构化的文件,可以用来存储特定类型的数据,如:学生信息、课程信息等,都可以放到表中,另外表都有特定的名称,而且不能重复。表中有以下几个概念:列、行、主键。

1.列(字段)

列,通常叫做字段,每个字段都包含:字段名称、字段数据类型、字段约束、字段长度;

2.行(记录)

行,通常叫做表中的记录。表中的数据是按行(记录)存储的,表里可以有0条或多条记录;

3.主键

主键,主键是由列构成的,表中的每一行通常都有一个标识,主键可以由一个字段戒多个字段构成,一个字段构的主键称为单一主键,多个字段构成的主键称为复合主键,主键通常是不能修改的。

 

 

二、SQL分类

DQL语句数据查询语言select 
DML语句数据操作语言insert delete update
DDL语句数据库定义语言create drop alter
TCL语句事务控制语言commit rollback

 

 

 

 

 

DML修改数据库表中的数据,DDL是修改数据中表的结构;

 

三、常用命令

查看MySQL版本

mysql --version

mysql -V

查看当前使用数据库
select database ();
查看MySQL数据库版本
select version();
创建数据库
create database 数据库名称;
终止一条语句
\c
查看和指定现有的数据库
show databases;
指定当前缺省数据库
use bjpowernode;
查看当前数据库中的表
show tables;
查看其它数据库中的表
show tables from 数据库名称;
查看表结构
desc 表名称;
查看表的创建语句
show create table 表名称 ;

 

 

 

 

 

 

 

 

 

 

 

 

四、简单查询

1.建表语句

DROP TABLE IF EXISTS EMP;
DROP TABLE IF EXISTS DEPT;
DROP TABLE IF EXISTS SALGRADE;

CREATE TABLE DEPT
       (DEPTNO int(2) not null ,
	DNAME VARCHAR(14) ,
	LOC VARCHAR(13),
	primary key (DEPTNO)
	);
CREATE TABLE EMP
       (EMPNO int(4)  not null ,
	ENAME VARCHAR(10),
	JOB VARCHAR(9),
	MGR INT(4),
	HIREDATE DATE  DEFAULT NULL,
	SAL DOUBLE(7,2),
	COMM DOUBLE(7,2),
	primary key (EMPNO),
	DEPTNO INT(2) 
	)
	;

CREATE TABLE SALGRADE
      ( GRADE INT,
	LOSAL INT,
	HISAL INT );




INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 
10, 'ACCOUNTING', 'NEW YORK'); 
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 
20, 'RESEARCH', 'DALLAS'); 
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 
30, 'SALES', 'CHICAGO'); 
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 
40, 'OPERATIONS', 'BOSTON'); 
commit;
 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7369, 'SMITH', 'CLERK', 7902,  '1980-12-17'
, 800, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7499, 'ALLEN', 'SALESMAN', 7698,  '1981-02-20'
, 1600, 300, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7521, 'WARD', 'SALESMAN', 7698,  '1981-02-22'
, 1250, 500, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7566, 'JONES', 'MANAGER', 7839,  '1981-04-02'
, 2975, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7654, 'MARTIN', 'SALESMAN', 7698,  '1981-09-28'
, 1250, 1400, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7698, 'BLAKE', 'MANAGER', 7839,  '1981-05-01'
, 2850, NULL, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7782, 'CLARK', 'MANAGER', 7839,  '1981-06-09'
, 2450, NULL, 10); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7788, 'SCOTT', 'ANALYST', 7566,  '1987-04-19'
, 3000, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7839, 'KING', 'PRESIDENT', NULL,  '1981-11-17'
, 5000, NULL, 10); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7844, 'TURNER', 'SALESMAN', 7698,  '1981-09-08'
, 1500, 0, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7876, 'ADAMS', 'CLERK', 7788,  '1987-05-23'
, 1100, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7900, 'JAMES', 'CLERK', 7698,  '1981-12-03'
, 950, NULL, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7902, 'FORD', 'ANALYST', 7566,  '1981-12-03'
, 3000, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,
DEPTNO ) VALUES ( 
7934, 'MILLER', 'CLERK', 7782,  '1982-01-23'
, 1300, NULL, 10); 
commit;
 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 
1, 700, 1200); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 
2, 1201, 1400); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 
3, 1401, 2000); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 
4, 2001, 3000); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 
5, 3001, 9999); 
commit;
 

2.查询员工姓名

select ename from emp;

3.查询员工编号和员工姓名

select empno,ename from emp;

4.查询全部字段

select * from emp;

5.计算员工年薪

1)列出员工的编号,姓名和年薪

select empno,ename,sal*12 from emp;

2)将查询出来的字段重命名和显示为中文

 select empno,ename,sal * 12 as ‘年薪’from emp;

 

五、条件查询

1.支持如下运算符

运算符说明
=等于
<>或!=

不等于

<小于
<=小于等于
>大于
>=大于等于
between..and...两个值之间
is null为null
and并且
or或者
in包含
notnot可以取非,主要用在is或in
likelike为模糊查询,支持%或_匹配

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.查询薪水为5000的员工

select empno,ename,sal from emp where sal = 5000;

3.查询job为MANAGER的员工

select empno,ename,job from emp where job =“manager”;

4.查询薪水不等于5000的员工

select empno,ename,sal from emp where sal <> 5000;

5.查询工作岗位不等于MANAGER的员工

select empno,ename,job from emp where job <>„MANAGER‟;

6.查询薪水为1600到3000的员工

select empno,ename,sal from emp where sal between 1600 and 3000;

7.查询津贴为空的员工

select empno,ename,comm from emp where comm is null;

8.查询工作岗位为“MANAGER”并且薪水大于2500的员工

select empno,ename,job,sal from emp where job ="MANAGER" and sal > 2500;

9.查询出 job 为 SALESMAN 和 job为MANAGER的员工

select ename,job from emp where job = 'SALESMAN' or job = 'MANAGER';

10.查询出Job为 SALESMAN 和 Job为 MANAGER 的员工

select ename,job from emp where job in ('SALESMAN','MANAGER');

11.查询出薪水不为1600和3000的员工

select ename,sal from emp where sal not in (1600,3000);

12.查询出薪水不是1600和薪水不是3000的员工

select ename,sal from emp where not (sal = 1600 or sal = 3000);
select ename,sal from emp where sal not in (1600,3000);
select ename,sal from emp where sal <> 1600 and sal <> 3000;

13.查询以姓名以 M 开头的所有员工‘M%’

select ename from emp where ename like 'M%';

14.查询姓名以N结尾的所有员工‘%N’

select ename from emp where ename like '%N';

15.查询姓名中包含O的所有员工‘%O%’

select ename from emp where ename like '%O%';

16.查询姓名中第二个字符为A的所有员工‘_A%’

select ename from emp where ename like '_A%';

17.查询姓名中倒数第二个字符为E的所有员工‘%E_’

select ename from emp where ename like '%E_';

18.查询姓名中第三个字符为N的所有员工姓名‘__R%’

select ename from emp where ename like '__R%';

 

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如初⁰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值