-
2021-01-28 00:33:06
--- 每一个班主任会对应多个学生 , 而每个学生只能对应一个班主任
----主表
CREATE TABLEClassCharger(
idTINYINT PRIMARY KEYauto_increment,
nameVARCHAR (20),
ageINT,
is_marriged boolean--show create table ClassCharger: tinyint(1)
);INSERT INTO ClassCharger (name,age,is_marriged) VALUES ("冰冰",12,0),
("丹丹",14,0),
("歪歪",22,0),
("姗姗",20,0),
("小雨",21,0);----子表
CREATE TABLEStudent(
idINT PRIMARY KEYauto_increment,
nameVARCHAR (20),
charger_idTINYINT, --切记:作为外键一定要和关联主键的数据类型保持一致
FOREIGN KEY (charger_id) REFERENCES ClassCharger(id), 关联外建 charger_id字段当前表 到 classcharger表的id字段
--ADD CONSTRAINT charger_fk_stu FOREIGN KEY (charger_id) REFERENCES ClassCharger(id) ##给外建加名字 ADD CONSTARAINT charger_fk_stu 这段是自己加上外键名字
) ENGINE=INNODB;INSERT INTO Student(name,charger_id) VALUES ("alvin1",2),
("alvin2&#
更多相关内容 -
一篇文章,总结MySQL基本操作
2021-02-02 07:30:45MySQL的基本操作可以包括两个方面:MySQL常用语句如高频率使用的增删改查(CRUD)语句和MySQL高级功能,如存储过程,触发器,事务处理等。而这两个方面又可以细分如下:MySQL基本操作总结.pngMySQL常用语句表(或者...MySQL的基本操作可以包括两个方面:MySQL常用语句如高频率使用的增删改查(CRUD)语句和MySQL高级功能,如存储过程,触发器,事务处理等。而这两个方面又可以细分如下:
MySQL基本操作总结.pngMySQL常用语句表(或者数据库)的CRUD
表数据的CRUD,其中表数据查询使用最多,也更复杂。查询可以按照单表还是多表可以分为:单表SELECT查询和多表的联结查询(INNER JOIN, LEFT JOIN, RIGHT JOIN和FULL JOIN)以及组合查询UNION和UNION ALL
SQL语句中各个关键字的执行顺序
MySQL的高级功能存储过程
事务处理
触发器
1. 表(或数据库)操作语句
1.1. 查询表(或数据库)获取所有可用的数据库:SHOW DATABASES;
选择数据库:USE customers;
用于显示数据库服务器的状态信息:SHOW STATUS;
用来显示授权用户的安全权限:SHOW GRANTS;
用来显示数据库服务器或警告信息:SHOW ERRORS 或者 SHOW WARNINGS;
用于显示创建数据库时的创建语句:SHOW CREATE DATABASE customers;
用于显示创建表时的创建语句:SHOW CREATE TABLE customers;
获取
-
mysql常用命令大全
2021-01-19 15:31:49一、连接MYSQL。格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以...一、连接MYSQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、连接到本机上的MYSQL。
首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码.
如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>
2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)
4:返回上一级:quit(回车)
二、修改密码。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令
mysqladmin -u root -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、再将root的密码改为djg345。
mysqladmin -u root -p ab12 password djg345
三、增加新用户。 (注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见2。
2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),
这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
下篇我是MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。
二、显示命令
1、显示当前数据库服务器中的数据库列表:
mysql> SHOW DATABASES;
注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示数据库中的数据表:
mysql> USE 库名; mysql> SHOW TABLES;
3、显示数据表的结构:
mysql> DESCRIBE 表名;
4、建立数据库:
mysql> CREATE DATABASE 库名;
5、建立数据表:
mysql> USE 库名; mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
6、删除数据库:
mysql> DROP DATABASE 库名;
7、删除数据表:
mysql> DROP TABLE 表名;
8、将表中记录清空:
mysql> DELETE FROM 表名;
9、显示表中的记录:
mysql> SELECT * FROM 表名;
10、往表中插入记录:
mysql> INSERT INTO 表名 VALUES ("hyq","M");
11、更新表中数据:
mysql-> UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';
12、用文本方式将数据装入数据表中:
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE 表名;
13、导入.sql文件命令: mysql> USE 数据库名; mysql> SOURCE d:/mysql.sql;
14、命令行修改root密码:
mysql> UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root'; mysql> FLUSH PRIVILEGES; 注意用此种方法修改密码时别忘了 password=password('新密码') 如果直接用 password='新密码',下次登录时会出现问题以至于登录不进去,因为此密码没用经过password()函数处理,这样写入到user表中的密码系统不能识别就会显示用户名和密码错误的信息。 如果在修改密码的过程中出现问题以至于没有一个用户可以进入mysql则可以用以下的方法重新修改用户名和密码: bin>mysqld --skip-grant-tables;然后再在 另外一个bin>mysql 便可直接进入mysql ,进入后便修改相关数据。
15、显示use的数据库名:
mysql> SELECT DATABASE();
16、显示当前的user:
mysql> SELECT USER();
三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER ( id int(3) auto_increment not null primary key, name char(10) not null, address varchar(50) default '深圳', year date ); //建表结束
//以下为插入字段 insert into teacher values('','allen','笑了一中','1976-10-10'); insert into teacher values('','jack','小脸二中','1975-12-23');
如果你在mysql提示符键入上面的命令也可以,但不方便调试。
(1)你可以将以上命令原样写入一个文本文件中,假设为school.sql,然后复制到c:\\下,并在DOS状态进入目录\\mysql\\bin,然后键入以下命令:
mysql -uroot -p密码 < c:\\school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
(2)或者进入命令行后使用 mysql> source c:\\school.sql; 也可以将school.sql文件导入数据库中。
四、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\\n来代替.例:
3 rose 小脸二中 1976-10-10
4 mike 小脸一中 1975-12-23
假设你把这两组数据存为school.txt文件,放在c盘根目录下。
2、数据传入命令 load data local infile "c:\\school.txt" into table 表名;
注意:你最好将文件复制到\\mysql\\bin目录下,并且要先用use命令打表所在的库。
五、备份数据库:(命令在DOS的\\mysql\\bin目录下执行)
1.导出整个数据库
导出文件默认是存在mysql\bin目录下
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql
3.导出一个数据库结构
mysqldump -u user_name -p -d --add-drop-table database_name > outfile_name.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.带语言参数导出
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt database_name > outfile_name.sql
-
MySQL基础 — 常用命令
2021-01-19 17:25:30一、连接MySQL格式:mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MySQ:首先在打开cmd窗口,输入mysql -uroot -p ,然后空格进入MySQL控制台,MySQL的提示符是: mysql>。mysql -uroot -p /*如果刚...一、连接MySQL
格式:mysql -h主机地址 -u用户名 -p用户密码
1、连接到本机上的MySQ:
首先在打开cmd窗口,输入mysql -uroot -p ,然后空格进入MySQL控制台,MySQL的提示符是: mysql>。mysql -uroot -p /*如果刚安装好MySQL,root是没有密码的*/
2、连接到远程主机上的MySQL:
假设远程主机的IP为:192.168.206.100,用户名为root,密码为12345678。mysql> mysql -h192.168.206.100 -uroot -p12345678; /*u与root可以不加空格*/
3、退出MySQL命令: exit 或 quit(回车):mysql> exit/quit;
二、MySQL--修改密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、root密码为空时,设置root密码:mysql> mysqladmin -uroot newpassword; -- 因为开始时root没有密码,所以-p旧密码 可以省略
2、使用 sqladmin 命令修改密码:mysql> mysqladmin -uroot -p123456 password 12345678;
3、使用set passsword命令修改密码
-
返回上一层常用方法
2017-03-25 17:25:14两种都可返回到上一级,go(number)为-1时返回上一级,同理为1时表示前进;back()返回,没有参数,注意:他们之间的区别就在于back()会刷新页面,而go()不会刷新页面;另外当使用javascript的history.go(-1)... -
MYSQL插入一条数据并返回自增id
2019-09-09 14:04:104.业务层接收返回的id参数: Integer id = (Integer) params.get(“id”); 也就是返回的id也在请求参数params里面,这样就可以了。 5.SELECT LAST_INSERT_ID() AS id的使用也可以用别的如: @@identity 但是... -
MySQL原理与实践(一):一条select语句引出Server层和存储引擎层
2019-05-25 18:44:37(尊重劳动成果,转载请注明出处:https://yangwenqiang.blog.csdn.net/article/details/90544530冷血...MySQL原理与实践(一):一条select语句引出Server层和存储引擎层 MySQL原理与实践(二):一条update语句引... -
mysql实现无限层次父子关系查询,并返回当前查询level层级
2020-07-30 17:02:15一、创建表、添加测试数据 create table CS_INTCTL_ASSESS_ITEM_GATHER ( id int(11) PRIMARY key auto_increment, assess_id VARCHAR(36), assess_parent_id VARCHAR(36), name VARCHAR(256) ) insert into cs... -
mybatis insert 数据到mysql数据库中,并返回新增一条数据的id
2022-03-16 11:02:58Service层实现类的写法 /** * 返回类型为Integer的意思是返回增加了多少条,并不是返回的id值 */ @Override public Integer insert(AppTaskInformationEntity appTask) { Integer integer = ... -
1 mysql底层解析——连接层,包括连接、解析、缓存、引擎、存储等
2019-08-21 15:52:51事实上,mysql能有今日的成就,必然不是靠个索引就吃饭的。更何况很多情况下,索引什么的应用层面也解决不了实际问题。那么,我们就需要深入到mysql内部去一探究竟。 分层架构 大多数数据库都是这样的结构,... -
mysql排序后返回序号
2019-06-25 10:34:09mysql中排序后根据排序的内容显示序号,需要在子查询中select @rownum:=0,只有外层的@rownum并不会起作用。 select a.num, a.content, t.tagname, @rownum:=@rownum+1 as sortorder from (select count(*) as ... -
mysql5.7性能提升一百倍调优宝典
2020-05-06 10:07:36全文中一共有常用的(事实上你如果花1-2周阅读、理解、自己动手设一下后是需要这么多参数的)76个参数,我是按照: 每一个参数干吗? 在某些典型硬件配置下的db上参数该设多少? 设会怎么样? 不设会怎么样? ... -
mysql索引详解
2021-07-07 21:40:09一、MySQL三层逻辑架构 MySQL的存储引擎架构将查询处理与数据的存储/提取相分离。下面是MySQL的逻辑架构图: 一、对比InnoDB与MyISAM 1、 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件。分别为:表定义... -
MySQL优化系列18-应用层优化
2021-07-21 14:07:37缓存4.1 应用层以下的缓存4.2 应用层缓存4.3 缓存控制策略五.MySQL的替代品参考: 一.概述 如果在提高MySQL的性能上花费太多时间,容易使视野局限于MySQL本身,而忽略了用户体验。回过头来看,也许可以意识到,或许... -
mybatis springboot Mysql新增一条数据 返回主键
2019-07-13 12:26:08mybatis中需要加两个参数 INSERT INTO `channel_list`(ChanneltypeID,CorporateName,introduce,ContactName,...不能直接返回新增方法,直接返回的是受影响的行数,需要返回当前参数中的 实体中的 主键字段名 -
MySQL入门基础一-Mysql的基础体系架构
2021-12-19 15:45:58MySQL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MySQL,实在很不靠谱,于是Mysql诞生出了很多分支和相关替代产品 -
原来一条select语句在MySQL是这样执行的《死磕MySQL系列 一》
2021-07-06 00:35:35原来一条select语句在MySQL是这样执行的 -
MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)
2021-03-02 16:15:38文章目录前言一、SQL简述1.SQL的概述2.SQL的优点3.SQL的分类二、数据库的三大范式三、数据库的数据类型1.整数类型2.浮点数类型和定点数类型九、MySQL数据表简单查询1.简单查询概述2.查询所有字段(方法不唯一只是... -
Mysql三:一条SQL在MySQL中是如何执行的
2022-04-25 12:36:44主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数 (如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、... -
Mysql 执行一条语句的过程
2022-01-26 18:07:12负责管理客户端的连接,比如mysql -u root -p,就是客户端与连接器之间完成的,连接分为长连接和短连接,建议使用长连接,因为建立连接是相对复杂的一个过程。但是长连接也有优化的空间,即长连接过多,随着执行大的... -
MySQL复习(一):MySQL基础架构、InnoDB体系架构、MySQL日志、MySQL索引
2020-01-27 10:28:28Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、... -
半个月时间把MySQL重新巩固了一遍,梳理了一篇几万字 “超硬核” 文章!
2021-07-22 16:41:42MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System:关系数据库管理系统) 应用软件之一。 -
MySQL数据库面试题(2020最新版)
2020-03-10 17:20:40数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4... -
MySQL 性能优化一
2021-12-06 23:39:30硬件和OS调优 、MySql调优 、架构优化。对架构的优化对mysql的性能优化收益最高。本文主要讨论架构优化。 架构优化 在系统设计时首先需要充分考虑业务的实际情况,例如排行榜的相关业务可以考虑迁移到redis中... -
MySQL中:一条update语句是怎样执行的
2022-03-10 21:04:35上一篇文章说完MySQL的事务和锁了,这次来详细介绍一下在MySQL中一条更新语句的详细执行流程 (本文无特殊说明均是采用Innodb存储引擎)。 前期准备 首先创建一张表,然后插入三条数据: CREATE TABLE T( ID int(11) ... -
为什么要在MVC三层架构上再加一层Manager层?
2021-10-21 12:48:18它将整体的系统分成了 Model(模型),View(视图)和 Controller(控制器)三个层次,也就是将用户视图和业务处理隔离开,并且通过控制器连接起来,很好地实现了表现和逻辑的解耦,是一种标准的软件分层架构。 -
MySQL统计总数就用count,别花里胡哨的《死磕MySQL系列 十》
2021-11-06 23:41:03一、原来一条select语句在MySQL是这样执行的《死磕MySQL系列 一》 二、一生挚友redo log、binlog《死磕MySQL系列 二》 有一个问题是这样的统计数据总数用count(*)、count(主键ID)、count(字段)、count(1)那个效率高... -
一条sql语句在mysql中的执行过程
2022-03-11 10:03:26本文详细的介绍了一条sql语句在mysql中执行的全过程,其中详细的介绍了Server层的各个组件的作用以及承担的角色等。 -
MySQL最左匹配原则,道儿上兄弟都得知道的原则
2020-09-11 19:31:00目录一、最左匹配原则的原理二、违背最左原则导致索引失效的情况三、查询优化器偷偷干了哪些事儿四、需要你mark的知识点1、如何通过有序索引排序,避免冗余执行order by2、like 语句的索引问题3、不要在列上进行运算...