一、初始MySQL
1.1MySQL简介
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。 MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。 MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
1.2数据库分类
- 关系型数据库:SQL
- MySQL,Oracle ,SQL Server,DB2,SQLiite
- 通过表和表之间,行和列之间的关系进行数据的存储
- 非关系型数据库:(NoSQL)not only SQL
- Redis,MongDB
- 非关系型数据库,对象存储,通过对象的自身属性来决定
二、操作数据库
2.1创建数据库
create database [if not exists] 数据库名;
create database [if not exists]test;
2.2使用数据库
use 数据库名;
use test;
2.3查看所有数据库
show databases;
show databases;
2.4删除数据库
drop database 数据库名
drop database test;
2.5查看所有的表
show tables;
show tables;
2.6 删除数据库
drop database [if exists ] 数据库名
drop database if exists test;
三、数据类型
3.1数据的列类型
- 数值
tinyint :十分小的数据 1个字节 smallint : 较小的数据 2个字节 mediumint :中等大小的数据 3个字节 int : 常用类型 4个字节 bigint : 大整数 8个字节 float :单精度浮点数 4个字节 double : 双精度浮点数 8个字节 decimal:字符串形式的浮点数 在金融、高精度的情况下常被使用 eg:decimal(2,9)九位数 小数占两位
- 字符串
char 字符串 范围 0 ~ 255 varchar 字符串 范围 0 ~ 65535 tinytext 微型文本 2的八次方-1 text 文本串 2的十六次方-1
- 时间日期
Date YY-MM-DD 日期 Time HH:mm:ss 时间格式 datetime YY-MM-DD HH:mm:ss 最常用的时间格式 timestamp 时间戳 从1970-1-1到现在的毫秒数 year 年份表示 unsigned
- null
没有值,未知
- 注:int 的长度是指显示宽度,与其存储位数大小无关,而varchar的长度则是指字符串的长度
3.2 数据库的字段属性
- unsigned
无符号整数,声明后不能为负数
- 零填充
将不足的位数用0填充,比如3,它只有一位,但是要求显示三位则会在其前面加0,变成003
- 自增(auto_increment)
通常理解为,自动在上一条记录的基础上加一(默认)
通常被设计为唯一的主键,必须为整数类型 - not null 非空
假设设置为not null,那么在插入数据时,不为其赋值就会报错。
不设置not null默认为空 - default 默认
设置默认值
3.3创建表
- 格式
CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名` 列类型 [属性] 索引 [注释],
`字段名` 列类型 [属性] 索引 [注释],
....,
`字段名` 列类型 [属性] 索引 [注释]
)[ENGINE=表类型][字符集设置][注释]
- 示例
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 '性别',
`brithday` DATETIME DEFAULT NULL COMMENT '出身日期',
`address` VARCHAR(50) DEFAULT NULL COMMENT '家庭住址',
`email` VARBINARY(50) DEFAULT NULL COMMENT '电子邮箱',
PRIMARY KEY(`id`)`student`
)ENGINE=INNODB DEFAULT CHARSET=utf8
- 注意
– 注意,使用(),表的名称和字段尽量使用``括起来
– AUTO_INCREMENT 自增
– 字符串一般使用’'括起来
– 所有的语句后面加, (英文的),最后一个不用加
– 主键 primary key 主键,一般一个表只有唯一的一个主键 - 查看创建命令
show create database 数据库名 eg: show create database test; -- 查看数据库创建sql show create table 表名 eg:show create table user; -- 查看表创建sql desc 表名 eg: desc student; -- 查看表的结构