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='运营部'

);*/

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/shuimuDT/p/6017482.html