mysql基础知识

一:关于数据库的一些知识
1:数据库的好处:
(1)可以持久化数据到本地
(2)结构化查询

2:数据库的概念:
(1)DB:数据库,存储数据的容器
(2)DBMS:数据库管理系统,又称为数据库或数据库产品,用于创建或管理DBMS
(3)SQL:结构化查询语言,用于和互数据库的通信,不是某个数据库的语言,而是几乎所有的主流数据库软件通用的软件。

3:数据库存储数据的特点:
(1)数据存放到表中,然后存放在库中
(2)一个库可以有多张表,每张表具有唯一的表名来标识自己
(3)表中有一个或多个列,列又称为字段,相当于java中的属性
(4)表中的每一行数据,相当于java中的对象

4.常见的数据库关键软件
mysql,db2,sqlserver,oracle

二:mysql的一些基础sql语法
1:展示数据库:show databases;
2:创建数据库:create database 库名;
3:删除数据库: drop database 库名;
4:进指定的数据库:use 库名;
5:展示数据库的表:show tables;
6:查看其他数据库的表:show tables from 库名;
7:展示当前在哪一个数据库中:select database();
8:创建表 create table 表名(
每一个字段要打个逗号,结尾加上一个 );
9:查看表的结构: desc 表名;
10:查看表里面具体的数据: select * from 表名;
11: 插入数据 insert into 表名(字段名,字段名) values (’ ‘,’ ‘);
12 : 修改数据:update 表名 set 字段名=’ ’ where ‘字段名’= ’ ’
例如:update studinfo set name=‘lilei’ where id=‘1’
13 : 删除数据:delete from 表名 where 字段名=’ ';
例如: delete from studinfo where id=1;

三:SQL语言规范
1 单行注释:#注释文字
2 多行注释:/注释文字/
3 mysql中的+号只有一个功能就是做运算符使用
4 字符串的拼接用concat函数;
5 基本条件查询语法:
SELECT
查询列表
FROM
表名
WHERE
筛选条件

四、筛选条件的分类
1:按条件表达式筛选
条件运算符 > , < , = , >= , <= (记住判断是否相等在mysql中是一个等于号)
不等于: !=或者< >

2:逻辑运算符
&& || ! (与或非)
and or not (mysql中推荐用法)

3:模糊查询
like
bewteen and
in
is null

1:按条件表达式筛选
例一 查询工资>1200的员工信息
SELECT
*
FROM
employees
WHERE
salary>12000;
例二:查询部门编号不等于90的员工名和部门编号
SELECT
last_name,department_id
FROM
employees
WHERE
department_id <> 90;

2:按逻辑运算符筛选:
例一:查询部门标号不是在90到110之间,或者工资高于 15000的员工信息
SELECT
*
FROM
employees
WHERE
department_id<90 OR department_id>110 OR salary>15000;
或者
SELECT
*
FROM
employees
WHERE
NOT (department_id>=90 AND department_id<=110)
OR salary>15000;

3:模糊查询
1.like 特点:
一般都和通配符使用,通配符%包含任意多个字符,包含0个字符 注:_也是一个通配符(只不过它只能匹配一个字符)

例一:查询员工中包含字符a的员工信息
SELECT
*
FROM
employees
WHERE
last_name LIKE ‘%a%’ ; (%代表的是通配符的意思)

例二:查询员工人中的第三个字符为n,第五个为l的员工名字和工资

SELECT
last_name,salary
FROM
employees
WHERE
last_name LIKE ‘__n_l%’;

案例三:查询员工工种中第二个字符为_的员工名
SELECT
last_name
FROM
employees
WHERE
last_name LIKE ‘__%’ ; (\代表的是转义)

2.between and (使用它可以提高语句的简洁度,并且它包含边界值,记住不要颠倒边界值)
案例一:查询员工编号在100到200之间的员工信息
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100 AND 120;

  1. in (判读某字段是否属于in列表中的某一项,使用in提高了语句简洁度,in列表的值要属于同一种类型)
    案例一:查询员工的工种编号是docter,teacher中的一个员工名和员工编号
    SELECT
    last_name,job_id
    FROM
    employees
    WHERE
    job_id IN (‘doctor’,‘teacher’);

  2. is null(=或者<>不能判断null, is null 或者is not null可以判断null值)
    案列一:查询没有奖金的员工名和奖金率。
    SELECT
    last_name,commission_pct
    FROM
    employees
    WHERE
    commission_pct IS NULL;

案例二:
查询employees表中,job_id不为’IT’或者工资为12000的员工信息
SELECT
*
FROM
employees
WHERE
job_id<> ‘IT’ OR salary=12000;

五:连接查询

在这里插入图片描述

1:等值连接
等值连接是关系运算-连接运算的一种常用的连接方式,等值连接是为了避免笛卡尔集的出现
例题:查找会计学院全体同学的学号,姓名,籍贯,班级编号和所在班级名称
数据库模式导航图如下:

在这里插入图片描述

此时查询语句为SELECT studentNo,studentName,native,Student.classNo,className FROM Student ,Class where Student.classNo=Class.classNo AND institute=‘会计学院’
注意:在等值连接中,如果涉及到多个表的相同属性名,必须在相同属性名前面加上表名进行区分。

2:自表连接
也称自连接,本质上是把一张表看为两张或者多张,自连接主要用于表中其他数据和某一数据进行比较,这种时候可以将表做两个附本,通过附本之间的比较找到需要的值。
例题:查找同时选修了编号为001,002课程同学的学号,姓名,课程号和相应的成绩,并按学号升序输出。
查询语句为:
SELECT a.studentNo,studentName,b.courseNo,b.score,c.courseNo,c.score FROM Student a,Score b,Score c WHERE b.courseNo=‘001’ AND c.courseNo=‘002’ AND a.studentNo=b.studentNo AND b.studentNo=c.studentNo ORDER BY a.studentNo

这里的Score就相当于看成了两张表,目的就是查到编号为001,002这两位同学。

注:小伙伴们想要sql的脚本文件可以私信我。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值