2.操作数据库

# 2.操作数据库

操作数据库 > 操作数据库中的表 >操作数据库中表的数据

mysql关键字不区分大小写

下面做的笔记中,[]代表可选

2.1 操作数据库

1.创建数据库

CREATE DATABASE [IF NOT EXISTS] school

2.删除数据库

DROP DATABASE [IF EXISTS] school

3.使用数据库

USE `school` -- 如果你的表名或者字段名是一个特殊字符,就要带``

4.查看数据库

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

多记关键字

2.2数据库的列类型

  • 数值
    • tinyint 1B
    • smallint 2B
    • int 4B
    • bigint 8B
    • float 4B
    • double 8B
    • decimal 字符串形式的浮点数,用于金融计算
  • 字符串
    • char 字符串固定大小 0-255
    • varchar 可变字符串 0-65535
    • tinytext 微型文本 2^8-1
    • text 文本串 2^16-1
  • 时间和日期
    • date YYYY-MM-DD 日期格式
    • time HH:mm:ss 时间格式
    • datetime YYYY-MM-DD HH:mm:ss
    • timestamp 时间戳 1970.1.1到现在的毫秒数
    • year 年份
  • null
    • 没有值
    • 不要使用NULL进行运算,结果为NULL

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

1.Unsigned:

  • 无符号的整数->不能为负数

2.zerofill:

  • 0填充,不足的位数,使用0来填充 int(5),5 --- 00005

image-20211016000350410

3.AUTO_INCREMENT:

  • 自动在上一条记录基础上+1(上面那个图片就是设置了自增)
  • 通常用来设置唯一的主键-index,必须是整数类型(一般主键才设置自增)

4.Not Null:

  • 设置为非空之后不赋值就会报错,主键一定要设置NOT NULL

5.DEFAULT:

  • 设置默认值

2.4创建数据库表(重点)

一个创建例子

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 '密码',
    `gender` 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=utf8mb4;  

总结:DEFAULT的两种搭配

  • 设置了NOT NULL 就要设置一个 DEFAULT

  • 不设置NOT NULL 就设置 DEFAULT NULL

这两种方法设置好之后不赋值也不会报错

格式:

CREATE TABLE [IF NOT EXISTS] `表名`( 
    `字段名` 列类型 [属性] [索引] [注释],
    `字段名` 列类型 [属性] [索引] [注释],
    `字段名` 列类型 [属性] [索引] [注释],
    ···
    `字段名` 列类型 [属性] [索引] [注释] -- 最后一行不用加逗号
)[表引擎][字符集][注释]

一些常用命令

show create database school -- 查看创建数据库的语句
show create table student -- 查看数据表的定义语句
desc student -- 显示表的结构

2.5数据表的类型

数据库引擎

  • INNODB 默认使用

  • MYISAM 早些年使用的

数据库表的字符集编码

CHARSET=utf8mb4

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

2.6修改删除

修改

-- 修改表名
ALTER TABLE teacher RENAME AS teacher1
-- 增加表的字段
ALTER TABLE teacher ADD age INT(11)
-- 修改表的字段
ALTER TABLE teacher MODIFY age VARCHAR(11) -- 修改约束
ALTER TABLE teacher CHANGE age age1 INT(1) -- 字段重命名
/*
CHANGE可以修改约束和重命名
MODIFY只能修改约束
*/

删除

-- 删除表的字段
ALTER TABLE teacher DROP age
-- 删除表
DROP TABLE IF EXISTS teacher
posted @ 2021-10-16 11:42  NoMad15234  阅读(52)  评论(0)    收藏  举报