zoukankan      html  css  js  c++  java
  • MYSQL<一>

      1 -- ########## 01、数据库概述 ##########
      2 -- 1、信息:现实世界中各种可以接触到的东西
      3 -- 2、数据:信息在计算机世界中的映射(反映)
      4 
      5 -- Java中可以把数据存储在内存中的各种容器里,但是电脑掉电后(或程序关闭后),存储在内存中的这些数据就被擦除掉了
      6 
      7 -- 为了解决数据持久化的问题,人类提出了各种解决方案,比如:结绳记事、文字出现(记在石头上、乌龟壳上、竹简上、纸上)、计算机的使用(单个文件、文件系统、数据库)
      8 
      9 -- 解决的核心问题:
     10 -- 1、数据的持久化问题(比如:使用头脑记忆会忘记)
     11 -- 2、大量数据的管理问题
     12 
     13 -- 数据库(DataBase)是按照数据结构来进行组织、存储和管理数据的仓库
     14 
     15 -- 数据库特点:
     16 -- 1、实现数据共享
     17 -- 2、减少数据的冗余
     18 -- 3、保证数据的独立性
     19 -- 4、实现数据的集中控制
     20 -- 5、数据的完整性和一致性
     21 -- 6、数据的故障修复
     22 
     23 -- 数据库的分类(依据数据类型 和 发展历史)
     24 -- 1、层次型数据模型    ----->  层次型数据库
     25 -- 2、网状型数据模型    ----->  网状型数据库
     26 -- 3、关系型数据模型    ----->  关系型数据库(理论依据:关系代数)
     27 
     28 -- 主流数据库:
     29 -- 关系型数据库:MySQL(甲骨文公司)、Oracle(甲骨文公司)、SQLServer(微软)、DB2(IBM)
     30 -- 非关系型数据库(NoSQL):Mongodb、HBase、Cassandra等等
     31 
     32 -- MySQL数据库:
     33 -- 特点:体积小、功能比较强大、开源免费(企业特别看重)、应用广泛
     34 -- 国内互联网三巨头BAT:都有自己针对MySQL的定制版本
     35 
     36 -- MySQL数据库引擎:早期MySQL数据库默认引擎使用MyISAM引擎,较新的版本默认引擎改为使用InnoDB引擎
     37 -- 1、MyISAM引擎:查询和增删速度较快,但是不支持事务
     38 -- 2、InnoDB引擎:支持事务,是作为关系型数据库MySQL的首选引擎
     39 
     40 -- MySQL数据库环境的搭建:
     41 -- 1、安装
     42 -- 2、设置
     43 -- 3、查看MySQL服务是否开启,输入命令:services.msc
     44 -- 4、在命令行窗口输入:mysql -uroot -p设置的密码
     45 -- 如果看见Welcome to MySQL monitor...字样,说明安装和配置均成功
     46 
     47 -- ########## 02、MySQL数据库语法 ##########
     48 -- MySQL数据库语法
     49 -- MySQL编码规范:
     50 -- 1、在MySQL中编写的SQL语句均以英文分号;结尾
     51 -- 2、强制要求SQL语句中的关键字使用大写,其他小写
     52 -- 3、命名时,由多个单词组成的命名,多个单词之间使用下划线_连接
     53 
     54 -- SQL语言:结构化查询语言(Structured Query Language)
     55 -- 1、数据定义语言DDL:CREATE、DROP、ALTER、TRUNCATE
     56 -- 2、数据操作语言DML:INSERT、UPDATE、DELETE
     57 -- 3、数据查询语言DQL:SELECT
     58 -- 4、数据控制语言DCL:COMMIT、ROLLBACK
     59 
     60 -- SQL文件:保存为.sql后缀名的文件
     61 -- SQL语句的注释:使用--两个中横线,接上需要注释的内容
     62 
     63 -- 数据定义语言DDL
     64 -- 对于数据库的库的理解:类比超市,超市中有多个区域,分别卖不同的商品,比如:生鲜、水果、肉类等
     65 
     66 -- MySQL数据库中库的概念:database
     67 
     68 -- 查看MySQL数据库中所有的库:(默认有四个库:information_schema、mysql、performance_schema、test)
     69 -- 注意:这四个库,前三个都是和MySQL数据系统有关的库,平时不操作,test这个库是留给我们随意使用的
     70 SHOW DATABASES;
     71 
     72 -- 创建库
     73 CREATE DATABASE 数据库名;
     74 
     75 -- 删除库
     76 DROP DATABASE 数据库名;
     77 
     78 -- 查看MySQL数据库所支持的引擎类型(查看列的结果中Support列,标为YES或DEFAULT默认的都是支持的引擎类型,标为NO是不支持的引擎类型)
     79 SHOW ENGINES g;
     80 
     81 -- 既然MySQL数据库中可以有多个database库,所以使用时,首先需要显式的说明要使用的是哪一个database库
     82 USE 需要使用的数据库名;
     83 
     84 -- 对于数据库的库中的表的理解:类比超市,不同的区域中有若干个货架用来摆放商品
     85 
     86 -- MySQL数据库真的某个库中会有若干个表:table,回想关系型数据库,这些表其实就是关系的体现
     87 -- 表的特征通过字段:field来进行体现
     88 
     89 -- 查看使用的这个库中所有的表
     90 SHOW TABLES;
     91 
     92 -- 创建表
     93 -- CREATE TABLE 表名
     94 -- (
     95 --     字段名1   数据类型,
     96 --     字段名2   数据类型,
     97 --     ...
     98 --     字段名n   数据类型
     99 -- );
    100 
    101 -- 最常用的数据类型
    102 -- INT:整型
    103 -- VARCHAR(长度):字符型
    104 
    105 -- 查看表结构
    106 -- 写法1
    107 DESC 表名;
    108 -- 写法2
    109 DESCRIBE 表名;
    110 
    111 -- 修改表名
    112 ALTER TABLE 旧表名 RENAME 新表名;
    113 
    114 -- 修改表的字段的数据类型
    115 ALTER TABLE 表名 MODIFY 字段名 数据类型;
    116 
    117 -- 修改表的字段名 和 数据类型
    118 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
    119 
    120 -- 添加字段(使用FIRST关键字把需要的字段添加在表结构的最前面,使用AFTER关键字把需要的字段添加在指定字段的后面)
    121 ALTER TABLE 表名 ADD 新字段名 数据类型 FIRST;
    122 ALTER TABLE 表名 ADD 新字段名 数据类型 AFTER 已存在的字段名;
    123 
    124 -- 删除字段
    125 ALTER TABLE 表名 DROP 字段名;
    126 
    127 -- 删除表
    128 DROP TABLE 表名;
    129 
    130 -- ########## 03、MySQL的基本增删改查操作 ##########
    131 -- 使用命令行编码SQL语句,效率低下,考虑使用图形化客户端工具,例如:MySQL Work Bench、Navicat等,经过反复比较,推荐使用SQLyog
    132 
    133 -- 重音符`:在MySQL的SQL语句中使用特殊字符(关键字)时,一般会考虑使用重音符`,键盘位置一般在ESC键下方
    134 
    135 CREATE TABLE userinfo
    136 (
    137     userid INT,
    138     username VARCHAR(10),
    139     `password` VARCHAR(10)
    140 );
    141 
    142 DESC userinfo;
    143 
    144 -- 1、新增数据 INSERT
    145 -- A:完整插入形式:INSERT INTO 表名(字段1, 字段2, ..., 字段n) VALUES(值1, 值2,..., 值n);
    146 INSERT INTO userinfo(userid, username, `password`) VALUES(1, '张三', '123');
    147 -- B:简写插入形式:INSERT INTO 表名 VALUES(值1, 值2,..., 值n);
    148 INSERT INTO userinfo VALUES(2, '李四', '456');
    149 -- C:插入多行形式:
    150 --         早期版本:INSERT INTO 表名 VALUES(值1, 值2,..., 值n);INSERT INTO 表名 VALUES(值11, 值12,..., 值1n);
    151 INSERT INTO userinfo VALUES(3, '王五', '789');
    152 INSERT INTO userinfo VALUES(4, '赵六', '999');
    153 --        后续版本:INSERT INTO 表名 VALUES(值1, 值2,..., 值n), (值11, 值12,..., 值1n);
    154 INSERT INTO userinfo VALUES(5, '小明', '888'), (6, '小红', '777');
    155 
    156 -- 注意:空值 和 空串
    157 -- 空串:'',一对单引号包含的内容
    158 INSERT INTO userinfo VALUES(7, '小张', '');
    159 -- 空值:NULL,特殊值
    160 INSERT INTO userinfo VALUES(8, '小李', NULL);
    161 -- 下句插入的是字符串NULL
    162 INSERT INTO userinfo VALUES(9, '小王', 'NULL');
    163 
    164 -- 2、修改数据 UPDATE
    165 -- A:修改单个字段的值:UPDATE 表名 SET 字段名 = 新值 WHERE 条件子句;(注意:通过WHERE条件限定范围)
    166 UPDATE userinfo SET `password` = '666' WHERE username = '赵六';
    167 UPDATE userinfo SET `password` = '999' WHERE userid = 4;
    168 UPDATE userinfo SET `password` = '666' WHERE username = '赵六' AND userid = 4;
    169 -- B:修改多个字段的值:UPDATE 表名 SET 字段名1 = 新值1, 字段名2 = 新值2, ..., 字段名n = 新值n WHERE 条件子句;(注意:特别注意SET后多个字段赋值之间使用的是英文逗号)
    170 UPDATE userinfo SET username = '赵云', `password` = '999' WHERE userid = 4;
    171 UPDATE userinfo SET username = '赵六', `password` = '666' WHERE username = '赵云';
    172 UPDATE userinfo SET username = '赵云', `password` = '999' WHERE username = '赵六' AND userid = 4;
    173 
    174 -- 3、删除数据 DELETE    TRUNCATE
    175 -- A:删除满足条件的数据:DELETE FROM 表名 WHERE 条件子句;(注意:通过WHERE条件限定范围)
    176 DELETE FROM userinfo WHERE `password` = '777';
    177 -- B:删除全部数据:
    178 -- 写法1:不使用WHERE子句的DELETE:DELETE FROM 表名;
    179 DELETE FROM userinfo;
    180 -- 写法2:使用TRUNCATE TABLE 表名;(注意:TRUNCATE常常翻译为截断和数据库的表的数据内容的联系)
    181 TRUNCATE TABLE userinfo;
    182 
    183 -- 最简单的查询
    184 SELECT * FROM userinfo;
  • 相关阅读:
    Struts2(一)
    MVC初识
    Ajax简述
    策略模式(Strategy)简介
    代理(Proxy)模式简介
    简单工厂模式--工厂方法模式(简介)
    设计模式简介
    面象对象设计原则简介
    Java从零开始学四十一(反射简述二)
    Hibernate(十五)注解
  • 原文地址:https://www.cnblogs.com/java-le/p/6443399.html
Copyright © 2011-2022 走看看