一、数据类型
1、字符串类型
(1)char(n):最大只能存储255个字符,n表示最大字符长度。字符包括字母,标点,汉字符号。 每个都是一个单位的字符。
(2)varchar(n): 最大能存储 65535 个字符。
(3)enum:在指定的数据中选择一个数据(单选)
(4)set:在指定的数据中可以选择一个或者多个数据(多选)
2、数值类型
(1)int(n) :存储整数,范围是正负21亿以内,不管int指定多长,最大只能11位数字。
(2)float(m,d):单精度浮点型,留存小数点后6-7位小数(m表示数据的总长度,d表示小数点后的位数)
(3)double(m,d):双精度浮点类型,留存小数点后15位(m表示数据的总长度,d表示小数点后的位数)
3、时间类型
(1)year : 年
(2)date:年月日('年-月-日')
(3)time:时分秒('时:分:秒')
(4)datetime:('年-月-日 时:分:秒')
写入时间的时候加引号。
二、表操作
1、创建表
语法格式:
create table 表名(
字段名 数据类型,
字段名 数据类型,
字段名 数据类型
);
字段名:列的表头
表中最后一个字段可以不加逗号
#创建学生健康卡。
create table health_card(
name char(6),
garden enum('男','女'),
age int(3),
body_t float(3,1),
birthday date
);
2、添加表数据
语法格式:
insert into 表名 values(值,值·······)
INSERT INTO health_card VALUES('小赵','女',18,36.5,'2000-03-25');
添加多个完整数据
INSERT INTO health_card VALUES
('王大锤','男',28,37.8,'1996-06-24'),
('艾星','女',20,36.5,'2001-04-25'),
('胡桃','女',19,36.8,'2003-05-25'),
('小殇','男',22,38.5,'2004-08-25'),
('陈恩里','男',17,37.6,'2006-12-25');
指定字段名填写表的内容
insert into health_card(name,body_t) values
('薛之谦',38.6),
('赵丽颖',37.2);
补充一个代码知识点---查询表结构
desc health_card;
3、增加字段
添加字段名到表末尾
alter table 表名 add 字段名 数据类型;
ALTER TABLE health_card ADD weight FLOAT(5,2);
-----添加字段到第一个字段
alter table 表名 add 字段名 数据类型 first;
ALTER TABLE health_card ADD id INT(4) FIRST;
------添加到指定的字段名后
alter table 表名 add 字段名 数据类型 after 指定的字段名;
ALTER TABLE health_card ADD id INT(4) after name;
4、修改字段数据类型
语法格式:
alter table 表名 modify column 字段名 数据类型(长度)
ALTER TABLE health_card MODIFY COLUMN weight DOUBLE(4,1);
注意:之前表中存在数据了数据 如果改的长度比之前小,那之前的数据就会被破坏。
alter table 表名 change 旧的字段名 新的字段名 数据类型;
ALTER TABLE health_card CHANGE weight wi DOUBLE(4,1);
5、删除字段名
语法格式:
alter table 表名 drop column 字段名;
ALTER TABLE health_card DROP COLUMN id;
6、清空表数据
语法格式:
delete from 表名;
DELETE FROM health_card;
7、删除表
语法格式:
drop table 表名;
drop TABLE h_c;
8、查询表数据
查询完整表数据
select * from 表名;
SELECT * FROM health_card;
查询指定表数据
select 字段名 from 表名;
SELECT name,body_t FROM health_card;
9、通过条件语句查询数据
比较符号
=
!=
>
<
>=
<=
逻辑运算
and
or
not
数字在什么什么之间
between
not between
in
not in
语法格式:
select 字段名 from 表名 where 条件;
SELECT name FROM health_card WHERE age>=20;
SELECT name FROM health_card WHERE body_t BETWEEN 36 and 37;
SELECT name FROM health_card WHERE age in(26,27,28);
10、聚合函数
求平均值
avg(字段名)
求最大值
max(字段名)
求最小值
min(字段名)
求和
sum(字段名)
统计字段名的数据多少个
count(字段名)
SELECT avg(age) FROM health_card;
SELECT COUNT(`name`) FROM health_card;
SELECT max(body_t) FROM health_card;
11、修改表名
语法格式:
RENAME TABLE 旧表名 TO 新表名;
RENAME TABLE XS TO STUDENT;