第一天MySQL

MySQL学习笔记

2020/5/4

一、 数据库的相关概念

  1. 数据库的好处

1.1   能够永久性的保存数据,实现数据持久化

1.2   可以实现结构化查询,方便管理

  2.数据库相关概念

2.1数据库(DB->database):存储一组有组织的数据的容器

2.2 数据库管理系统(DBMS->database management system):又称数据库软件或数据库产品,用于管理数据库中的数据

2.3 结构化查询语言(structured query language):用于和DBMS进行通信的语言(SQL语言不是某个数据库软件特有,而是几乎所有数据库软件都通用的语言)

      

二、 一些数据库软件

  1. MySQL(08年被sun公司收购,09年sun公司被oracle公司收购)
  2. Oracle
  3. DB2
  4. sqlserver

三、 数据库的特点

  1. 将数据放到表内,表再放在库中(如security库)
  2. 一个数据库可以有多个表,每个表都有一个名字,用来标识自己(如security中的users)
  3. 表具有一些特性,这些特性定义了数据在表中如何存储,类似以c++中“类”的设计(如为储存学生数据的表)
  4. 表由列组成,也称为字段。所有表都是由一个或多个列组成的,每一列类似于c++中的“属性”(如security库中的user表中的username、password、id等字段)
  5. 表中的数据是按行存储的,每一行类似于C++中的”对象”

四、 MYSQL产品特点

优点:

  1. 成本低->开放源代码
  2. 性能高:执行很快
  3. 简单:容易安装和使用

五、 DBMS

两大类:

  1. 基于共享文件系统的DBMS(如微软的access,但只能用于windows操作系统中)
  2. 基于客户机-服务器(C/S)的DBMS(MySQL、Oracle、SqlServer)

  (一般来说安装数据库,是安装数据库的服务端)

六、 MySQL-配置文件

  1. bin目录,二进制文件
  2. my.ini->一个配置文件,可以查看和修改当前MySQL服务端和客户端的配置(如端口号、使用的字符集等)

七、 MySQL服务的启动和停止

  1. 手动在电脑服务中开启或停止
  2. 在dos命令行中使用命令(在管理员模式下启动)

  2.1   启动->net start 服务名(服务名可以在自己电脑计算机管理中的服务处查看)

  2.2   关闭->net stop 服务名

八、 MySQL服务端的登入和退出

  1. MySQL自带的客户端(只限于root用户)
  2. 通过windows自带的客户端

  登录:mysql [-h(主机名) -P(端口号)] -u(用户名) -p(密码)

  退出:exit或Ctrl+C

九、 MySQL常见命令

  1. 查看当前的所有数据库

  show database;(sql语句中以;或g来表示一个语句的结束)

   2. 打开指定的库

  use 库名;

   3. 查看当前库的所有表

  select tables;

   4. 查看其它库的所有表

  select tables from 库名;

   5. 创建表

  create table 表名(

        列名 列类型,

        列名 列类型,

        …

);

   6. 查看表结构

  desc 表名;

   7. 查看服务器版本

    7.1 登录到mysql服务器

    show version();

      7.2 没有登录到mysql服务器

    mysql –version

    或

    mysql –V

   8. 创建一个数据库

  create database 库名;

   9. 查看当前打开的数据库

  select database();

十、 MySQL语法规范

  1. 不区分大小写,但建议关键字大写,表名,列名小写
  2. 每条命令最好用‘;’结尾
  3. 每条命令根据需要,可以进行缩进或换行
  4. 注释

  4.1单行注释:#

  4.2单行注释:-- 注释文字(注意,后面有个空格)

  4.3 多行注释:/* 注释文字 */

十一、 SQL语言

  1. DQL语言(Data Query Language)数据查询语言

   1.1   基础查询

    1.1.1         语法:SELECT 查询列表(查询的东西可以有多个)FROM 表名;(select->选择、过滤、查看)

    1.1.2         查询列表可以是:(注意,查询的结果是一个虚拟的表格,没有真实的保存)

      (1)    表中的字段

        表中的单个字段:

             SELECT 字段名 FROM 表名;

             SELECT last_name FROM employee;

        表中的多个字段:

             SELECT 字段名,字段名,…,字段名 FROM 表名;(查询字段名的类型、个数、顺序可以自己定义,灵活)

        表中的全部字段:  

      1. SELECT * FROM 表名;(*表示所有字段,但字段的顺序是固定的,不够灵活)
      2. SELECT 字段名,字段名,…,字段名(列出所有字段) FROM 表名;

        (着重号:用于把字段名与关键字区分,代表这是一个字段名,也可以不用)

      (2)    常量值

            SELECT 常量值;

         SELECT 100;

         SELECT 'john';

      (3)    表达式

         SELECT 表达式;

         SELECT 100*98;

      (4)    函数

         SELECT 函数名;

            SELECT VERSION();

    1.1.3  给字段取别名

    优点:1.便于理解 2.如果要查寻的字段有重名的情况,使用别名可以区分开来

    方式一:AS方式

        SELECT 字段名 AS 别名;

     SELECT 100*98 AS RESULT;

        SELECT last_name AS  姓,first_name AS  名  FROM employee;

    方式二:使用空格

        SELECT last_name  姓,first_name  名  FROM employee;

     注意:若别名中有特殊字符如“  ”(空格)、“#”等,需要用“”把别名引起来(单引号也可以,不过建议使用双引号)

    1.1.4 去重

     SELECT DISTINCT 字段名 FROM 表名;

     SELECT DISTINCT department_id FROM employee;(department_id中只显示没有重复的编号,若作用于多列,则根据多列的多个字段来共同去重)

    1.1.5 +的作用

    只有一个功能:运算符

    (1).若两个操作数都为数值型,则直接进行加法运算

    (2).若两个操作数中有一方为字符型,则会试图将字符型值转换为数值型。如果转换成功,则继续做加法运算;如果转换失败,则将字符型值转换成0

    (3). 若两个操作数中有一方为null,则最后结果一定为null

    1.1.6  concat()使用(拼接)

    函数原型:concat(str1,str2,str3…)

    SELECT CONCAT('a','b','c');->abc

    SELECT CONCAT(last_name,first_name) AS 姓名 FROM employee;

    2. DML语言(Data Manipulation Language)数据操纵语言

    3. DDL语言(Data Definition Language)数据库模式定义语言

    4. TCL语言(Transaction Control Language)事务控制语言     

原文地址:https://www.cnblogs.com/jane315/p/12828099.html