数据库 --> 数据表 --> 行(记录):用来描述一个对象的信息
列(字段):用来描述对象的一个属性
mysql常用的数据类型
int(n);整理 范围 4个字节 (-2147483628-2147483647)
float(m,d):单精度浮点 4字节32位 m字数个数,d小数位
double:双精度浮点 8字节64位
char:固定长度的字符类型
varchar:可变长度的字符类型
text:文本
image:图片
decimal(5,2):5个有效长度数字,小数点后面有2位(+-000.00~999.99)
char 和 varchar 的区别
char无论是否有值,都会占用固定长度的字节大小。
varchar在保存字符时,会默认加一个隐藏的结束符,因此结束会多一个字节,且保存不同字符时候占用的字节大小会不一样
char 和 varchar 的优劣比较
varchar 比 char 更加省磁盘空间
但是varchar的读写速度比char慢,因此char是连续的磁盘空间,因而varchar在多次增删改查中会产生一些磁盘空间碎片
对于数据库的增删改查
查看数据库
1.查看当前服务器中的数据库
SHOW DATABASES; #大小写不区分,分号“;”表示结束
2.查看数据库中包含的表
[方法一]
USE 数据库名;
SHOW TABLES;
[方法二]
show tables from 数据库名; #查看某个库中的表
3.查看表的结构(字段)
[方法一]
USE 数据库名;
[方法二]
DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名; #以表格形式显示表结构
[方法三]
use 数据库名;
show create table 表名; #以命令行形式显示表结构
4.查看指定表中的所有数据
[方法一]
横向查询表中所有数据
select * from 表名;
[方法二]
纵向查寻表中所有数据
select * from 表名\G
mysql的分页语句
select * from 表名 limit 2; ¥显示第二行的值
select * from 表名 limit 2,3; #显示第2行后的前3行(即显示第3~5行)
select * from 表名 limit 19,11; #查看第20行到第30行的记录 select * from 表名 id>=10 and id<=20; #查看id值在10到20之间的数据记录
### SQL语言分类
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操作语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或更改数据库用户或者角色权限
创建数据库,表
1.创建新的数据库
create databases 数据库名;
2.创建新的表
create table 表名 (字段1 数据类型, 字段2 数据类型 [......][,PRIMARY KEY (主键名)]);
删除数据库,表
1.删除指定的数据库
drop table [数据库名.]表名;
2.删除指定的数据库
drop database 数据库名;
向数据表中插入新的数据记录
1.向数据表中插入新的数据记录
[方法一]
为所有字段插入值
insert into 表名 values (所有字段的值); #每个字段值用逗号相隔开
[方法二]
为指定字段插入值
insert into 表名(字段1,字段2[,......])values(字段1的值,字段2的值......); #如果字段属性为 NO NULL 则必须为该字段加值
修改数据表中的数据
update 表名 set 字段名1=字段名1[,字段名2=字段名2] [WHERE 条件表达式];
删除数据表中的数据
delete from 表名 [WHERE 条件表达式]; #删除一定要加条件,不然会删除整个表的数据
修改表名和表结构
1.修改表名
alter table 旧表名 rename 新表名
2.扩展表结构(增加字段) add
alter table 表名 add 字段名 数据类型;
3.修改字段名 添加唯一键
alter table 表名 change 旧字段名 新字段名 [数据类型] [约束];
4.删除字段 drop
alter table 表名 drop 字段名;
主键primary 和 唯一键unique key
共同点:字段的值都是唯一的,不允许有重复值
不同点:
自定义的表只能有一个主键,但是可以有多个唯一键。
主键字段中不允许有null值,唯一键允许有null值
案件扩展
七大约束
非空约束:not null
唯一键约束:unique key
主键约束:primary key
自增约束 auto_increment
默认值约束:default
零填充约束:zerofill
外键约束:foreign key