MySQL
practicePLUS
你的目标到底是什么
展开
-
第一章:初涉MySQL
一:SQL的安装和配置安装和配置就不写了。二:启动和停止SQL服务除了在“服务”里面设置,命令行有一条专门用于开启/关闭服务的指令:net start/stop 服务名 用这条指令要获得管理员权限。三:MySQL的登陆和退出由于MySQL的bin目录在PATH环境变量中,所以我们可以直接在命令行中输入mysql打开数据库(没有参数只是“游客”)。下面是mysql常用的参数-V :输出mysql版本...转载 2018-06-30 21:27:07 · 148 阅读 · 0 评论 -
第四章 第七节:多表更新之一步到位(CREATE....SELECT)
创建数据表的同时将查询到的数据写入到表中CREATE TABLE [IF NOT EXISTS] tbl_name[(create_definition,...)]select_statementgoods表中有品牌的字段,我们单独存放:CREATE TABLE goods_brands(brand_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,b...转载 2018-06-30 21:31:05 · 171 阅读 · 0 评论 -
第四章 第八节:连接与 多表连接
goods表连接goods_cate和goods_brandsSELECT id,name,brand,cate,price FROM goods AS gINNER JOIN goods_cate AS c ON g.cate = c.cate_name INNER JOIN goods_brand AS b ON g.brand = b.brand_name\G;转载 2018-06-30 21:31:13 · 130 阅读 · 0 评论 -
第四章 第八节:无限级分类表设计
无限级分类表设计 实际上我们在开发过程中,就拿商品类别来说,它还可以有更多的延伸,我们先来举一个简单的例子,比如图书,他的下面还可以分小说、文学等,在小说下面还可以分为言情小说、科幻小说等,还可以再往下一级一级继续分,那么这种分类就属于无限极分类,那么无限极分类表该如何去设计,理论上说我们可以设计很多张表,但是随着分类的逐步增多,表的数目就会越来越多,所以无限极分类表往往采用另外一种形式。 ...转载 2018-06-30 21:31:23 · 342 阅读 · 0 评论 -
第四章 第九节:多表删除
多表删除的语法结构DELETE tbl_name[.*] [,tbl_name[.*]]…FROM table_references[WHERE where_condition] 我们还以商品表为例,我们再来查看一下表里的记录,我们输入SELECT * FROM tdb_goods\G; 那么我现在要删除掉重复的记录并保留id号最小的记录,我该怎么写呢? 实际上这也是通过多表来实现的,...转载 2018-06-30 21:31:45 · 133 阅读 · 0 评论 -
第五章 第一节:字符函数
CONCAT() 字符连接CONCAT_WS() 使用指定的分隔符进行连接 连接HELLO和MYSQL:SELECT CONCAT('HELLO','MYSQL');HELLO 和MYSQL中间加一个@:SELECT CONCAT('HELLO','@','MYSQL');连接test表中的first_name和last_name为fullname:SELECT CONCAT(first_name...转载 2018-06-30 21:32:04 · 124 阅读 · 0 评论 -
第五章 第二节:数值运算符和函数
+-*/CEIL() 进一取整SELECT CEIL(3.01);4DIV 整数除法SELECT 3/4;0.75SELECT 3 DIV 4;0FLOOR()舍一取证SELECT FLOOR(3.01);3MOD 取余数(取摩)SELECT 5%3;2SELECT 5 MOD 3;2SELECT 5.3 MOD 3;2.3POWER()幂运算SELECT POWER(3,3);27ROUND(...转载 2018-06-30 21:32:12 · 109 阅读 · 0 评论 -
第五章 第三节:比较运算符与函数
[NOT] BETWEEN...AND..【不】在范围之内SELECT 15 BETWEEN 10 AND 30;1SELECT 15 NOT BETWEEN 10 AND 30;0[NOT]IN()【不】在列出的范围内SELECT 10 IN(5,10,20,30);1SELECT 10 NOT IN(5,10,20,30);0IS [NOT] NULL【不】为空SELECT NULL IS ...转载 2018-06-30 21:32:19 · 102 阅读 · 0 评论 -
第五章 第四节:日期时间函数
NOW()当前日期和时间SELECT NOW();2017-08-30 21:47:20CURDATE()当前日期SELECT CURDATE();2017-08-30CURTIME()当前时间SELECT CURTIME();21:48:10DATE_ADD()时间变化,时间可以增加,负值时减少SELECT DATE_ADD('2017-08-30',INTERVAL 365 DAY);2018...转载 2018-06-30 21:32:29 · 105 阅读 · 0 评论 -
第五章 第五节:信息函数&&聚合函数&&加密函数
信息函数:CONNECTION_ID()连接IDDATABASE()当前数据库LAST_INSERT_ID()最后插入记录,写入多条时,返回前面的一个编号。USER()当前用户VERSION()版本信息---------------------------------------------------------------------------------------------------...转载 2018-06-30 21:32:36 · 205 阅读 · 0 评论 -
第六章: 自定义函数
自定义函数用户自定义函数(user-defined function,UDF)是一种对MySQL的扩展的途径,其用法与内置函数相同两个必要的条件:1.参数,可有可无2.返回值函数可以返回任意类型的值,同样可以接收这些类型的参数,参数数目理论为1024个。创建一个自定义函数CREATE FUNCTION function_nameRETURNS{STRING|INTEGER|REAL|DECIMAL...转载 2018-06-30 21:32:43 · 240 阅读 · 0 评论 -
第七章:存储过程
存储过程是SQL语句和控制语句饿预编译集合,以一个名称 存储并作为一个单元处理存储过程的优点1.增强了SQL语句的功能和灵活性2.实现了较快的执行速度3.减少了网络流量创建存储过程CREATE[DEFINER = {user|CURRENT_USER}]PROCEDDURE sp_name([proc_parameter[,...])[characteristic ...] routine_bod...转载 2018-06-30 21:32:49 · 155 阅读 · 0 评论 -
第八章 相关知识
存储引擎简介MySQL将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎。每一种存储引擎使用不同的存储机制、索引技巧。锁定水平,最终提供广泛且不同的功能存储引擎MyISAMInnoDBMemoryCSVArchive并发处理并发控制:当多个连接对记录进行修改是保证数据的一致性和完整性锁共享锁(读锁)排它锁(写锁)锁颗粒表锁,是一种开销最小的锁策略行锁,是一种开销最大的锁策略事务处理事务...转载 2018-06-30 21:32:56 · 105 阅读 · 0 评论 -
第四章 第六节:多表更新
多表更新UPDATE table_references //参照关系SET col_name1={expr1|DEFAULT}//表达式或默认值[,col_name2={expr2|DEFAULT}]...[WHERE where_condition]//where条件连接两张表的参照关系table_reference{[INNER|CROSS] JOIN |{LEFT|RIGHT}[OUTER]...转载 2018-06-30 21:30:48 · 130 阅读 · 0 评论 -
第四章 第五节:INSERT...SELECT
现有一张goods表,有id,name,price,cate,brand等属性,现要管理以cate分类的表,需要从goods表中查询数据然后写进goods_cates表中。CREATE TABLE IF NOT EXISTS goods_cates(->cate_id SMALLINT UNSIGNED PRIMARY KEY AUTO_CRECTMENT,->cate_name VA...转载 2018-06-30 21:30:40 · 248 阅读 · 0 评论 -
第二章 第一节:数据库数据类型,第二节,操作数据库
MySQL中的数据类型日期和时间数据类型MySQL数据类型含义date3字节,日期,格式:2014-09-18time3字节,时间,格式:08:42:30datetime8字节,日期时间,格式:2014-09-18 08:42:30timestamp4字节,自动存储记录修改的时间year1字节,年份数值数据类型整型MySQL数据类型含义(有符号)tinyint1字节,范围(-128~127)sma...转载 2018-06-30 21:27:20 · 150 阅读 · 0 评论 -
第二章 第三节 数值的空和非空(NULL / NOT NULL)
在新建表的时候,可以设置表内列的值是否为空,使用NULL 和NOT NULLeg:创建表tb2,设置属性name 不允许为空,age 无符号可以为空CREATE TABKE tb2(name VARCHAR(20) NOT NULL,age TINYINT UNSIGNED NULL);显示一下tb2的列,SHOW COLUMNS FROM tb2;+----------+------------...转载 2018-06-30 21:27:38 · 202 阅读 · 0 评论 -
第二章 第四节 主键约束和唯一约束
1、自动编号(AUTO_INCREMENT),必须与主键组合使用设置为主键的列被AUTO_INCREMENT修饰后,默认情况下,起始值为1,增量也为1。2、主键(PRIMARY KEY)每张数据表只能存在一个主键主键保证记录的唯一性主键自动为NOT NULL3、AUTO_INCREMENT必须与主键一起使用,主键不一定必须与AUTO_INCREMENT一起使用。举例:创建表t3,设置主键id,无符...转载 2018-06-30 21:27:57 · 278 阅读 · 0 评论 -
第二章 第五节:默认约束DEFAULT
默认约束:DEFAULT默认值当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。使用DEFAULT定义某字段为默认约束:插入数据验证默认约束:转载 2018-06-30 21:28:10 · 350 阅读 · 0 评论 -
第三章 第一节:外键约束——FOREIGN
外键约束的要求1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;外键的好处:可以使得两张...转载 2018-06-30 21:28:21 · 587 阅读 · 0 评论 -
第三章 第二节:修改数据表——ALTER (一)ADD、DROP
添加单列ALTER TABLE tb_name ADD col_name columns_definition [FIRST|AFTER clo_name]向表中添加一列,选择放在最前面还是放在某列之后,不选默认最后举例:在表users1中添加一列,先显示表中内容mysql> SHOW COLUMNS FROM users1;+----------+--------------------...转载 2018-06-30 21:28:32 · 348 阅读 · 0 评论 -
第三章 第二节:修改数据表——ALTER(二) 修改约束
增加主键ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_of_name,...);增加表users2,属性id,username,pid,agemysql> CREATE TABLE users2( ->id TINYINT UNSIGNED NOT NULL, -&...转载 2018-06-30 21:28:41 · 245 阅读 · 0 评论 -
第三章 第二节:修改数据表——ALTER(三) 删除约束
删除主键ALTER TABLE tb_name DROP PRIMARY KEY;删除users2中的id主键约束ALTER TABLE users2 DROP PRIMARY KEY;删除唯一约束ALTER TABLE users2 DROP UNIQUE [INDEX|KEY] index_name;删除users2中的username的唯一约束首先要知道约束的名字,而不是字段的名字!!!!!...转载 2018-06-30 21:28:53 · 166 阅读 · 0 评论 -
第三章 第二节:修改数据表——ALTER(四) 修改列定义和数据表更名
修改列定义:字段名没问题,类型有问题或者位置有问题ALTER TABLE tb_name MODIFY [COLUMN] col_name column_definition [FRIST|AFTER col_name]将id字段放到第一个位置上ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;修改列名称:功能上大于MOD...转载 2018-06-30 21:29:14 · 309 阅读 · 0 评论 -
第四章 第一节:插入数据INSERT
插入数据:INSERTINSERT [INTO] table_name (列1, 列2,...) VALUES (值1, 值2,....),()....;创建一个表users,有一下属性:mysql> CREATE TABLE users( -> int SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, -> username...转载 2018-06-30 21:29:33 · 237 阅读 · 0 评论 -
第四章 第二节:更新和删除 记录 UPDATE DELETE
更新数据记录update 数据表 set 字段名=字段值 where 条件表达式update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式删除数据记录delete from 数据表 where 条件表达式"delete from 数据表" (将数据表所有记录删除)...转载 2018-06-30 21:29:47 · 162 阅读 · 0 评论 -
第四章 第三节:查询SELECT
数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"sql="selec...转载 2018-06-30 21:30:02 · 164 阅读 · 0 评论 -
第四章 第四节:数据分组、子查询 (Subquery)
子查询:出现在其他SQL语句内的SELECT子句SELECT * FROM t1 WHERE col1=(SELECT COL2 FROM t2);1、子查询必须出现在查询内部,并且必须始终出现在圆括号内部2、子查询可以包括多个关键字或者条件,DISTINCT , GROUP BY ,ORDER BY, LIMIT ,函数等。3、子查询的外层查询可以是:SELECT ,INSERT ,UPDA...转载 2018-06-30 21:30:26 · 2286 阅读 · 0 评论