1.1 菜单栏主要功能

pgsql建表语句转化为mysql建表语句 sqlyog建表语句_mysql

 用户管理:

pgsql建表语句转化为mysql建表语句 sqlyog建表语句_mysql_02

首选项: 

pgsql建表语句转化为mysql建表语句 sqlyog建表语句_mysql_03


1.2 操作数据库

操作数据库的几个层次

  • 操作数据库
  • 操作数据库中的表
  • 操作数据库中表的属性

注意

1.SQLyog里面的关键字不区分大小写,直接写就可以,使用Tab键可以根据代码关键字提示进行补全,写完后会自动变为大写,自己定义的字段名有大小写,多个字段之间用下划线分割!!!

2.在Tab按键的上面,如果你的表名或者字段名是一个特殊字符(与数据库原有关键字相同),操作它就需要加``

1.2.1 创建数据库


 CREATE DATABASE mysql -- 新建数据库,如果数据库存在,会报错:  -- 错误代码: 1007  -- Can't create database 'mysql'; database exists  CREATE DATABASE IF NOT EXISTS school -- 如果该数据库不存在,就可以创建,因此每次创建数据库前要先判断数据库是否已经存在,才能进行创建。 -- 创建后下方提示信息显示成功:1 queries executed, 1 success, 0 errors, 0 warnings -- 注意:创建后的数据库并没有在左侧进行显示,需要选中“root@localhost”后右键选择“刷新对象浏览器”或者使用快捷键F5进行刷新,刷新后才能在左侧正常显示,其余对数据库的操作也类似,都需要刷新才能正常显示。


1.2.2 删除数据库


 DROP DATABASE worker -- 删除数据库,如果数据库不存在,会报错:  -- 错误代码: 1008  -- Can't drop database 'worker'; database doesn't exist  DROP DATABASE IF EXISTS school -- 如果该数据库存在,进行删除,删除成功后提示:1 queries executed, 1 success, 0 errors, 0 warnings


1.2.3 使用数据库


 USE worker -- 使用数据库,如果此数据库不存在,会报错:  -- 错误代码: 1049  -- Unknown database 'worker'  USE school -- 切换成功后,菜单栏上面对应的数据库会变为你使用的这个数据库


1.2.4 查看数据库


 SHOW DATABASES -- 查看所有的数据库,不能只查看一个数据库有没有,注意DATABASES是复数  SHOW school -- 查看所有的数据库要用SHOW DATABASES,只能使用USE使用数据库,否则报错:  -- 错误代码: 1064  -- You have an error in your SQL syntax; check the manual that corresponds to your  -- MySQL server version for the right syntax to use near 'school' at line 1


对比SQLyog中数据库的可视化操作:

pgsql建表语句转化为mysql建表语句 sqlyog建表语句_mysql_04

学习思路

  • 对照SQLyog可视化历史记录(Ctrl+Shift+H)查看sql指令对应操作进行学习
  • 固定的语法或关键字必须要强行记住!!!


1.3 数据库的列类型

1.3.1 数值 

  • tinyint用来表示十分小的数据,占1个字节
  • smallint用来表示较小的数据,占2个字节
  • mediumint用来表示中等大小的数据,占 3个字节
  • int是标准的整数,占4个字节(常用)
  • bigint用来表示较大的数据,占8个字节
  • float用来表示单倍精度浮点数,占4个字节(存在精度问题)
  • double用来表示双倍精度浮点数,占8个字节(存在精度问题)
  • decimal用来表示字符串形式的浮点数,在金融计算的时候一般使用decimal

 1.3.2 字符串

  • char表示固定大小的字符串(0~255)
  • varchar表示可变字符串,大小为0~65535之间可变的变量,对应Java中的String类型
  • tinytext表示微型文本,大小 2^8-1,可用来保存一篇博客
  • text 文本串 2^16-1 保存大文本

 1.3.3 时间

Java中使用的是:java.util.Date

  • date(日期):YYYY-MM-DD 严格按照此日期格式书写
  • time(时间):HH:mm:ss 严格按照此时间格式书写
  • datetime(日期时间): YYYY-MM-DD HH:mm:ss 最常用的时间格式(注意书写)
  • timestamp:表示时间戳,是从 1970.1.1到现在的毫秒数,也较为常用!
  • year(年): 表示年份

 1.3.4 NULL

  • 没有值,注意不要使用NULL进行运算,结果为NULL


1.4 操作数据库中的表(重点)

1.4.1 创建表

指定引擎(默认InnoDB)、字符集(utf8)、核对(utf8_general_ci)

pgsql建表语句转化为mysql建表语句 sqlyog建表语句_表名_05

1.4.2 改变表

对表结构参数进行修改 

pgsql建表语句转化为mysql建表语句 sqlyog建表语句_字段名_06

pgsql建表语句转化为mysql建表语句 sqlyog建表语句_字段名_07

1.4.3 打开表 

查看表中数据

pgsql建表语句转化为mysql建表语句 sqlyog建表语句_数据库_08

可对表中数据进行修改

pgsql建表语句转化为mysql建表语句 sqlyog建表语句_字段名_09

1.4.4 表字段属性介绍

默认

  • 设置默认的值,如gender设置为男,如果不指定该列的值,则会有默认的值“男”!

主键

  • 一般一个表只能设置一个主键,主键必须存在,且不能为空!!!

非空 NOT NULL

  • 假设设置为not null,如果不给它赋值,就会报错!
  • NULL:如果不填写值,默认就是NULL!

Unsigned

  • 无符号的整数
  • 声明了该类不能声明为负数

自增

  • 通常理解为自增,自动在上一条记录的基础上+1(默认)
  • 通常用来设计唯一的主键index,必须是整数类型
  • 可以自定义设计主键自增的起始值和步长

Zerofill

  • 0填充的
  • 不足的位数,使用0来填充,int(3)类型的5表示为005

拓展:


 -- 每一个表,都必须存在以下五个字段,未来做项目会用,表示一个记录存在意义!  id 主键  `version` 乐观锁  is_delete 伪删除  gmt_create 创建时间  gmt_update 修改时间


1.5 创建数据库/表实例


-- 目标:使用SQLyog创建一个classroom数据库表  -- 在school数据库中创建学生表student(列、字段)  -- 属性:  -- 学号 id int(4)  -- 姓名 name varchar(20)  -- 登录密码 password varchar(30)  -- 性别 gender varchar(2)  -- 出生日期 birthday datetime  -- 家庭住址 address varchar(100)  -- 邮箱 email varchar(50)  -- 主键 PRIMARY KEY,一般一个表只有一个唯一的主键  -- 注意:使用英文(),表的名称和字段尽量使用``括起来,避免与关键字重复  --     字符串使用英文''括起来,所有的语句后面加上英文","表示结束  --     最后一个语句没有",",字符集是utf8而不是utf-8    -- 实现代码如下: CREATE DATABASE IF NOT EXISTS classroom; USE classroom; CREATE TABLE IF NOT EXISTS student(   `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',   `name` VARCHAR(20) NOT NULL DEFAULT '匿名' COMMENT '姓名',   `password` VARCHAR(30) NOT NULL DEFAULT '123456' COMMENT '密码',   `gengder` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',   `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',   `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',   `email` VARCHAR(50) DEFAULT NULL COMMENT '电子邮箱',   PRIMARY KEY(`id`) )ENGINE=INNODB DEFAULT CHARSET=utf8 格式: CREATE TABLE IF NOT EXISTS `表名`(   `字段名` 列类型(长度) [属性] [索引] [注释],   `字段名` 列类型(长度) [属性] [索引] [注释],   ......   `字段名` 列类型(长度) [属性] [索引] [注释],  )[表类型][字符集设置][注释]


附:MySQL中数据类型的长度问题总结YAruli的博客-CSDN博客mysql中数据类型的长度问题总结

MySQL中数据类型的长度问题总结_yAngrUiLin啊的博客-CSDN博客

1.6 常用命令

(1)查看创建数据库的指令:SHOW CREATE DATABASE 数据库名

示例:show create database classroom

(2)查看创建表的指令:SHOW CREATE TABLE 表名

示例:show create table student

(3)显示表结构指令:DESC 表名

示例:desc student

(4)修改表名:ALTER TABLE 旧表名 RENAME AS 新表名

示例:alter table student rename as classmate

(5)增加表的字段:ALTER TABLE 表名 ADD 字段名 列属性

示例:alter table student add gender varchar(2)

(6)修改表的字段名称:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性

示例:alter table student change sex gender varchar(2)

(7)修改表的字段约束:ALTER TABLE 表名 MODIFY 字段名 列属性

示例:alter table student modify gender varchar(1)

(8)删除表的字段:ALTER TABLE 表名 DROP 字段名

示例:alter table student drop sex

(9)删除表:DROP TABLE IF EXISTS 表名

示例:drop table if exists student

(10)删除数据库:DROP DATABASE IF EXISTS 数据库名

示例:drop database if exists test

(11)查看数据库中有多少表:SHOW TABLES

注意:

  • 所有的创建和删除操作尽量加上判断,以免报错!!!
  • 字段名使用``修饰,避免与关键字重复!!!
  • 注释:-- 或者 /* */
  • sql关键字大小写不敏感,建议大家写小写!!!
  • 所有的符号全部用英文!!!