2.1、操作数据库
MySQL不区分大小写
-
创建数据库
create database [if not exist] 名称
-
删除数据库
DROP DATABASE IF EXISTS student;
-
使用数据库
--如果表名或字段名是一个特殊符号,就需要带'' USE school;
-
查看数据库
SHOW DATABASES;
2.2、数据库的列类型
数值
-
tinyint 十分小的数据 1个字节
-
smallint 较小的数据 2个字节
-
mediumint 中等大小的数据 3个字节
-
int 标准的整数 4个字节
-
bigint 较大的数据 8个字节
-
float 浮点数 4个字节
-
double 浮点数 8个字节
-
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 时间格式
-
datetime YYYY-MM-DD HH:mm:ss 最常用时间格式
-
timestamp 时间戳 1970.1.1到现在的毫秒数
-
year 年份表示
-
null
-
没有值,未知
-
建议不要使用NULL进行运算,结果为NULL
2.3 数据库的字段属性(重点)
Unsigned:
-
无符号的正数
-
声明了该列不能声明为负数
zerofill:
-
0填充的
-
不足的位数,使用0来填充。
自增:
-
通常理解为自增,自动在上一条记录的基础上+1(默认)
-
通常用来设计唯一的逐渐~index,必须是整数类型
-
可以自定义设计主键自增的起始值和步长
非空 NULL not null
-
假设设置了非空,如果不给它赋值,就会报错。
-
Null,如果不填,就是空。
默认:
-
设置默认的值
-
sex,默认值为男,如果不指定该列的值,则会有默认的值。
2.4、创建数据库表(重点)
-- 目标:创建一个数据库:school -- 创建学生表(列,字段)使用SQL创建 -- 学号int 姓名name 性别sex -- 注意点,使用英文(),表的名称和字段尽量使用``括起来 -- AUTO_INCREMENT自增 -- 字符串使用 单引号括起来 -- 所有语句后面加,(英文的),最后一个不需要 -- PRIMARY KEY 主键,一般一个表只有唯一一个主键 CREATE TABLE IF NOT EXISTS `student`( `id` INT(5) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` VARCHAR(30) NOT NULL COMMENT '姓名', `sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别', PRIMARY KEY(`id`) )ENGINE=INNODB DEFAULT CHARSET=utf8
-
格式
CREATE TABLE [IF NOT EXISTS] `表名`( `字段名` 列类型 [属性] [索引] [注释], ..... `字段名` 列类型 [属性] [索引] [注释] )[ENGINE=表类型][DEFAULT字符集设置][CHARSET=utf8注释]
-
常用命令
SHOW CREATE DATABASE school --查看数据库语句 SHOW CREATE TABLE student -- 查看student数据表的定义 DESC student --显示表的结构 ALTER TABLE 旧表名 RENAME AS 新表名 -- 修改表名称 ALTER TABLE 表名 ADD 字段名 列属性[] -- 添加字段 ALTER TABLE 表名 MODIFY 字段 列属性[] --修改约束 ALTER TABLE 表名 CHANGE 字段 列属性[] --修改字段名 ALTER TABLE 表名 DROP 字段 --删除字段名
2.5、数据表的类型
INNODB --默认使用 MYISAM --早些年使用
MYISAM | INNODB | |
---|---|---|
事务支持 | NO | YES |
数据库锁定 | NO | YES |
外键约束 | NO | YES |
全文索引 | YES | NO |
表空间的大小 | 较小 | 较大,约为2倍 |
常规使用操作:
-
MYISAM 节约空间,速度较快
-
INNODB 安全性高,事务的处理,多表多用户操作
-- MySQL引擎在物理文件上的区别
-
INNODB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
-
MYISAM对应文件:
-
*.frm 表结构的定义文件
-
*.MYD 数据文件(data)
-
*.MYI 索引文件(index)
-
-- 设置数据库表的字符集编码
1. CHARSET=utf8
如果不设置,会自动是默认的字符集编码Latin1,不支持中文。
-
在my.ini中配置默认的编码(但是通用性不高,不建议这样使用)
2. character-set-server=utf8