既然这么险恶的环境等着我,那我只好变得更强了。|

理暗

园龄:2年9个月粉丝:1关注:0

操作数据库

2、操作数据库

2.1、操作数据库

(可以直接手动操作,以下是sql语句操作)

1、创建数据库(默认字符集:utf8 -- UTF-8 Unicode;排序规则:utf8_general_ci)

CREATE DATABASE [IF NOT EXISTS] 数据库名

2、删除数据库

DROP DATABASE [IF EXISTS] 数据库名

3、使用数据库

-- 若使用的是表名或者字段名是一个特殊字符,就需要带``符号(该符号位于tab键上面)
USE `数据库名`

4、查看所有的数据库

SHOW DATABASES

 

2.2、数据库的列类型

数值

  • tinyint 十分小的数据 1个字节

  • smallint 较小的数据 2个字节

  • mediumint 中等大小的数据 3个字节

  • int(常用) 标准的整数 4个字节

  • integer 较大的数据 8个字节

  • float 浮点数 4个字节

  • double 浮点数 8个字节

  • decimal 字符串形式的浮点数 一般用于金融计算

字符串

  • char 字符串 0~255

  • varchar 可变字符串 0~65535 / 0~2^16-1

  • tinytext 微型文本 0~255

  • text 文本串 0~65535

时间日期

  • date YYYY-MM-DD,日期格式

  • time HH:mm:ss,时间格式

  • datetime YYYY-MM-DD HH:mm:ss,最常用的时间格式

  • timestamp 时间戳,年月日时分秒

  • year 年份

 

2.3、数据库的字段属性(重点)

部分的软件是中文版就比较容易理解了,这里是对中文软件的解释。

  • Unsigned:无符号整数,声明后该列不能声明为负数

  • zerofill:填充零;不足的位数,使用0来填充

  • 自增:自动在上一条记录的基础上+1,通常用于主键

  • NULL:如果不填写值,默认是null

  • Not NULL:如果不给它赋值,就会报错!

  • 拓展:

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

     

2.4、创建数据库表(重点)

复制代码
-- 目标:创建一个school数据库
-- 创建学生表(列,字段)    使用SQL创建
-- 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(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 '匿名' COMMENT '姓名',
    `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
    `sex` 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 `表名` ( `字段名` 列类型 [属性] [索引] [注释], `字段名` 列类型 [属性] [索引] [注释], ··· `字段名` 列类型 [属性] [索引] [注释],
   PRIMARY KEY(`字段名`) )[表达式][字符集设置][注释]
复制代码

常用命令

SHOW CREATE DATABASE test  -- 查看创建数据库的语句
SHOW CREATE TABLE student  -- 查看student数据表的定义语句
DESC student  -- 显示表的结构

 

2.5、数据表的类型

-- 关于数据库引擎
/*
INNODB 默认使用
MYISAM 早些年使用
*/
 
MYISAM
INNODB
事物支持
不支持
支持
数据行锁定
不支持
支持
外键约束
不支持
支持
全文索引
支持
不支持
表空间的大小
较小
较大,约为2倍

常规使用操作:

  • MYISAM 节约空间,速度较快

  • INNODB 安全性高,事物的处理,多表多用户操作

在物理空间存在的位置

所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库

本质还是文件的存储!

MySQL引擎在物理文件上的区别:

  • innoDB在数据库中只有一个*.frm文件,以及上级目录下的 ibdata1 文件

  • MYISAM对应文件

    • *.frm 表结构的定义文件

    • *.MYD 数据文件(data)

    • *.MYI 索引文件(index)

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

CHARSET=utf8

不设置的话,会是mysql默认的字符集编码(不支持中文!)

MySQL的默认编码是Latin1,不支持中文

在my.ini中配置默认的编码

character-set-server=utf8

 

2.6、修改删除表

修改表的名字和字段

复制代码
-- 修改表名:ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
-- 增加表的字段:ALTER TABLE 表名 ADD 字段名 列属性()
ALTER TABLE teacher1 ADD age INT(11)

-- 修改表的字段 (重命名,修改约束!)
-- ALTER TABLE 表名 MODIFY 字段名  列属性()
ALTER TABLE teacher1 MODIFY age VARCHAR(11)   --修改约束
-- ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性()
ALTER TABLE teacher1 CHANGE age age1 INT(1)   --字段重命名

-- ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1
复制代码

删除表

-- 如果表存在的话(所有的创建和删除操作尽量加上判断)
DROP TABLE IF EXISTS teacher1

本文作者:Li-An

本文链接:https://www.cnblogs.com/Li-An/p/16429019.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   理暗  阅读(38)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起