2021-07-19MySQL-01笔记

MySQL

1. Sql、DB、DBMS分别是什么,他们之间的关系?

  • DB:

    ​ DataBase(数据库,数据库实际上在硬盘上以文件的形式存在)

  • DBMS:

    ​ DataBase Management System (数据库管理系统,常见的有:MySQL、Oracle 、DB2、Sybase、SqlServer…)

  • SQL

    ​ 结构性查询语言,是一门标准通用的语言。标准的sql适合于所以的数据库产品。SQL属于高级语言。只要能看懂英语单词的,写出来的sql语句,可以读懂什么意思。SQL语句在执行的时候,实际上内部也会先进行编译,然后在执行sql。(sql语句的编译由DBMS完成)

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

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

2. 什么是表?

  • 表:table
  • 表:table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。
  • 一个表包括行和列:
    • 行:被称为数据/记录(data)
    • 列:被称为字段(column)
学号(int)姓名(varchar)年龄(int)
110张三20
120李四21

每一个字段都应该包括那些属性?

​ 字段名、数据类型、相关的约束。

3. 学习MySQL主要还是学习通用的SQL语句,那么SQL语句包括增删改查,SQL语句怎么分类呢?

  • DQL(数据查询语言):查询语句,凡是select语句都是DQL。
  • DML(数据操作语言):insert、delete、update,对表中的数据进行增删改。
  • DDL(数据定义语言):create、drop、alter,对表的结构的增删改。
  • TCL(事务控制语言):commit提交事务,rollback回滚事务(TCL中的T是Transaction)
  • DCL(数据控制语言):grant授权、revoke撤销授权权限等。

4. 导入数据

  1. 登录mysql数据库管理系统

    ​ dos命令窗口:

    ​ mysql -uroot -p123

  2. 查看有哪些数据库

    ​ show databases;(这个不是SQL语句,属于MySQL的命令。)

    ​ ±-------------------+
    ​ | Database |
    ​ ±-------------------+
    ​ | information_schema |
    ​ | mysql |
    ​ | performance_schema |
    ​ | test |
    ​ ±-------------------+

  3. 创建属于我们自己的数据库

    ​ cerate database bjpowernode;(这个不是SQL语句,属于MySQL的命令。)

  4. 使用bjpowernode数据

    ​ use bjpowernode;(这个不是SQL语句,属于MySQL的命令。)

  5. 查看当前使用的数据库中还有那些表?

    ​ show tables;(这个不是SQL语句,属于MySQL的命令。)

  6. 初始化数据

    ​ mysql> source E:\纪昊学习\mySQL\资料\bjpowernode.sql

    注意:数据初始化完成之后,有三张表:

    ​ ±----------------------+
    ​ | Tables_in_bjpowernode |
    ​ ±----------------------+
    ​ | dept |
    ​ | emp |
    ​ | salgrade |
    ​ ±----------------------+

5. bjpowernode.sql,这个文件以sql结尾,这样的文件被称为“sql脚本”。什么是sql脚本呢?

​ 当一个文件的扩展名是.sql,并且该文件中编写了大量的sql语句,我们称这样的文件为sql脚本。

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

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

6. 删除数据库:drop database bjpowernode;

7. 查看表结构:

​ mysql> show tables;

​ ±----------------------+
​ | Tables_in_bjpowernode |
​ ±----------------------+
​ | dept | (部门表)
​ | emp | (员工表)
​ | salgrade | (工资等级表)
​ ±----------------------+


​ mysql> desc dept;
​ ±-------±------------±-----±----±--------±------+
​ | Field | Type | Null | Key | Default | Extra |
​ ±-------±------------±-----±----±--------±------+
​ | DEPTNO | int(2) | NO | PRI | NULL | | 部门编号
​ | DNAME | varchar(14) | YES | | NULL | | 部门名称
​ | LOC | varchar(13) | YES | | NULL | | 部门位置
​ ±-------±------------±-----±----±--------±------+


​ mysql> desc emp;
​ ±---------±------------±-----±----±--------±------+
​ | Field | Type | Null | Key | Default | Extra |
​ ±---------±------------±-----±----±--------±------+
​ | EMPNO | int(4) | NO | PRI | NULL | | 员工编号
​ | ENAME | varchar(10) | YES | | NULL | | 员工姓名
​ | JOB | varchar(9) | YES | | NULL | | 工作岗位
​ | MGR | int(4) | YES | | NULL | | 上级领导编号
​ | HIREDATE | date | YES | | NULL | | 入职日期
​ | SAL | double(7,2) | YES | | NULL | | 月薪
​ | COMM | double(7,2) | YES | | NULL | | 补助/津贴
​ | DEPTNO | int(2) | YES | | NULL | | 部门编号
​ ±---------±------------±-----±----±--------±------+


​ mysql> desc salgrade;
​ ±------±--------±-----±----±--------±------+
​ | Field | Type | Null | Key | Default | Extra |
​ ±------±--------±-----±----±--------±------+
​ | GRADE | int(11) | YES | | NULL | | 等级
​ | LOSAL | int(11) | YES | | NULL | | 最低薪资
​ | HISAL | int(11) | YES | | NULL | | 最高薪资
​ ±------±--------±-----±----±--------±------+

8.表中的数据

mysql> select * from emp;
±------±-------±----------±-----±-----------±--------±--------±-------+
| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
±------±-------±----------±-----±-----------±--------±--------±-------+
| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
| 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 |
| 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 |
| 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 |
| 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 |
| 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 |
| 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 |
| 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 |
| 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 |
| 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 |
| 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 |
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 |
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 |
±------±-------±----------±-----±-----------±--------±--------±-------+


mysql> select * from dept;
±-------±-----------±---------+
| DEPTNO | DNAME | LOC |
±-------±-----------±---------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
±-------±-----------±---------+


mysql> select * from salgrade;
±------±------±------+
| GRADE | LOSAL | HISAL |
±------±------±------+
| 1 | 700 | 1200 |
| 2 | 1201 | 1400 |
| 3 | 1401 | 2000 |
| 4 | 2001 | 3000 |
| 5 | 3001 | 9999 |
±------±------±------+

9. 常用命令

  • mysql> select database(); 查看当前使用的是哪个数据库

    ±------------+
    | database() |
    ±------------+
    | bjpowernode |
    ±------------+

  • mysql> select version(); 查看mysql的版本号。

    ±----------+
    | version() |
    ±----------+
    | 5.5.36 |
    ±----------+

  • \c 命令,结束一条语句。

  • exit 命令,退出mysql。

10.查看创建表的语句

​ show create table emp;

11.简单的查询语句(DQL)

  • 语法格式:

    ​ select 字段名1,字段名2,字段名3,… from 表名;

  • 提示

    1. 任何一条sql语句以“;”结尾。
      2. sql语句不区分大小写。
  • 查询员工的年薪?(字段可以参与数学运算。)

    ​ select ename,sal * 12 from emp;
    ​ ±-------±---------+
    ​ | ename | sal * 12 |
    ​ ±-------±---------+
    ​ | SMITH | 9600.00 |
    ​ | ALLEN | 19200.00 |
    ​ | WARD | 15000.00 |
    ​ | JONES | 35700.00 |
    ​ | MARTIN | 15000.00 |
    ​ | BLAKE | 34200.00 |
    ​ | CLARK | 29400.00 |
    ​ | SCOTT | 36000.00 |
    ​ | KING | 60000.00 |
    ​ | TURNER | 18000.00 |
    ​ | ADAMS | 13200.00 |
    ​ | JAMES | 11400.00 |
    ​ | FORD | 36000.00 |
    ​ | MILLER | 15600.00 |
    ​ ±-------±-----------------+


  • 给查询结果的列重命名?

    ​ select ename,sal * 12 as yearsal from emp;

  • 别名中有中文?

    ​ select ename,sal * 12 as 年薪 from emp; // 错误
    ​ select ename,sal * 12 as ‘年薪’ from emp;
    ​ ±-------±---------+
    ​ | ename | 年薪 |
    ​ ±-------±---------+
    ​ | SMITH | 9600.00 |
    ​ | ALLEN | 19200.00 |
    ​ | WARD | 15000.00 |
    ​ | JONES | 35700.00 |
    ​ | MARTIN | 15000.00 |
    ​ | BLAKE | 34200.00 |
    ​ | CLARK | 29400.00 |
    ​ | SCOTT | 36000.00 |
    ​ | KING | 60000.00 |
    ​ | TURNER | 18000.00 |
    ​ | ADAMS | 13200.00 |
    ​ | JAMES | 11400.00 |
    ​ | FORD | 36000.00 |
    ​ | MILLER | 15600.00 |
    ​ ±-------±---------+

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

  • as关键字可以省略?

    ​ mysql> select empno,ename,sal * 12 yearsal from emp;
    ​ ±------±-------±---------+
    ​ | empno | ename | yearsal |
    ​ ±------±-------±---------+
    ​ | 7369 | SMITH | 9600.00 |
    ​ | 7499 | ALLEN | 19200.00 |
    ​ | 7521 | WARD | 15000.00 |
    ​ | 7566 | JONES | 35700.00 |
    ​ | 7654 | MARTIN | 15000.00 |
    ​ | 7698 | BLAKE | 34200.00 |
    ​ | 7782 | CLARK | 29400.00 |
    ​ | 7788 | SCOTT | 36000.00 |
    ​ | 7839 | KING | 60000.00 |
    ​ | 7844 | TURNER | 18000.00 |
    ​ | 7876 | ADAMS | 13200.00 |
    ​ | 7900 | JAMES | 11400.00 |
    ​ | 7902 | FORD | 36000.00 |
    ​ | 7934 | MILLER | 15600.00 |
    ​ ±------±-------±---------+

  • 查询所有字段?

    ​ select * from emp; // 实际开发中不建议使用*,效率较低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值