MYSQL中DML操作数据库操作全集(增删改详细解答 图文并存)

2:DML操作数据库操作全集:

操作数据库》操作数据库中的表》操作数据库中的表数据:

2.1操作数据库

不区分大小写;

CREATE DATABASE [IF NOT EXISTS] westos   --防止已经存在 创建数据库

drop database if exist westos    ---删除表;


CREATE DATABASE IF NOT EXISTS westos
DROP DATABASE IF EXISTS westos


USE `school`  --用数据库  当你的属性是关键字的时候 需要加··


SELECT `age` FROM student 

SHOW DATABASES    --查看所有的数据库  

2.2:数据库的列类型:

数值:

tinyint  十分小的数据 一个字节
smallint 较小的数据  2个字节   //这些用的都比较少
int      标准的整数  4个字节
bigint   较大的整数  8个字节
float    浮点数     4个字节   (精度问题)
decimal   字符串形式的浮点数    金融计算的时候一般使用decimal

字符串


char        字符串固定大小 0-255
varchar     可变字符串 0-65535     常用的String
tinytext    微型文本 2^8-1
text        文本串   2^16-1        保存大的文本
时间日期

java.util.Date


date  yyyy-mm-dd,  日期格式
time  hh:mm:ss      时间格式
datatime  YYYY-MM-DD HH:mm:ss  最常用的时间格式
timesamp  时间戳  1970.1.1  到现在的毫秒数
year  年份表示
null
没有值 未知;

2.2:数据库字段属性(重点)

Unsigned

1:无符号的整数 并且声明了该列不能声明为负数;

zerofill

1:0填充 不足的位数 用0来填充

自增

通常理解为自增 自动在上一条的记录上加1

通常用来设计唯一的主键 index 且必须是整数的类型

可以自定义设计主键自增的起始值与步长;

非空

notnull

假设设置为notnull 如果不给他赋值 就会报错 如果不填写值就会默认为null

默认

设置默认的值;

如果不指定该列的值 会有默认的值

  拓展:每一个表都必须会存在下面的五个字段:  表示一个记录存在的意义


id  主键
`version`  乐观锁
is_delete  伪删除
gmt_create  创建时间
gmt_update  修改时间

2.3:创建数据库表:(重点)


-- 目标:创建一个school的数据库
--  创建学生表 
--  学号int  登陆密码  varchar 姓名 性别varchar 出生日期 datatime 家庭住址 Email


-- 使用英文括号  表的字段尽量使用``
--  AUTO_INCREMENT 
-- 字符串的使用  用单引号括起来  所有的语句后面加,  最后一个语句不用
-- primary key 一般一个表有唯一的一个主键
CREATE TABLE IF NOT EXISTS `student`  (

`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT ' null' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT  '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday`  VARCHAR(20) 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 EXIST `表名``字段名` 列类型 [属性] [索引] [注释]`字段名` 列类型 [属性] [索引] [注释]`字段名` 列类型 [属性] [索引] [注释][表类型][字符集设置][注释]


常用命令(反向思维)
show create database school  --  查看创建数据库的语句
desc student                 --  显示表的结构




2.4:数据表的类型:

/*
INNODB 数据库引擎的默认使用
MYSIAM  早些年使用的



*/
MYSIAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键锁定 不支持 支持
全文索引 支持 不支持
表空间的大小 比较小 比较大 约为MYISAM的两倍

常规的使用操作:

myisam节约空间 速度较快

INNODB 安全性比较高 支持事务的处理 多表多用户的操作

在物理空间存在的位置:

所有的数据库文件都在data目录下 就是MySQL总下载时所创建的data

设置数据库表的字符集编码:

  在创建时加上CHARSET=UTF-8
  
  
  或者在MY.ini中配置默认的编码
  
  charset-set-server=utf=8

2.4:修改或删除表

-- 修改表
ALTER TABLE teacher RENAME AS teacger1
--  增加表的字段
ALTER TABLE teacger1 ADD age INT(11)
-- 修改表的字段 (重命名 修改约束)
-- ALTER TABLE 表名 modify 字段名 列属性[]
ALTER TABLE teacger1 MODIFY age VARCHAR(11)  -- 修改约束

-- ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[]
ALTER TABLE teacger1 CHANGE age  age1 INT(1)   -- 字段重命名


-- 删除表的字段
ALTER TABLE teacger1 DROP age1

-- 删除表
drop table if exist teacger1

你可能感兴趣的:(MySQL,数据库,mysql,索引,dml)