以下内容来自:SQLyog基本操作(一)-菜单栏、操作数据库、列类型、字段属性 - Coder_Cui - 博客园
用户管理:
首选项:
操作数据库的几个层次:
操作数据库
操作数据库中的表
操作数据库中表的属性
注意:
1.SQLyog里面的关键字不区分大小写,直接写就可以,使用Tab键可以根据代码关键字提示进行补全,写完后会自动变为大写,自己定义的字段名有大小写,多个字段之间用下划线分割!!!
2.在Tab按键的上面,如果你的表名或者字段名是一个特殊字符(与数据库原有关键字相同),操作它就需要加``
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进行刷新,刷新后才能在左侧正常显示,其余对数据库的操作也类似,都需要刷新才能正常显示。
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
USE worker -- 使用数据库,如果此数据库不存在,会报错: -- 错误代码: 1049 -- Unknown database 'worker' USE school -- 切换成功后,菜单栏上面对应的数据库会变为你使用的这个数据库
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中数据库的可视化操作:
学习思路:
tinyint用来表示十分小的数据,占1个字节
smallint用来表示较小的数据,占2个字节
mediumint用来表示中等大小的数据,占 3个字节
int是标准的整数,占4个字节(常用)
bigint用来表示较大的数据,占8个字节
float用来表示单倍精度浮点数,占4个字节(存在精度问题)
double用来表示双倍精度浮点数,占8个字节(存在精度问题)
decimal用来表示字符串形式的浮点数,在金融计算的时候一般使用decimal
char表示固定大小的字符串(0~255)
varchar表示可变字符串,大小为0~65535之间可变的变量,对应Java中的String类型
tinytext表示微型文本,大小 2^8-1,可用来保存一篇博客
text 文本串 2^16-1 保存大文本
Java中使用的是:java.util.Date
date(日期):YYYY-MM-DD 严格按照此日期格式书写
time(时间):HH:mm:ss 严格按照此时间格式书写
datetime(日期时间): YYYY-MM-DD HH:mm:ss 最常用的时间格式(注意书写)
timestamp:表示时间戳,是从 1970.1.1到现在的毫秒数,也较为常用!
year(年): 表示年份
没有值,注意不要使用NULL进行运算,结果为NULL
指定引擎(默认InnoDB)、字符集(utf8)、核对(utf8_general_ci)
对表结构参数进行修改
查看表中数据
可对表中数据进行修改
默认
设置默认的值,如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 修改时间
-- 目标:使用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)查看创建数据库的指令: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关键字大小写不敏感,建议大家写小写!!!
所有的符号全部用英文!!!