MySQL学习之路(上篇)

目录

一、数据库和SQL概述

(一)数据库的好处

(二)数据库的概念

DB

DBMS

SQL

(三)数据库结构特点

二、MySQL的使用

(一)MySQL服务的启动和停止

(二)MySQL的登陆和退出

(三)MySQL的常用命令

(四)MySQL语法规范

三、DSL语言学习

(一)基础查询

1.查询表中单个字段

2.查询表中的多个字段

3.查询表中的所有字段

4.查询常量值

5.查询表达式

6.查询函数

7.起别名

8.去重

9. ' + ' 的作用

10.CONCAT连接符

(二)条件查询

1.基本语法

2.按条件表达式查询

3.按逻辑表达式查询

3.模糊查询

(三)排序查询


一、数据库和SQL概述

(一)数据库的好处

  • 实现数据持久化
  • 使用完整的管理系统统一管理,便于查询

(二)数据库的概念

DB

        数据库(database),存储数据的仓库,保存了一系列 有组织 的数据。

DBMS

        数据库管理系统(Database Management System)。数据库是通过 DBMS 创建和操作的容器。常见的数据库管理系统:MySQL、Oracle、DB2、SqlServer(其中MySQL用得比较多)

SQL

        结构化查询语言(Structure Query Language),专门用来与数据库通信的语言。

SQL的优点

1.是一门通用的语言,几乎所有DBMS都支持SQL。

2.简单易学

3.灵活使用,可以进行非常复杂而又高级的数据库操作。

(三)数据库结构特点

1.将数据放在表中,表再放到库中

2.一个数据库中可以有多个表,每个表有一个名字,用来标识自己。

(表名具有唯一性。)

3.表具有一些特性,这些特性定义了数据在表中如何存储,类似 java 中 “类” 的设计。

4.表由组成,也称为 字段。所有表都是由一个或多个列组成的,每一列类似 java 中的“属性”。

5.表中的 数据 是按行存储的,每一行类似于Java中的“对象”。

二、MySQL的使用

(一)MySQL服务的启动和停止

  • 方法一:

        Windows10:Ctrl+Shift+Esc -> 查看服务->点击,启动和停止服务

 (太麻烦了,一般懒得用这个方法)

  • 方法二:

        通过命令行cmd(管理员权限

# 启动
net start [mysql服务名]

# 停止
net stop [mysql服务名]

 

(二)MySQL的登陆和退出

//本地登陆
mysql -h localhost -p 3306 -U root -p

//root用户快捷登录
mysql -u root -p

//还有这种,我就不演示啦,因为不让你看我的密码~
mysql -u root -p(密码)

一般在本机输这个就够了

不需要之后可输入exit退出,还会跟你说bye(或者使用Ctrl + C也可以)

 登陆之前,记得把MySQL启动了!!!!!!

不然会出现 Can't connect to MySQL server on 'localhost:3306' (10061) 

(这个问题之后我也会加入问题集,菜鸟每天飞过.jpg)

(三)MySQL的常用命令

查看当前所有数据库

show databases;

打开指定数据库

use 库名;

查看当前所在的库

select database();

查看当前库的所有表

show tables;

查看其他库的所有表

show tables from 库名;

查看表中的所有数据

select * from 表名;

创建表

create table 表名
(
    列名 列类型,
      列名 列类型,
      ...
);

查看表结构

desc 表名;

查看服务器版本

  • 方式一: 登录到 mysql 服务端
select version();

  • 方式二:未登录到 mysql 服务端
mysql --version
mysql -V

 

(四)MySQL语法规范

1.不区分大小写,但是由规范,建议关键字大小写,表名、列名小写。

2.每条命令用分号 ; 结尾 。 

3.每条命令根据需要,可以进行缩进或换行。

4.关于注释

单行注释 

--注释文字

 多行注释

/*

注释

*/

三、DSL语言学习

DQL: DataBase Query Language(SQL分支:数据库查询语言)

(一)基础查询

下面这是一张表

myemployees/employees  员工表
  - employee_id        员工编号
  - first_name         名
  - last_name          姓
  - email              邮箱
  - phone_number       电话号码   
  - job_id             工种编号
  - salary             月薪
  - commission_pct     奖金率
  - manager_id         上级领导的员工编号
  - department_id      部门编号
  - hiredate           入职日期

myemployees/departments  部门表
     - department_id     部门编号
     - department_name   部门名称
     - manager_id        部门领导的员工编号
  - location_id          位置编号

myemployees/locations   位置表
  - location_id         位置编号
  - street_address      街道
  - postal_code         邮编
  - city                城市
  - state_province      州
  - country_id          国家编号

myemployees/jobs        工种 
  - job_id              工种编号                                 
  - job_title           工种名称
  - min_salary          最低工资
  - max_salary          最高工资

基本查询语法:

着重号 `` ,当字段名与已知 SQL 关键字重复,则可使用。一般情况也可使用。

语法:

select 查询列表 from 表名;

特点:

1.查询列表可以是表中的字段、常量值、表达式、函数

2.查询的结果是一个虚拟的表格

1.查询表中单个字段

SELECT 
    last_name 
FROM
    employees ;

2.查询表中的多个字段

SELECT 
    last_name,
    salary,
    email 
FROM
    employees ;

3.查询表中的所有字段

方法一:

SELECT 
    `employee_id`,
    `first_name`,
    `phone_number`,
    `commission_pct`,
    `manager_id`,
    `department_id`,
    `hiredate` 
FROM
    employees ;

方法二:

SELECT * FROM employees;

4.查询常量值

SELECT 100;
SELECT 'Murphy';

5.查询表达式

SELECT 100 % 98;

6.查询函数

SELECT VERSION();

7.起别名

关键字:AS

AS优点:

1.便于理解

2.如果要查询的字段有重名的现象,使用别名可以区别出来。

方式一:

SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;

方式二:

SELECT last_name 姓, first_name 名 FROM employees;

example :

SELECT salary AS "out put" FROM employees;

--查询 salary,显示结果为 out put
--为区别关键字与别名,故用 " " 进行区别

8.去重

关键字:distinct
example:查询员工表中涉及的所有部门编号
```sql
SELECT DISTINCT department_id FROM employees;
```

9. ' + ' 的作用

Java中的 ' + ' :

  • 运算符:两个操作数都是数值
  • 连接符:只要有一个为字符串

MySQL中的 ' + ' :

  • 运算符
# 两个操作数都是数值型,则作加法运算
select 100+90;         # 190
# 其中有一个为字符型,试图将字符串数值转化成数值型
# 如果转换成功,则继续做加法运算。
select '123'+90; # 213
# 如果转换失败,则将字符串型转换成 0
select 'abc'+90;  # 90
select null + 10; 只要其中一个为 null,则结果肯定为 null 

10.CONCAT连接符

example:查询 将员工的名和姓连接成一个字段,并显示 姓名

SELECT CONCAT('a','b','c') AS 结果; # abc
SELECT 
    CONCAT(last_name, " ", first_name) AS 姓名
FROM 
    employees;

(二)条件查询

1.基本语法

select 
    查询列表
from 
    表名
where 
    筛选条件

2.按条件表达式查询

USE myemployees;

SELECT
    *
FROM 
    employees
WHERE
    salary > 12000;

3.按逻辑表达式查询

&& , || ,!

and , or , not

SELECT
    *
FROM
    employees
WHERE
    department_id < 90 OR department_id > 110 OR salary > 15000

3.模糊查询

        LIKE

  • 一般与通配符搭配使用
  • 通配符: % 任意多个字符,包含0个字符匹配任意单个字符
  • 转义字符escape<>将指定字符设置为转义符号

example1:查询员工名中含有a字母的员工信息

SELECT
    *
FROM
    employees
WHERE
    last_name LIKE "%a%";

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

SELECT
	last_name,
	salary
FROM
	employees
WHERE
	last_name LIKE '__n_l%';

example3:查询员工名中第二个字符为_的员工名

SELECT
    last_name
FROM
    employees
WHERE
    #last_name LIKE "_\_%"
    last_name LIKE "_$_%" ESCAPE "$";

        between and

  • 提高简洁性
  • 包含临界值(临界值不能调换顺序)
SELECT
    *
FROM
    employees
WHERE
    --employee_id >=100 and employee_id <= 120;
    employee_id BETWEEN 100 AND 120;

        in

判断某个字段是否属于 in 列表中的某一项

  • 提高简洁度
  • in里面的值类型必须一致

example:查询员工的工种编号 IT_PROT, AD_VP, AD_PRES 中的一个员工名和工种编号

SELECT 
    last_name,
    job_id
FROM
    employees
WHERE 
    job_id IN ('IT_PRO', 'AD_VP', 'AD_PRES');
    --job_id = 'IT_PROT' OR job_id = 'AD_VR' OR job_id = 'AD_PRES';

        IS NULL / IS NOT NULL

  • =或<>不能判断等于null
  •  is null is not null可以
SELECT
    last_name,
    commission_pct
FROM
    employees
WHERE
    commission_pct IS NOT NULL;

        安全等于<=>

<=> 即可以判断NULL值,又可以判断普通的数值

SELECT
    last_name,
    commission_pct
FROM
    employees
WHERE
    commission_pct <=> NULL;

(三)排序查询

未完待续……(溜了runrunrun)

(本笔记是尚硅谷课程学习时所做)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值