MySQL数据库(一)
一,数据库概述
1,概述
特指计算机软件的一种
2,数据库的分类
-
关系型数据库(SQL), 由多张互相连接的二维行列表组成的数据库
优点:
- 容易理解
- 使用方便
- 易于维护
缺点:
- i/o瓶颈
- 扩展性不够
-
非关系型数据库NoSQL
分类:
- 列式存储
- key-value 键值型高性能并发读写
- 文档存储 mongodb
缺点:学习成本高 ,不同数据库操作完全不同
二,MySQL介绍
1,简介
MySQL是一个关键型数据库管理系统
在WEB应用方面
特点:
- 开源
- 支持大型数据库
- 使用标准的SQL
- 兼容好, 支持多种语言
2,MySQL中的数据结构
库
表
表结构:
- 表头:每一列的名称
- 列:具有相同数据类型的数据的集合
- 行:一条记录
- 值:
- 键:
3,数据类型
三大类:
-
数值
类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值 INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值 BIGINT 8 字节 (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值 FLOAT 4 字节 (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值 DOUBLE 8 字节 (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值 DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值 -
时间日期
类型 大小 (字节) 范围 格式 用途 DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值 TIME 3 ‘-838:59:59’/‘838:59:59’ HH:MM:SS 时间值或持续时间 YEAR 1 1901/2155 YYYY 年份值 DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值 TIMESTAMP 4 1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 YYYYMMDD HHMMSS 混合日期和时间值,时间戳 -
字符串
类型 大小 用途 CHAR 0-255字节 定长字符串 VARCHAR 0-65535 字节 变长字符串 TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串 TINYTEXT 0-255字节 短文本字符串 BLOB 0-65 535字节 二进制形式的长文本数据 TEXT 0-65 535字节 长文本数据 MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据 MEDIUMTEXT 0-16 777 215字节 中等长度文本数据 LONGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据 LONGTEXT 0-4 294 967 295字节 极大文本数据
三,MySQL的常用操作
1.MySQL的进入与退出
mysql –uusername -ppassword
mysql> exit
2.MySQL库级操作
- 显示所有的库
show databases;
- 创建数据库
create database 数据库名 charset=utf8;
- 删除数据库
drop database 数据库名;
- 选择数据库
use 数据名;
3.表级操作
-
显示所有的表
show tables;
-
创建表
create table 表名 (字段名 字段类型,字段2 类型, ...)
create table student ( id int unsigned primary key auto_increment, name varchar(20) not null, sex tinyint unsigned default 1, age tinyint unsigned );
-
显示创表信息
show create table 表名;
-
显示表结构
desc 表名;
-
删除表
drop table 表名;
语法总结:
- 大小写:关键字不严格区分大小写,但是表名,库名大小写敏感
- 语句结束符:默认情况下每个语句以分号结尾
;
- 类型:强制数据类型
- 逗号:创建表的时候,最后一个字段后面别加逗号
4.数据操作
crud 操作 create read update delete
-
插入数据
# 指定字段插入 insert into 表名 (字段1, 字段2,.....) values (value1, val2,...); # 全字段插入 insert into 表名 values (all_values); # 多行插入 insert into 表名 (字段1, 字段2,.....) values (value1, val2,...), (value1, val2,...), (value1, val2,...);
-
查询数据
select 字段1,字段2,.. from 表名 [where 子句];
案例:
-
指定字段查询
select name, age from student;
-
全字段查询
select * from student;
-
带条件的查询
查询年龄等于18的学生
select * from student where age=18;
-
-
更新数据
update 表名 set 字段=新值, 字段2=新值2,... [where 子句];
-
修改所有数据
update student set sex=1;
-
修改满足条件的数据
update student set sex=1 where name='ww';
-
修改多字段
update student set sex=0, age=16 where id=2;
总结:
- 可以更新一个或多个字段
- 可以在where子句中指定任意条件,不加条件慎用。
-
-
删除数据
delete from 表名 [where 子句];
-
删除满足条件的数据
delete from student where id = 1;
-
删掉所有数据
delete from student;
总结;
- 如果你没有指定where子句,表中所有的数据都会被删除
- where子句可以指定任何条件
-