msql 中对库、文件夹、文件的操作
一、库
库即文件夹
增:create database db charset utf8;
查:show databases;
show create database db;
改:alter database db charset gbk;
删:drop database db;
二、文件夹
在对文件夹进行修改时需要选择对应的库
增:create table student(id int,name char); create table db.student(id int,name char); 查:show tables; show create table student; desc student; 改:alter table student add age int; alter table student modify name char(15); alter table student change name NAME char(10); # 删除表格中的某一个属性 alter table student drop age; 删:drop table student;
1.创建表的完整语法:
create table 表名(字段名 字段类型[宽度 约束条件], 字段名 字段类型[宽度 约束条件]); # 规定 同一张表中,表名时不可一致的 宽度和约束条件时可以自由选择的 字段名和字段类型是必须有的
2.查看表的结构
desc 表名
3.数据类型
3.1整数类型
TINYINT SMALLINT MEDIUMINT INT BIGINT
(1)整型在创建时默认是有符号的(即+-)
create table tb(x tinyint); # 没有指定符号,即使用默认的
create table tb(x tinyint unsigned); # 指定不需要-号,即自定义符号
注意:整型后边的宽度限制根本就不是存储宽度,而是显示宽度
create table tb (x int(1));
set global sql_mode="strict_trans_tables"; # 必须重启客户端之后方可查看 # 查看方式 select @@sql_mode;
3.2 浮点型
FLOAT DOUBLE DECIMAL
(1)FLOAT 单精度浮点数
格式:float(m,d) m:表示数字总个数,最大值是255;d:表示小数点后的个数,最大值值是30
(2)DOUBLE 双精度浮点数
格式:double(m,d) m:表示数字总个数,最大值是255;d:表示小数点后的个数,最大值值是30
(3)DECIMAL 准确的小数值
格式:decimal(m,d) m:表示数字总个数(-号不算在内),最大值是60;d:表示小数点后的个数,最大值值是30
3.3 日期类型
DATE TIME DATETIME TIMESTAMP YEAR
格式:
time:00:00:00
date:9999-9-9
year:9999
datetime/timestamp:9999-9-9 00:00:00
create table student( id int primary key auto_increment, name char(15), born_year year, birth date, class_time time, log_time datetime ); insert into student(name,born_year,birth,class_time,log_time) values ('dawang',now(),now(),now(),now());
create table student( id int primary key auto_increment, name char(16), born_year year, birth date, class_time time, reg_time timestamp ); insert into student(name,born_year,birth,class_time,reg_time) values ('dawang',now(),now(),now());
3.4 字符类型
char:定长char(5)
varchar:变长varchar(5)
注意:宽度限制指的是字符的个数
相同点:
宽度指的都是最大存储的字符个数,超过了都是无法正常存储的
不同点:
char(5):'m'---'m '指的是5个字符,右边实际上会以空格自动填充
varchar(5):'m'---'m'指的是1个字符,什么事情都不会发生
set global sql_mode="strict_trans_tables,PAD_CHAR_TO_FULL_LENGTH";
在指定查找是需要注意的点:
mysql 在查询时,针对where 字段='值 '这种类型的,会自动忽略掉右边的空格,变成where 字段='值' 的格式
但是,但我们需要模糊匹配时就需要注意了,它是不会自动忽略掉右边的空格的。
% 表示的是在指定的字符之后可以是任意个数的字符
_ 表示的是在指定的字符之后只能有一个任意的字符
3.5 枚举与集合
枚举:enum('a','b','c')指的是从多个中选择一个
集合:set('a','b','c')指的是从多个中选择多个
create table student( name varchar(15), sex enum('male','female'), # 性别类型应该设置成从多个当中选择一个即可 hobbies set('read','music','play') #爱好这种类型可以有多个 );
三、文件
增:insert into student(id,name) values (1,'dawang'), (2,'xiaoer'); 查:select * from student; select name from db.student; select id,name from student; select id from student where id=2; 改:update db.student set name='DAWANG' where id =1; 删:delete from student where id =1; truncate student; # delete 和 truncate的区别: # delete 删除表格中某一行时,会保留之前的id,即在之后创建的数据id 都会以之前的为起始 # truncate 清除整个表格,id号会清空,下次新增的id会重新开始计数