SQLyog学习笔记02---数据库/表基本操作指令

以下内容来自:SQLyog基本操作(一)-菜单栏、操作数据库、列类型、字段属性 - Coder_Cui - 博客园

1.1 菜单栏主要功能

SQLyog学习笔记02---数据库/表基本操作指令_第1张图片

 用户管理:

SQLyog学习笔记02---数据库/表基本操作指令_第2张图片

首选项: 

SQLyog学习笔记02---数据库/表基本操作指令_第3张图片

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中数据库的可视化操作:

SQLyog学习笔记02---数据库/表基本操作指令_第4张图片

学习思路

  • 对照SQLyog可视化历史记录(Ctrl+Shift+H)查看sql指令对应操作进行学习

    SQLyog学习笔记02---数据库/表基本操作指令_第5张图片

  • 固定的语法或关键字必须要强行记住!!!

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)

SQLyog学习笔记02---数据库/表基本操作指令_第6张图片

1.4.2 改变表

对表结构参数进行修改 

SQLyog学习笔记02---数据库/表基本操作指令_第7张图片

SQLyog学习笔记02---数据库/表基本操作指令_第8张图片

1.4.3 打开表 

查看表中数据

SQLyog学习笔记02---数据库/表基本操作指令_第9张图片

可对表中数据进行修改

SQLyog学习笔记02---数据库/表基本操作指令_第10张图片

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关键字大小写不敏感,建议大家写小写!!!

  • 所有的符号全部用英文!!!

你可能感兴趣的:(SQL,mysql)