1.SQLyog管理工具(小海豚)

可手动操作、管理MySQL数据的软件工具
特点:易用、简洁、图形化

创建课程数据表(subject)并添加数据
使用SQLyog连接数据库
创建MySchool数据库

新建数据表( subject )添加数据列

SubjectNo (int(11) , PK)
SubjectName (varchar 50 )

ClassHour (int (4) )

GradeID ( int (4) )

添加数据

首先创建数据库
数据库名称:MySchool
基字符集:utf8
数据库排序规则utf8_unicode_ci
创建表
表名称:subject
列名 数据类型 长度 主键(有且只有一个,不能为空;主键组可以包含多个)

连接数据库的cmd语句:mysql -h 服务器主机地址 –u 用户名 -p用户密码


2.结构化 查询语句SQl

结构化查询语句分类
名称      解释                  命令
DDL数据       定义和管理数据对象,       CREATE、DROP、ALTER
定义语言    如数据库,数据表等
------------------
DML数据       用于操作数据库对象中      INSERT、UPDATE、DELETE
操作语言        所包含的数据
------------------
DQL数据       用于查询数据库数据       SELECT
查询语言
-----------------
DCL数据       用来管理数据库的语言,  GRANT、COMMIT、ROLLBACK
控制语言        包括管理权限及数据更改 REMOVE

【【注意】】

在执行修改删除插入DML操作语言前都需要进行alter命令,但是drop不能删除只有一列的表结构

查看表
select * from tb_test01; ------------------------------------普通查看表数据
show create table tb_test01; -------------------------------查看表结构(PPT上的)
show table status like "tb_test01" --------------------------查看表创建信息
show columns from tb_test01; ------------------------------详细查看表各字段 类型约束设置

添加:

ALTER TABLE tb_test01 add id_01 int(10); -------------------表tb_test01增加 增加字段 id_01 类型限制 int(10)
ALTER TABLE tb_test01 add id_02 int(10) FIRST -------------增加字段 id_02 并且放在第一个字段
ALTER TABLE tb_test01 add id_03 int(10) AFTER id ----------增加字段 id_03 并且放在id 后面

删除(主键:primary key)

ALTER TABLE tb_test01 drop id_03; --------------------------删除字段 id_03
ALTER TABLE tb_test01 drop PRIMARY KEY; -----------------删除主键,注: 如果表有主键,不删除主键,无论添
加主键,还是在修改的时候增加主键设置,都会失败,需要先删除主键,才可以对主键进行操作

修改:

关键字:modify, change, rename, alter [field] set default缺省 [num]
modify: 修改字段类型设置,不可以更改字段名
change: 修改字段类型设置 可以更改字段名
ALTER TABLE tb_test modify id_01 int(5) not null; ---------------把 id_01 字段类型修改 int(5),和非空
ALTER TBALE tb_test change id_01 id_test int(10); ---------------把 id_01 更名 id_test 并且字段类型设置为 INT(10)
ALTER TABLE tb_test RENAME tb_test02; -------------------------把表 tb_test 更名为 tb_test02;
ALTER TABLE tb_test ALTER id_01 set default 1000; --------------把表tb_test 的字段 id_01 设置默认值为1000,其
他的约束不变
ALTER TABLE tb_test ALTER id_01 DROP DEFAULT; --------------删除 字段 id_01 的默认设置值
ALTER TABLE tb_test ENGINE = MYISAM; ----------------------把 表tb_test 类型设置为 MYISAM; myqsl默认 INNODB

drop与delete的区别:
初学sql语言,难免被drop和delete用法弄混,二者都有删除的意思。
那它们又有什么区别呢?

drop主要用于删除结构

1.例如删除数据库:drop database XX,
2.删除表 drop table XX。
3.字段也是结构的一种,也可以使用drop了?对的,但是我们改变了表结构要先alter方法。
例如,我们要删除student表上的age字段的信息,可以这样写:alter table student drop age

delete主要用于删除数据
举个例子
,要删除 student表上名字为‘张三’的所有信息:delete * from student where name=‘张三’。这种情况下用delete,由此
可见delete常用于删除数据。

delete与truncate的区别
在使用truncate时一定要注意,虽然可以恢复,但为了减少麻烦,还是要慎重。
如果想删除部分数据用delete,注意带上where子句,回滚段要足够大(不会删除原来的索引,也不会重置删除内容的原所占内存空间);
如果想保留表而将所有数据删除,如果和事务无关,用truncate即可(他会删除索引并重置内存空间);
如果和事务有关,或者想触发trigger,还是用delete;
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。

truncate 表名 ; 直接清空所有数据,下次插入数据时auto_increment字段会自动从0开始。
和delete from tbname不同的是delete只删除数据而不重置auto_incremnet.

SET @@auto_increment_increment = 10; 修改自动增长的步长(全局修改)


where和having的区别 as是用来起别名的

where子句:是在分组之前使用,表示从所有数据中筛选出部分数据,以完成分组的要求,
在where子句中不允许使用统计函数,没有group by子句也可以使用。having子句:是在分组之后使用的,表示对分组统计后的数据执行再次过滤,可以使用统计
函数,有group  by子句之后才可以出现having子句。

1.grant命令

grant权限用来授权进行数据模式访问,可以用于对对象权限和系统权限的操作。
其基本语法为:grant privilege on object to grantee [with grant option]
其中,privilege表示所需的权限,object是被授予权限可以进行访问的对象,
grantee是需要接收该权限的用户。
如果授予了with grant option,则该grantee可以依次向其他用户进行授权。
在一个grant语句中也可以指定多个权限,举例说明,
对于以下语句:grant select,update on  tableA  to userA;
表示将tableA表的select,update操作权限赋给userA。

2.commit命令?

oracle中的commit是提交数据,在未提交前的操作更新的都是内存,即没有更新到物理文件中。
只有当数据库
发出commit命令,事物才会被终结,并且:
事物完成的所有工作都是永久性的(permanent)。
其他的会话可以看到此事务所进行的修改。
事务所需要执行的所有加锁(lock)处理都被释放了。
其具体语法为:
commit [work];其中work关键字用来提高可读性。当我们commit一个事务以前,只有执行该事务
的对话才看得到自己的修改,而commit这个事务后其他会话才能看到该修改。一般DML 数据操
作语言需要使用commit命令,例如insert将记录插入到数据库 、update修改数据库的记录 、
delete删除数据库的记录。
当我们开表插入(编辑)数据时,在修改之后,也需要点击pl/sql右上角工具栏的“提交”图标,其
本质就是commit命令。

3.rollback命令?

rollback用于存放数据修改之前的值(包括数据修改之前的位置和值)。当对数据库执行rollback
语句时,该事务就被终结,并且:
事务完成的所有工作都被取消(undo)。
事务所需要执行的所有加锁(lock)处理都被释放了。
其具体语法为:rollback?[work];其中work关键字也是可选的,用来提高可读性。当程序检测出
脚本的错误而不能继续运行时,通常会显式使用rollback语句;当会话断开与数据库的连接时,
如果没有使用commit或rollback终止当前事务时,该事务会被数据库撤销。
-----------------

3. 命令行操作数据库

创建数据库的命令
create database 【IF NOT EXISTS】数据库名;
删除数据库的命令
drop database 【IF EXISTS】数据库名;
查询数据库
show databases;
使用数据库
use 数据库名;


工具建表
可能要涉及的聚合函数
count()行数 avg()平均 sum和
max()最大 min()最小

涉及到的order by 和 group by的区别
order by 排序查询、asc升序、desc降序
示例:
select * from 学生表 order by 年龄 查询学生表信息、按年龄的升序(默认、可缺省、从低到高)排列显示
也可以多条件排序、 比如 order by 年龄,成绩 desc 按年龄升序排列后、再按成绩降序排列

group by 分组查询、having 只能用于group by子句、作用于组内,having条件子句可以直接跟函数表达式。使用group by 子句的查询语句需要使用聚合函数。
示例:
select 学号,SUM(成绩) from 选课表 group by 学号 按学号分组、查询每个学号的总成绩
select 学号,AVG(成绩) from 选课表
group by 学号
having AVG(成绩)>(select AVG(成绩) from 选课表 where 课程号=‘001’)
order by AVG(成绩) desc
查询平均成绩大于001课程平均成绩的学号、并按平均成绩的降序排列

显示建表
desc表名 降序显示表
显示表创建语句
show create table 表名

创建数据表**************注意听讲*******************
属于DDL定义操作的一种

create table `表名`(                               //反引号``区别于单引号‘’`字段名1`    列类型 [ 属性 ]  [ 索引 ] [注释] ,`字段名2`   列类型 [ 属性 ]  [ 索引 ] [注释] , … …    `字段名n`   列类型 [ 属性 ]  [ 索引 ] [注释])  [  表类型 ] [ 表字符集 ] [注释] ;

【列类型】
规定数据库中该列存放的数据类型
分为

数值类型

类型           大小  范围(有符号) 范围(无符号)                                         用途
TINYINT         1字节     (-128,127) (0,255)                                                小整数值
SMALLINT        2 字节    (-32 768,32 767) (0,65 535)                                       大整数值
MEDIUMINT       3 字节    (-8 388 608,8 388 607) (0,16 777 215)                             大整数值
INT或INTEGER     4 字节    (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大                整数值
BIGINT          8 字节    (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值

类型 说明 取值范围 存储需求

tinyint 非常小的数据
有符值: -2^7 ~ 2^7-1 1字节
无符号值:0 ~ 2^8-1

smallint 较小的数据
有符值: -2^15 ~ 2^15-1 2字节
无符号值: 0 ~ 2^16-1

mediumint 中等大小额数据
有符值: -2^23 ~ 2^23-1 3字节
无符号值: 0 ~ 2^24-1

int 标准整型
有符值: -2^31 ~ 2^31-1 4字节
无符号值:0 ~ 2^32-1

bigint 较大的整数
有符值: -2^63 ~2^63-1 8字节
无符号值:0 ~2^64-1

float 单精度浮点数 ±1.1754351e -38 4字节

double 双精度浮点数 ±2.2250738585072014e -308 8字节

decimal 字符串形式的浮点数 decimal(m, d) m个字节

注意啦!!!
类似int(4),仅设定显示宽度,不影响存储范围,长度超出4照样能存

字符串类型
类型 说明 最大长度
char[(M)] 固定长字符串,检索快 M字符
但费空间,0<=M<=255

varchar[(M)] 可变字符串
0<=M<=65535 变长度
端口号的取值范围就是0-65535(2^16-1)

tinytext 微型文本串 2^8-1字节

text 文本串 2^16-1字节

日期和时间数值类型

 类型      说明                          取值范围
DATE        YYYY-MM-DD,日期格式      1000-01-01~ 9999-12-31
TIME        Hh:mm:ss ,时间格式           -838:59:59~838:59:59
DATETIME    YY-MM-DD hh:mm:ss       1000-01-01 00:00:00  至 9999-12-31 23:59:59
TIMESTAMP   YYYYMMDDhhmmss格式表示的时间戳  197010101000000 ~2037年的某个时刻
YEAR        YYYY格式的年份值          1901~2155

null值
可以理解为没有值,或者未知值
不要用NULL进行算术运算,结果仍为NULL*听讲

mysql独有的,复合数据类型
blob可以提一下
复合类型(MySQL特色,慎用,影响数据库迁移)
  
MySQL 还支持两种复合数据类型 ENUM 和 SET,它们扩展了 SQL 规范。
虽然这些类型在技术上是字符串类型,但是可以被视为不同的数据类型。
一个 ENUM 类型只允许从一个集合中取得一个值;而 SET 类型允许从一个集合中取得任意多个值。

ENUM 类型

ENUM 类型因为只允许在集合中取得一个值,有点类似于单选项。在处理相互排拆的数据时容易让人理解,比如人类的性别。ENUM 类型字段可以从集合中取得一个值或使用 null 值,除此之外的输入将会使 MySQL 在这个字段中插入一个空字符串。另外如果插入值的大小写与集合中值的大小写不匹配,MySQL 会自动使用插入值的大小写转换成与集合中大小写一致的值。
   ENUM 类型在系统内部可以存储为数字,并且从 1 开始用数字做索引。 一个 ENUM 类型最多可以包含 65536 个元素,其中一个元素被 MySQL 保留,用来存
储错误信息,这个错误值用索引 0 或者一个空字符串表示。
  MySQL 认为 ENUM 类型集合中出现的值是合法输入,除此之外其它任何输入都将失败。这说明通过搜索包含空字符串或对应数字索引为 0 的行就可以很容易地找到错误记录的位置。

SET 类型
  
SET 类型与 ENUM 类型相似但不相同。SET 类型可以从预定义集合中取得任意数量的值。并且与 ENUM 类型
相同的是任何试图在 SET 类型字段中插入非预定义的值都会使 MySQL 插入一个空字符串。如果插入一个即有合法的元素又有非法的元素的记录,MySQL 将会保留合法的元素,除去非法的元素。
  一个 SET 类型最多可以包含 64 项元素。在 SET 元素中值被存储为一个分离的“位”序列,这些“位”表示与它相对应的元素。
“位”是创建有序元素集合的一种简单而有效的方式。并且它还去除了重复的元素,所以 SET 类型中不可能包含两个相同的元素。
  希望从 SET 类型字段中找出非法的记录只需查找包含空字符串或二进制值为 0 的行。


数据字段属性
unsigned
无符号的
声明该数据列不允许负数

zerofill
0填充的
不足位数的用0来填充
使用zerofill会默认加unsigned

auto_increment
自动增长的,每增加一条数据,自动在上一个记录数上加1
通常用于主键,且为整数类型

可能会遇到的问题:
使用zerofill会默认加unsigned

`id` tinyint(4) zerofill

id将不能存负数,最大存储255

CREATE TABLE 表名 ( … ) AUTO_INCREMENT = 100;

alter table 表名 auto_increment = x ; 如果x小于现在的值则修改无效

NULL 和 NOT NULL

默认为NULL,即没有插入该列的数值
如果设置为
NOT NULL,则该列必须有值

DEFAULT
默认的
用于设置默认值

例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值


COMMENT ‘编码号’对象表中的注释


设置数据表的类型
ENGINE = MyISAM

ENGINE = InnoDB

MySQL注释:
1、
①#……
②–空格 单行注释
2、/……/ 多行注释
MySQL的数据表的类型
MyISAM、InnoDB 、HEAP、BOB、CSV等

常见的MyISAM与InnoDB类型

名称       MyISAM  InnoDB
事务处理        不支持 支持
数据行锁定   不支持 支持
外键约束        不支持 支持
全文索引        支持  不支持
表空间大小   较小  较大,约2倍

使用MyISAM: 节约空间及相应速度
使用InnoDB: 安全性,事务处理及多用户操作数据表

设置数据表字符集
charset=utf8


课上听讲
服务器:必须有软件的支持才叫服务器
Linux服务器兼容性特别好
Apache
1.广义的服务器:主机+linux系统 硬件+软件(系统,服务)
2.狭义的服务器:Tomcat

关系型数据库:存在硬盘上(读取数据快)
非关系型数据库:存在缓存中

MySQL的性价比高,Oracle
MySQL的本质就是DBMS
SQLyog的本质是可视化管理工具

运行机制:
内部运行机制
外部运行机制

JDBC java数据库连接

注释
单行注释
– 注意加空格

多行注释

/* */

使用cmd操作
1.进入bin层
d:
cd D:\Program Files\mysql-5.7.19-winx64

mysql -u root -p回车
输入密码123

show databases;显示所有的数据库
use t25;使用(进入)t25这个数据库

desc grade;进入表

1.数据库 增 删 查;
2.数据库 表 增 删 改 查;
3.表数据 增删改查;
4.索引 增删改查;
5.视图 增删改查;


事务

是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。

显示创建表的过程
show create table

公式
create table 表名(
列名 列类型(长度) 属性(not null) 索引(index/key/pk)注释(comment ’ '),
列名 列类型(长度) 属性(not null) 索引(index/key/pk)注释(comment ’ '),
列名 列类型(长度) 属性(not null) 索引(index/key/pk)注释(comment ’ ')
)charset = utf8;

在java中的int 10位
int的取值范围为: -231——231-1,即-2147483648——2147483647

数据库中
Oracle中不区分“”和(null)
mysql区分“”和(null)

CREATE TABLE `grade` (`GradeID` INT(11) NOT NULL,`GradeName` VARCHAR(50) COLLATE utf8_unicode_ci DEFAULT NULL,PRIMARY KEY (`GradeID`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

MySQLyog的使用相关推荐

  1. 解决myeclipse报错500,MySQLyog报错误码问题

    在myeclipse 写了一个登录,但在我登录的时候却报了500的空指针,我检查了自己的登录代码,发现没有问题,这不应该啊,然后在网上也寻找了一些解决方案,发现好像并不适用,500空指针如下: 然后去 ...

  2. mysqlyog mysql8.012_瑞昱网卡驱动-Realtek瑞昱RTL-81xx系列网卡驱动(Win8)8.012.0304.2013版-东坡下载...

    如果说Realtek靠着产品物美价廉以及提供公版驱动支持这两大法宝在集成音频芯片领域一枝独秀,大有一统江湖之势,那么在集成网卡芯片领域,可以说对手如云了. 像Marvell.Broadcom.Inte ...

  3. mysqlyog mysql8.012_瑞昱网卡驱动-Realtek瑞昱RTL-81xx系列网卡驱动(Win8)8.012.0304.2013版下载_东坡手机下载...

    如果说Realtek靠着产品物美价廉以及提供公版驱动支持这两大法宝在集成音频芯片领域一枝独秀,大有一统江湖之势,那么在集成网卡芯片领域,可以说对手如云了. 像Marvell.Broadcom.Inte ...

  4. 解决LNMP环境下客户端远程连接不上mysql的问题(已经排除防火墙/selinux问题)...

    LNMP环境下 远程连接mysql数据库 一.为了安全起见,lnmp环境是禁止远程连接的,他会删除iptables里面的3306端口的防火墙规则 一.如果是phpmydmin  那要把权限里要远程连接 ...

  5. Mysql Oracle 工具推荐

    推荐几款数据库相关软件: 一. MySQL相关   1. MySQL GUI Tools Bundle  http://dev.mysql.com/downloads/gui-tools/5.0.ht ...

  6. ubuntu mysql innodb_Ubuntu MYSQL环境搭建

    前期准备: 检查系统资源 内存大小 # grep MemTotal/proc/meminfo 检查系统版本 统一为: Ubuntu 12.04.1 LTS(GNU/Linux 3.2.0-29-gen ...

  7. lnmp mysql 远程访问_LNMP环境下 远程连接mysql数据库

    一.为了安全起见,lnmp环境是禁止远程连接的,他会删除iptables里面的3306端口的防火墙规则 一.如果是phpmydmin  那要把权限里要远程连接的用户主机改成 * 参考: https:/ ...

  8. 7款经典的MySQL客户端软件

    http://www.php100.com/html/webkaifa/database/Mysql/2010/1015/6599.html 不用我说,大家都知道Mysql是一个怎么样的数据库.虽然它 ...

  9. 【Springboot学习笔记】SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法

    [Springboot学习笔记]SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法 目录 1.搭建环境 1.1直接从网上下载SpringB ...

  10. 基于nodejs的网络聊天室实现

    一.实验选题 1.1选题背景及意义 本次课程设计选题为 :仿QQWeb即时聊天系统. 由于WEB的易用性.实用性,它很快占据了主导地位,目前成为使用最广泛.最有前途.最具魅力的信息传播技术.本次实验就 ...

最新文章

  1. android中完全退出当前应用程序的四种方法
  2. linux 命令 kps,10个LINUX命令 超好用
  3. jquery 3D分页翻转滑块
  4. Java入门教程五(数字和日期处理)
  5. Java黑皮书课后题第9章:9.7(Account类)设计一个名为Account的类,它包含……。编写一个测试程序,创建一个账户ID为1122、余额为20000美元、年利率为4.5%的Account…
  6. Mono Compatibility
  7. python 输出 GPU内存 最大使用率
  8. android activity滑动切换,Android 向右滑动切换Activity, 随着手势的滑动而滑动的效果...
  9. 菜刀php教程,Weevely(php菜刀)工具使用详解
  10. JSON Schema
  11. leetcode Database3
  12. 模板题——贪心(2)
  13. pyqt5优秀项目python_基于Pyqt5打造量化系统GUI
  14. #怎样获取当前时间和时区_JDK1.8新增日期时间类型
  15. 2022年计算机软件水平考试软件设计师(中级)练习题及答案
  16. 各国语言缩写-各国语言简称,世界各国域名缩写
  17. 【词性标注】一篇文章弄懂词性标注
  18. 你可以更幸福(转载)
  19. 苹果公司为什么储备那么多现金?
  20. 第1周学习笔记:深度学习和pytorch基础

热门文章

  1. 若梦博客-优质个人博客
  2. 创变数智化,新华三揭开企业上云密码
  3. 入侵防御系统_入侵防御系统简介
  4. github可以跨月显示日期的jquery日历插件pickadate
  5. java计算机毕业设计Web网上购书后台管理系统MyBatis+系统+LW文档+源码+调试部署
  6. winscp连接linux时提示连接失败OOPS:cannot change directory:/home/....什么的原因以及解决方案
  7. 超星网站服务器,云服务器 超星
  8. [转]AndroidTolls国内镜像
  9. Idea设置全白色 背景
  10. 访问图片出现403的解决办法