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

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

浙公网安备 33010602011771号