zoukankan      html  css  js  c++  java
  • MySQL

    MySQL

    一、MySQL简介

    1、什么是MySQL

    MySQL是最流行的开源RDBMS,在WEB应用方面是最好的RDBMS应用软件之一。

    MySQL是一种关联数据库管理系统,将数据保存在不同的库中,每个库可包含对个表,每个表中可以有多行多列的数据。

     关系型数据库的数据结构:

    Server(服务器) -> Database(数据库) ->Table(表) -> Row(行) -> Column(列)

    XAMPP(服务器软件套装) = Apache + MySQL/MariaDB + PHP

    下载:https://www.apachefriends.org/zh_cn/index.html

    2、关系型数据库MySQL的使用

      最流行的开源数据库,目前有两个分支: MySQL MariaDB

        使用MySQL数据库系统的步骤:

      (1)下载并安装MySQL服务器端程序

        C:\xampp\mysql\bin\mysqld.exe     

        Deamon 精灵、守护者、守护程序、服务器程序

      (2)启动MySQL服务器端程序

        双击mysqld.exe或者点击“启动”按钮,只要确保3306端口被mysqld.exe占用即可

      -----------------------------------------------

      (3)下载并安装MySQL客户端程序,可以选择下列三者之一

       (3.1)命令行界面工具

        C:\xampp\mysql\bin\mysql.exe  -uroot   没有分号回车即可进入!!

         (3.2)桌面版本工具

         (3.3)网页版本工具

        http://127.0.0.1/phpmyadmin/

      (4)发送SQL命令给服务器执行,例如:

        show databases;   SQL命令都以分号结尾!!

       (5)使用客户端程序连接服务器端

        交互模式:  mysql  -uroot  

        脚本模式:  mysql  -uroot  <  e:/xx.sql

      (6)交互模式:运用cmd命令查看执行效果:步骤

        mysql -uroot//直接回车,打开MySQL服务

        show databases;//查看数据库

        use 数据库名 ; //关联数据库

        show tables //查看表名

        //insert delete update select\ //增删改查


        insert into 表名 values(null,'title','content',);  //增加(插入)数据
        
        delete from news where nid = 1;  //删除数据
        
        select * from nwes;  //查询
       
        update news set title='aaa' where nid=1;   //更新

      如图所示:

     

    二、SQL语言

    1、SQL语言简述

      SQLStrutured Query Language,一种专用于操作关系型数据库的语言,可以实现“增删改查”数据库服务器中的数据。

           执行SQL语句的两种方式:

        (1)交互模式: mysql  -uroot     输入一行执行一行 —— 适用于临时少量操作数据

        (2)脚本模式:把多条SQL命令写在一个文本文件中,一次性全部提交给服务器执行 ——适用于临时大量操作数据

        Mysql-uroot<d:/jd.sql    小于号表示“导入”

        

    2、SQL语句

    1、DDL:数据定义语言,用于定义数据的结构

      1、CREATE:用于创建数据库对象,如库,表,视图等

          CREATE DATABASE tarena_oa CHARSET utf8;

          CREATE TABLE emp(id INT,name VARCHAR(32));

      2、DROP:用于丢弃数据库对象,如库、表、视图等

          DROP DATABASE IF EXISTS tarena_oa;

          DROP TABLE emp;

      3、ALTER:用于修改数据库对象定义

      4、TRUNCATE:用于截断表中所有记录

    2、DML语句:数据操作语言,用于操作数据表中的数据。

    1. INSERT:向表中插入一行或者多行记录

        INSERT INTO emp(id,name) VALUES(88,’LING’)   或者写作

        INSERT INTO emp(id,name);INSERT INTO emp VALUES(88,’kinbg’)  分开写

      2.DELETE:删除表中的记录

        DELETE FROM emp; /*删除所有记录*/

        DELETE FROM emp WHERE id=88;/*删除一行记录*/

      4.UPDATE:修改表中的记录

        UPDATE emp SET name=’kane’ WHERE id=88;

    3、DQL语句

      DQL语句数据查询语言,用于查询数据:

      SELECT :查询表中记录

      SELECT id,name FROM emp; /*查询所有记录行中idname两列上的值*/

      SELECT id,name FROM emp WHERE id=88

      /*查询某行记录中额idname两列上的值*/

    4、DCL语句

      数据控制语言,控制用户的权限。

      GRANT、REVOLE 

    3SQL语言的实际运用和注意点

     /*SQL命令不区分大小写,习惯上关键字都大写,非关键字小写,但结尾必须分号*/

    /*SQL中的多行注释*/

    #单行注释

     

    1、指定后面的SQL 语句所用的字符编码方式

    SET NAMES UTF8; #SQLUTF-8必须写作UTF8

     

    2、数据库的数据结构:服务器 > > > >

    3、删除指定的数据库,如果存在的话

      DROP DATABASE IF EXISTS tedu

     

    4、创建新的数据库,并指定储存数据所用的字符编码

      CREATE DATABASE tedu CHARSET=UTF8;

     

    5、开始使用指定数据库

      USE tedu

     

    6、创建保存学生信息表格

      CREATE TABLE student(

      sid INT PRIMARY KEY AUTO_INCREMENT, #主键列,数据是唯一的 自增列

      stuName VARCHAR(4), #字符长度的设定

      sex VARCHAR(1),

      score FLOAT(41),  #小数位数的设定

      birthday DATE

      );

    7、向表中插入记录行,SQL中的字符串/日期必须使用单引号;数字可用可不用

      INSERT INTO student VALUES(1,’大旭’,’男’,’190’,’1991-10-1’);

      INSERT INTO student VALUES(2,’东东’,’男’,’213’,’1991-12-3’)

     

    8、修改指定的记录行——最难记的语句?

      UPDATA student SET stuName =’大东’,score=’230’,birthday=’1993-3-2’ WHERE sid =2;

      #SQL中判断相等只用一个等号

     

    9、删除指定的记录行

      #DELETE  FROM student;  #删除所有记录

      DELETE FROM student WHERE sid=1;#删除满足条件的行

     

    10、查询出学生表中所有的记录行

      SELECT sid ,stuName,sex,score,birthday FROM student;

     

    11、查询符合条件的记录行

      SELECT sid,stuName,sex,score,birthday FROM student WHERE sid=2;

      #判断条件 < >  <=   >=   !=

     

     

     

    #(1)设置编码方式

    SET NAMES UTF8;

    #(2)试着删除数据库

    DROP DATABASE IF EXISTS ibm;

    #(3)创建数据库-ibm,指定保存数据所用编码方式

    CREATE DATABASE ibm CHARSET=UTF8;

    #(4)开始使用数据库-ibm

    USE ibm;

     

    #(5)创建一个部门表-dept(did,dname,location)

    CREATE TABLE dept(

      did INT PRIMARY KEY,

      dname VARCHAR(32),

      location VARCHAR(8)

    );

    #(6)插入三个部门记录行,10-....   20-....   30-....

    INSERT INTO dept VALUES('10','市场部','北京');

    INSERT INTO dept VALUES('20','运营部','青岛');

    INSERT INTO dept VALUES('30','市场部','青岛');

     

    #(7)创建一个员工表-emp(eid,ename,salary,hireDate,isOnDuty,deptId )

    CREATE TABLE emp(

      eid INT PRIMARY KEY AUTO_INCREMENT,

      ename VARCHAR(32),

      salary FLOAT(8,2), #999999.99

      hireDate DATE,

      isOnDuty BOOLEAN,

      deptId INT

    );

    #(8)为每个部门插入两个员工记录

    INSERT INTO emp VALUES(

      NULL,'Tom','5000','2010-5-1','1','30'

    );

    INSERT INTO emp VALUES(

      NULL,'Mary','5500','2010-5-2','1','30'

    );

    INSERT INTO emp VALUES(

      NULL,'Joe','6000','2010-5-3','0','10'

    );

    INSERT INTO emp VALUES(

      NULL,'King','8000','2010-5-10','1','10'

    );

    INSERT INTO emp VALUES(

      NULL,'Scott','7000','2009-1-1','0','20'

    );

    INSERT INTO emp VALUES(

      NULL,'Kate','7500','2009-1-2','0','20'

    );

     #删除10号部门及其下的所有员工

    DELETE FROM dept WHERE did=10;

    DELETE FROM emp WHERE deptId=10;

     

    #30号部门编号改为300号,记得修改员工表

    UPDATE dept SET did=300 WHERE did=30;

    UPDATE emp SET deptId=300 WHERE deptId=30;

     

    #(9)查询出所有的部门信息

    SELECT did,dname,location FROM dept;

    #(10)查询出运营部的编号

    #SELECT did FROM dept WHERE dname='运营部';

    #(11)查询出所有的员工信息

    SELECT * FROM emp;

    #(12)查询出20号部门的所有的员工信息

    #SELECT * FROM emp WHERE deptId=20;

    #(12)查询出运营部的所有员工信息——查询嵌套

    /*SELECT *

    FROM emp WHERE deptId=(

      SELECT did FROM dept WHERE dname='运营部'

    );*/

     

     

     

     

     

     

  • 相关阅读:
    随笔(二十三)
    随笔(二十二)
    随笔(二十一)
    Python3——2019年全国大学生计算二级考试
    IP组播-PIM协议
    PIM-DM实验
    组播基础原理——IGMP
    路由器反射与联盟
    路由过滤&路由引入实验练习
    有道云免会员更换背景图
  • 原文地址:https://www.cnblogs.com/shuimuDT/p/6017482.html
Copyright © 2011-2022 走看看