首页 > 代码库 > MYSQL<一>
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;
MYSQL<一>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。