数据库的增删改查
增:create database [if not exists ] 数据库名 [charset 字符集] [collate 字符排序规则];
说明:
1,if not exists:用于判断是否存在该数据库名,如果存在则不执行该语句
2,字符集: 意图数据存储到本数据库中的时候所使用的字符编码名称,通常utf8,也可以gbk。
3,字符排序规则通常不设置,而是使用所设定的字符集的默认规则(每个字符集都有一个默认的排序规则);
什么叫排序规则:设定一个字符集中的所有字符怎么排列先后顺序的规则。
“中”,“国”,“人”:
Show charset :查看字符集
Show collate :查看排列规则
Exp:Create database z_0222 charset utf8;
查询:
Show databases;
删:drop database 数据库名;
Exp:drop database z_0222;
修改数据库:
·alter database 数据库名 character set=新字符集 collate=新校对集;
进入数据库:
Use 库名
通常,要进行数据中的数据表和数据的操作,都必须先“进入”该数据库。
问题:在cmd使用set names utf8,然后得到乱码了?
1,cmd,必须使用gbk
2,php文件中,可以根据文件的编码来定:utf8编码就是用utf8,ANSI编码(gbk)就用gbk
表的增删改查:
查:
Show tables;
增:
create table [if not exists] 表名(
字段列表, [约束或索引列表],
字段列表, [约束或索引列表],
索引
约束
) [表选项列表];
Exp:create table login(
Id int,
Name varchar(10),
Age char(1)
);
删:drop table 表名;
查看表结构:
Desc 表名;
数据类型:
整数类型
分为:
tinyint(1字节), smallint(2字节), mediumint(3字节),int(4字节), bigint(8字节)
默认情况下,这些整数类型都是可正可负的,那么:
tinyInt就只能存储: -128--127这些数
小数类型
可以分为:
单精度浮点型: float,非精确数,通常不设定长度
双精度浮点:double,非精确数,通常不设定长度
定点型:decimal,精确数,通常,定点型需要设定长度,形式为:decimal(总长, 小数位数)
时间日期类型
有如下:
date, time, datetime, year, timestamp
注意:
写入数据库时,直接的时间日期数据,应该用单引号引起了。‘2018-08-11 08:39:32’
year类型可以是4位整数或4位纯数字字符串,也可以是2位整数或2位纯数字字符串
2018 ‘2018’
timestamp表示的含义是“时间戳”,其实就是指“当前时刻”,本质上是一个数字,代表从1970年1月1日0点0分0秒到某个时间之间的秒数数值。该类型的字段值无需赋值,而是会自动取得当前时间值。
字符串类型
最基本最重要的2个:
varchar类型:可变长度字符串类型。最多能存储65532个字节的字符串——也还要考虑字符编码。设定的长度只是最长长度,但可以不存满,则实际长度以数据长度为准。
Varchart(10)
char类型:定长字符串类型。最多能存储256个字符。如果存储的数据不足设定的长度,则会自动补空格填满。
设定时都需要给定长度,比如:varchar(20), char(6);
mysql,一行的所有内容的总的存储长度也有个限制,约65535个。
2个二进制文本:
binary: 类似char,只是里面不存“文本”,而是存“文本的二进制数据”
varbinary: ,类似varchar,同样,不存“文本”,而是存“文本的二进制数据”
2个大文本类型:
text: 可以存储“超大文本”,且其实际的长度并不占用一行的长度。相对char和varchar,效率低。
blob: 可以存储“超大二进制文本”,通常用于存储图片这种“二进制数据”
2个有关“选项”的文本存储形式:
enum:专门用于方便存储类似表单中的“单选项”的值。
形式: 篮球,足球,乒乓球 varchart(20)
enum(‘选项1’,‘选项2’,‘选项3’,......)
这些选项的值虽然是字符串,但其数据库内部存储其实是数字(效率高),他们的数字值是:1, 2, 3,4, 5,。。。。。最多6万多个。
set:专门用于方便存储类似表单中的“多选项”的值。
形式:篮球,足球,乒乓球
set (‘选项1’,‘选项2’,‘选项3’,......)
这些选项的值虽然是字符串,但其数据库内部存储其实是数字(效率高),他们对应的数字值是:1, 2,4, 8, 16,。。。。。最多6万多个
7=1+2+4
可见,enum,set类型的字段,限制的“字符串”数据值。