MySQL(一)基础知识(数据类型、字段属性),操作数据库和表,MYISAM和INNODB的区别

初识MySQL

数据库(DB)分类:

  • 关系型数据库: (SQL)
  • MySOL,Oracle,Sql Sever,DB2,SOLlite
  • 通过表和表之间,行和列之间的关系进行数据你的存储,学员信息表,考勤表,……
  • 非关系型数据库: (NoSQL) Not Only
  • Redis,MongDB
  • 非关系型的数据库,对象存储,通过对象自身的属性来决定

DBMS(数据库管理系统):

  • 数据库的管理软件,科学有效的管理数据,维护和获取数据
  • MySOL,是关系型数据库管理系统

基本操作指令

mysql -u root -p                                    --连接数据库
set password for 用户名 @localhost = password('新密码');    --修改密码
flush privileges                                     --刷新权限
-------------------------------------------------------------------------------
--所有语句结尾都用;
show databases;           --查看所有数据库

mysql> use school;        --切换数据库  use 数据库名  

show tables;             --查看数据库中所有的表
dicribe student;         --显示数据可中所有的表的信息

create database wang;    --创建新数据库

exit--退出连接
--单行注释(SQL本身的注释)
/**/ 多行注释

数据库语言:

DDL 定义
DML 操作
DQL 查询
DCL 控制

操作数据库

  • mysql中关键字不区分大小写,建议小写
  • 字段名用反引号`` 包裹

操作数据库(增删改查)

  • 创建数据库
CREATE DATABASE abc;
CREATE DATABASE IF NOT EXISTS abc;-- 添加判断是否已经存在
-- 查看创建对应数据库的语句
SHOW CREATE DATABASE `school`;
  • 删除数据库
DROP DATABASE IF EXISTS abc;

  • 使用数据库

-- 反引号,如果表明或者字段名为一个特殊字符(比如 select user等) 则要带上
USE `school`;
  • 查看数据库
SHOW DATABASES; -- 查看所有数据库

数据库的列类型

数值

数据类型 属性和大小
tinyint 十分小的数据,1字节
smallint 比较小的数据,2字节
mediumint 中等大小的数据,3字节
int(常用) 标准整数,4字节
bigint 较大的数据,8字节
float 浮点数,4字节
double 浮点数,8字节
decimal 字符串形式的浮点数,金融计算的时候一般用decimal

字符串

字符串类型 属性和大小
char 固定大小的字符串 0-255
varchar 可变大小的字符串 0-65535 常用的变量 String
tinytext 微型文本 2^8 -1
text **文本串 2^16-1 保存大文本 **

时间日期

java.utill.Date

时间类型 格式
date YYYY-MM-DD
time HH:mm:ss
datetime YYYY-MM-DD HH:mm:ss 最常用时间格式
timestamp 时间戳,1970.1.1到现在的毫秒数!!
year 年份表示

null

没有值,未知

  • 注意,不要用null进行运算,结果为null

字段属性(重点)

属性 说明
Unsigned 限定为无符号整数,不能为负数
zerofill 使用0去填充不足的位
autoincreament 自增长,自动在上一条记录的基础上+1(默认),幅度可调
notNULL 不能为空,若没有赋值则报错
default 设置默认值,不赋值则使用默认值填充

每个表必须存在以下5个字段,表示一个表存在的意义

  • id 主键自增
  • version 乐观锁
  • is_delete 伪删除
  • gmt_create 创建时间
  • gmt_updata 修改时间

操作表

创建表

基本操作

/*
CREATE TABLE [IF NOT EXISTS] 表名( 
	`字段名` 数据类型和长度 [属性] [索引] [注释], 
	`字段名` 数据类型和长度 [属性] [索引] [注释], 
	`字段名` 数据类型和长度 [属性] [索引] [注释], 
	[PRIMARY KEY (`字段名`) ]
)[表类型][字符集][注释]; 
*/
-- AUTO_INCREMENT 自增
-- 字符串用单引号括起来
-- 所有语句后加,(英文),最后一个不用加 
-- DEFAULT NULL 默认为空
-- PRIMARY KEY  设置主键,一般是id

CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`password` VARCHAR(20) NOT  NULL DEFAULT'123456' COMMENT'密码',
`name` VARCHAR(30)  NOT NULL DEFAULT'匿名' COMMENT'姓名',
`sex` VARCHAR(2) NOT NULL DEFAULT'女' COMMENT'性别',
`birthday` DATETIME DEFAULT NULL COMMENT'出生日期',
`address` VARCHAR(100)  DEFAULT NULL COMMENT'家庭住址',
`email` VARCHAR(20) DEFAULT NULL COMMENT'邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

--查看创建对应表的语句
SHOW CREATE TABLE `students`;
--查看表的结构
DESC `students`;

数据表的类型

-- 关于数据库引擎
/*
INNODB 默认使用
MYISAM 早些年使用
*/
MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
大小 较小 较大,约2倍
  • 常规使用操作
    • MYISAM:节约空间,速度较快
    • INNODB:安全性高,事务的处理,多表多用户男的操作

修改和删除表

修改

-- 重命名表
-- ALTER TABLE `旧名` RENAME AS `新名`;
ALTER TABLE `teacher` RENAME AS `teachers`;
-- 添加字段
--ALTER TABLE `表名` ADD `字段` 约束;
ALTER TABLE `teachers` ADD `age` INT(11);
-- 修改字段的约束
-- ALTER TABLE `表名` MODIFY `字段名` 约束;
ALTER TABLE `teachers` MODIFY `age` INT(3);
-- 重命名字段 也可以同时修改约束,不推荐
-- ALTER TABLE `表名` CHANGE `旧字段名` `新字段名` 约束;
ALTER TABLE `teachers` CHANGE `age` `age1` INT(11);

删除

-- 删除表的字段
--ALTER TABLE `表名` DROP `字段名`;
ALTER TABLE `teachers` DROP `age1`;

你可能感兴趣的:(跟狂神75天速成Java,#,MySQL,mysql,java)