MySQL学习笔记

文章目录

一、数据库概述及数据准备:
①SQL、DB、DBMS:
  • DB

    • DataBase——数据库,数据库实际上在硬盘上以文件的形式存在。
  • DBMS

    • D a t a B a s e M a n a g e m e n t S y s t e m DataBase Management System DataBaseManagementSystem——数据库管理系统,常见的有:MySQL、Oracle、SQLServer……
  • SQL

    • 结构化查询语言,是一门标准通用的语言,标准的 SQL 语句适合于所有的数据库产品;SQL 属于高级语言;SQL 语句在执行的时候,实际上内部也会先进行编译,然后再执行 SQLSQL 语句的编译由 DBMS 完成。
  • 彼此之间的关系

    • DBMS负责执行 SQL 语句,通过执行 SQL语句来操作 DB中的数据。
    • DBMS—(执行)—>SQL—(操作)—>DB
②表_table:
  • 什么是表?

    • table 是数据库的基本组成单位,所有的数据都以表格的形式组织,目的是可读性强。
  • 一个表包含行和列

    • 行——被称为数据/记录(data)。

    • 列——被称为字段column

      学号(int) 姓名(varchar) 年龄(int)
      20181101 张三 21
      20181103 李四 22
    • 每一个字段应该包含哪些属性?

      • 字段名、数据类型、相关的约束。
③SQL语句分类:
分类 介绍
DQL(数据查询语言) 查询语句,凡是select语句都是DQL。
DML(数据操作语言) insert delete update,对表当中的数据进行增删改。
DDL(数据定义语言) create drop alter,对表结构的增删改。
TCL(事务控制语言) commit提交事务,rollback回滚事务。(TCL中的T是Transaction)
DCL(数据控制语言) grant授权、revoke撤销权限等。
④导入数据:
  • 登录 MySQL 数据库管理系统

    mysql -uroot -p密码
    

    image-20210829175652813

  • 查看有哪些数据库

    show databases;/*这个不是SQL语句,属于MySQL的命令。*/
    

    image-20210829175909458

  • 创建自己的数据库

    create database 数据库名;/*这个不是SQL语句,属于MySQL的命令。*/
    

    image-20210829180356736

  • 使用数据库的数据

    use 数据库名;/*这个不是SQL语句,属于MySQL的命令。*/
    

    image-20210829180603300

  • 查看当前使用的数据库中有哪些表

    show tables;/*这个不是SQL语句,属于MySQL的命令。*/
    

    image-20210829181048615

    • 因为是新建的数据库,所以内部暂时还空空如也。
  • 初始化数据

    source sql文件路径;/*可以将sql文件拖入到命令窗口*/
    

    image-20210829182550358

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

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

      • 注意:直接使用source命令可以执行sql脚本
      • sql脚本中的数据量太大的时候,无法打开,请使用source命令完成初始化。
    • test.sql 文件中的代码:

    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;
    
    • 执行完命令之后,我们再次查看数据库中的表:

    image-20210829182920279

  • 删除数据库

    drop database 数据库名字;
    
    • 这个就不演示了,整完还得我重建!/(ㄒoㄒ)/~~
⑤查看表结构:
+----------------+
| Tables_in_test |
+----------------+
| 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    |       |部门地址
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
  • 员工表
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    |       |部门编号
+----------+-------------+------+-----+---------+-------+
8 rows in set (0.01 sec)
  • 工资等级表
mysql> desc salgrade;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| GRADE | int(11) | YES  |     | NULL    |       |等级
| LOSAL | int(11) | YES  |     | NULL    |       |最低薪资
| HISAL | int(11) | YES  |     | NULL    |       |最高薪资
+-------+---------+------+-----+---------+-------+
3 rows in set (0.01 sec)
⑥查看表中的数据:
mysql> select* from dept;/*这个是查询语句,后面会具体说明。*/
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
+--------+------------+----------+
4 rows in set (0.00 sec)
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 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值