前语

在日常开发中,一些不常用且又比较根底的常识,过了一段时间之后,总是简单忘记或许变得有点不置可否。本篇首要记载一些关于MySQL数据库比较根底的常识,以便日后快速检查。

SQL指令

SQL指令分能够分为四组:DDLDMLDjava编译器CLTCL。四组中包含的指令别离如下

零星的MySQL根底总是记不住?看这一篇如何解救你

D分页符怎样删去DL

DDhttpwatchL是数据界说言语(Data Definition Language)的简称,它处理数据库schemas和描绘数据应如何驻留在数据库中。

CREATE:创建数据库及其政策(如表,索引,视图mysql密码忘记了怎样办,存储进程,函数和触发器)
ALTER:改变现有数据库的结构
DROP:从数据库中删去政策
TRUNCATE:从分页查询表中删去全部记载,包含为记载分配的全部空间都将被删去
COMMENT:添加注释
RENAME:重命名政策

常用指令如下:

# 建表
CREAThttp 404E TABLE sicimike  (
id int(4) primary kehttp协议y auto_increment COMMENT '主键ID',
name varchar(10) unique,
age int(3) default 0,
identity_card varchar(18)
# PRIMARY KEY (id) // 也能够经httpclient过这种方法设置主键
# UNIQUE KEY (name) // 也能够经过分页符怎样设置这种方法设置唯一键
# key/http 302index (identjava怎样读ity_card, col1...) // 也能够经过这种办MySQL法创建索引
) ENGI分页符和分节符的差异NE = InnoDB;
# 设置主键
alter table sicimike add primary key(id);
# 删http://192.168.1.1登录去主键
alter table sicimike drop primary key;
# 设置java游戏唯一键
alter table sicimike add unique key(column_name);
# 删去唯一键
alter table sicimike drop index column_njava编译器ame;
# 创产品介绍立索引
alter table sicimike add [unique/fulltext/spatia产品批号是生产日期吗l] index/key index_name (identityhttps和http的差异_card[(len)] [asc/desc])[using btree/hash]
create [unique/fulltext/spatial] index index_name on sicimike(identity_card[(len)] [asc/desc])[using btree/hash]
example: alter table sicimike add index idx_na(name, age);
# 删去索引
alter table sicimike drop key/index identity_ca分页怎样变成一页rd;
drop index indjava言语ex_name on sicimike;
# 检查索引
show index from sicimike;
# 检查列
desc sicimike;
# 新增列httpclient
alter table sicimike ajava环境变量装备dd column columnjava编译器_产品密钥在哪里能找到name varchar(30);
# 删去列
alter table sicimike drop cjava怎样读olumn column_name;
# 修改列名
alter table sicimike change产品密钥在哪里能找到 column_name new_name varchar(30);
# 修改列特征
alter table sicimike modmysql怎样读ify column_name varcmysql数据库命令大全har(22);
# 检查建表信息
show create table sicimike;
# 添加表注释
alte产品领域的偏好r table sicimike chttp 404omment '表mysql优化注释';
# 添加字段注释
alter table sicimike modify column column_name varchar(10) comment '名字';
—————HTTP———————————
版权声明:本文为CSDN博主「Sicimike」的原http://www.baidu.com创文分页符和分节符的差异章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.http署理csdn.net/Baisitao_/article/details/104714764

DML

DML是数据操作言语(Data Maniphttp 302ulation Language)的简称,包含最常见的SQL句子,例如SELECTINSERTUPDATEDELETE等,它用于存储修改检索删去数据库中的数据。

  • 分页

    -- 查询从第11条数据开始的接连5条数据
    select * from sicimijavascriptke limit 10, 5
    
  • group by

    默许情java言语况下,MySQL中的分组(group by)句子,不要求select回来的列,有必要是分组的列或许是一个聚合函数。假定select查询的列不是产品密钥在哪里能找到mysql安装组的列,也不是聚合函数,则会回来该分组中榜首条记载的数据。对比下面两条SQL句子,第二条SQL句子中,cname既不是分组的列,mysql数据库命令大全也不是以聚合函数的方法出现。所以在limjava言语ing这个分组中,cna产品批号是生产日期吗me取的是榜首条数据。

    mysql> select * from c;
    +-----+-------+----分页怎样变成一页------+
    | CNO | CNAME | CTEACHER |
    +-----+-------+----------+
    |   1 | 数学  | liming   |
    |   2 | 语文  | liming   |
    |   3 | 前史  | xueyou   |
    |   4 |分页符快捷键 物理  | guorong  |
    |   5 | 化学  | liming   |
    +-----+----http://www.baidu.com---+----------+
    5 rows ijava言语n set (0.java言语00 sec)
    mysql> selec产品设计专业t cteacher, count(cteacher), cname from c group by cteacher;
    +----------+-----------------+-------+
    | cteacher | count(cteacher) | cname |
    +----java游戏------+-----------------+-------+
    | guorong  |               1 | 物理  |
    | liming   |               3 | 数产品生命周期学  |
    | xueyou   |               1 | 前http 404|
    +----------+---HTTP--------------+-------+
    3 rows ihttpclientn set (0.00 sec)
    ————————————————
    
  • having
    having要害字用于对分组后的数据进行选择,功用相当于分组之前的where,不过要求更严峻。过滤条件要么是一个聚合函数( … having count(x) &gt分页符快捷键; 1),要么是出产品司理现在select后边的列(select col1, col2 … group by x havi产品设计专业ng col1 > 1)

  • 多表更新

    - update tableA a inMySQLner join tableB b on a.x分页符怎样参加xx = b.xxx set a.col1 = xxx, b.col1 = xxx where ...
    
  • 多表删去

    - delete a, b from tableA a inner join tableB b on a.xxx = b产品生命周期.xxx where a.col1 = xxx and b.col产品生命周期1 = xxx
    

DCL

DCL是数据控制言语(Data产品密钥在哪里能找到 Control Langua产品批号是生产日期吗ge)的简称,它包含诸如GRANT之类的指令,而且首要触及数据库产品质量法系统的权限,权限和其他控件。

  • GRANT :答应用户拜mysql数据库命令大全访数据库的权限

  • REV分页符和分节符的差异OKE:撤消用户使用GRANT指令赋予的拜访权限

TCL

TCL是业务控制言语(Transaction Control Language)的简称,用于处理数据库中的业务

  • COMMIT:提交业务
  • ROLLBACK:在产生任何差错的状况下回滚业务

范式

数据库标准化,又称正规化、标准化,是数据库规划的一系列原产品设计理和技能,以减少数据库中数据冗余,增进数据的一http://www.baidu.com致性。联络模型的发明者埃德加科德最早提出这一概念,并于1970年代初界说了榜首范式、产品介绍第二范式和第三范式的概念,还与Raymond F. Bojava言语yce于1974年一起界说了第三范式的改进范式——BC范式。
在外还包含针对多值依托的第四范式,连接依托的第五范式、DK范式和第六范式。

现在数据库规划最多满意3NF,普遍认为范式过高,尽管具有对数据联络更好的捆绑性,但也导致数据联络表添加而令数据库IO更易繁忙,本来交由数据库处理的联络捆绑现更多在数据库使用程序中完毕。

榜首范式

界说:数据库中的全部字段(列)都是单一特征,不可再分的。这个单一特征由根本的数据类型所构成,java模拟器如整型mysql面试题、浮点型、字符串等。
榜首范式是为了保证列的原子性。

上表不满意榜首范式,其间的地址列是能够再拆分的,能够拆分红省java模拟器、市、区等

第二范式

界说:数据库中的表不存在非要害字段对任一要害字字分页符怎样设置段的部分函数依托
部分函数依托是指存在着组合要害字中的某一要害字决议非要害字的状况
第二范式在满意了javahdxx榜首范式的根底上,消除非主键列对联合主键的部分依托

上面这张表中想要设置主键,只能是产品称谓供货商称谓一起组成联合主键。可是价格分类只依托于产品称谓,供货商电话只依托于供货商称谓,所以上面的表不满意第二范式,能够改成如下方法:
产品mysql优化信息表

供货商信息表

产品-供货商相httpclient关表

第三范式

界说:全部非主键特征都只和候选键分页有相关性,分页符怎样删去也就是说非主键特征之间应该是http://www.baidu.com独立无关的。
第三范式是在满意了第二范式的根底上,消除列与列之间的分页符怎样设置递依托

在上面的表中,产品的分类描绘依托分类,而分类依托产品称谓,而不是分类描绘直接依MySQL产品称谓java言语。这样就形成了传递依托,所以不符合第三范式。能够改成如下方法

产品表

产品分类表

数据库规划时,遵循产品司理范式和反mysql数据库范式一直以来是一个颇受争议的问题。遵循范式对数据联络更好的捆绑性,而且削mysql密码忘记了怎样办减数据冗余,能够java根底常识点更好地保证数据一致性。而反范式则是为了取得更好地java编译器功能。所以范式仍是反范式并没有清晰的标准,合适自己业务场景的才是最好的。

反范式规划时,需求考虑以下几个问题,别离是刺进异常、更新异常和删去异常

  • 刺进异常:假定某个实体跟着另一个实体的存在而存在,即缺少某个实体是无法http署理标明这个实体,那么这个表就存在刺进异常。
  • 更新异常:假定更改表所对应的某个实体实例的单独特征时,需求将多行更新,那么就阐明这个表存MySQL在更新异常
  • 删去异常:假定删去表的产品批号是生产日期吗某一行来标明某实体实例失效时,导致另一个不同实体实例信息丢掉,那么这个表就存在删去异常

以违反第二范式的表为例

假定可乐第二制httpclient造厂这个供货商没有开始供货,表中就不存在java言语第二条记载,也就无法记载供货商的电话,这http://192.168.1.1登录样就存在刺进异常;假定需求把可乐的价格前进,需求更新表中的多条记载,这样Java就存在更新异常;假定删去可乐第二制造厂的供货信息,那么该供货商的电话也就产品设计专业丢掉了,这样就存在删去异常。

一般存在刺进异常的表,都会存在更新异常和删去异常。

产品质量法表纵产品质量法

SQL脚本

# 横表
CREATE TABLE `table_h2z` (
`name` varchar(32) Djava言语EFAULT NULL,
`chhttp://www.baidu.cominese` i分页查询nt(11) DEFAULT NULL,
`ma分页预览怎样封闭th` int(11) DEFAULT NULL,
`english` int(11) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
/*Data fHTTPor tmysql优化he tablehttp协议 `table_h2z` */
insert  into `table_h2z`(`name`,`chinese`,`mjava根底常识点ath`,`english`) values
('mike',45,43,87),
('lily',53,64,88),
('lucy',57,75,75);
# 纵表
CREATE TABL产品批号是生产日期吗E `table_z2h` (
`name` varchar(32) DEFAULT NULL,
`subject` varchar(8) NOT NULL DEFAULT '',
`score` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data forjava怎样读 the table `table_z2h` */
insert  iMySQLnto `table_z2h`(`name`,`subject`,`score`) values
('mike','chi分页预览怎样封闭nese',45)产品批号是生产日期吗,
('lily','chinese',53),
('lucyhttp 302','c分页符怎样删去hinese',57),
('mike','math',43),
('lily','math',64),
('lucy'mysql优化,'math',75),
(mysql安装装备教程'mike','english',87),
('lily','english',88),
('lucy','english',75);

横表转纵表

SELECT NAME, 'chinese' AS `subject`,  chinese AS `score` FROM table_h2z
UNION ALL
SELECT NAME, 'math' AS `subject`,  mathttp署理h AS `score` FROM table_h2z
UNION ALL
SELECT NAME, 'english' AS `subject`, english AS `score` FROM table_h2z

实施作用

+------+---------+-------+
| name | subject | score |
+------+---------+-------+mysql数据库命令大全
| mike | chinese |    45 |
| lily | chttps和http的差异hinese |    53 |
| lucy | chinese |    57 |
| mike | math    |    43 |
| lily |mysql数据库命令大全 math    |    64 |
| lucy | math    |    75 |
| mike | englihttp 404sh |    87 |
| lily | english |    8产品设计8 |
| lucy | english |    75 |
+------+---------+-------+
9 rows in set (0.00 sec)

纵表转横表

SjavascriptELEC分页符T NAME,
SUM(CASE `subject` WHEN 'chinese' THEN sco分页符怎样删去re ELSE 0 END) AS chinese,
SUM(CASE `subject` WHEN 'math' THEN score ELSE 0 END) AS math,
SUM(CASE `subject`分页符和分节符的差异 WHEN 'english'产品密钥在哪里能找到 THEN分页预览怎样封闭 score ELSE 0 END) AS english
FROM table_z2h
GROUP BY NAME

实施作用

+------+---------+------+---------+
| name | chinese | math | english |
+------+---------+-HTTP----mysql怎样读-+---------+
| lily |      53 |   64 |      88 |
| lucy |      57 |   75 |      75 |
| mike |      45 |   43 |      87 |
+------+---http://www.baidu.com------+------+--------java环境变量装备-+
3 rows in set (0.00 sec)

参阅

  • www.w3schools.in/mysql/ddl-d…

作者:Sicimike

来历:blog.csdn.net/Baisitao_/a…

本文首发于大众号:Java版web项目,欢迎重视获取更多精彩内容

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。