date YYYY-MM-DD 日期格式
time HH: mm: ss 时间格式
datetime YYYY-MM-DD HH: mm: ss 最常用的时间格式
timestamp 时间戳, 1970.1.1到现在的毫秒数
year 年份表示
4.null
没有值
三,操作数据库
1.增加数据
insert into 表名 (名称,名称) value (值,值);
insert into 表名 values (值,值);
2.删除数据
delete from 表名 where ???=???;
3.展示数据
select * from 表名;
4.新建数据库
create database 库名;
5.新建表
creat table 表明(
字段名字 数据类型 修饰
);
create table user(id int(8) not null auto_increment,
name char(30),
primary key(id));
6.修改数据
update 表名 set 名称=新值 where 条件;
7.查找数据
select * from darft where 条件;
8.删除数据库
drop database 库名;
四,数据库的字段属性
1.Unsight
无符号的整数
声明了该列不能声明为负数
2.zetofill
0填充的
不足的位数,使用0来填充, int (3), 5->005
3.自增
通常理解为自增,自动在上一条记录的基础上+1(默认)
通常用来设计唯一的主键~index,必须是整数类型
可以自定义设计主键自增的起始值和步长
4.非空 NULL not null
假设设置为not null,如果不给它赋值,就会报错!
NULL,如果不填写值,默认就是null
5.默认
设置默认的值
sex,默认值为男,如果不指定改列的值,则会有默认的值
五,MyISAM和InnoDB区别
1.数据表的类型
MYISAM
INNODB
事务支持
不支持
支持
数据行锁定
不支持
支持
外键约束
不支持
支持
全文索引
支持
不支持
表空间的大小
较小
较大,约为2倍
2.常规使用操作
MYISAM: 节约空间,速度较快
INNODB: 安全性高,事务的处理,多表多用户操作
六,修改和删除数据字段
修改表名 :ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
增加表的字段:ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11)
修改表的字段:(重命名,修改约束!)
ALTER TABLE teacher1 MODIFY age VARCHAR(11) --修改约束
ALTER TABLE teacher1 CHANGE age age1 INT(1) --字段重命名
删除表的字段
ALTER TABLE teacher1 DROP age1
七,DML语言
数据库意义:数据存储,数据管理
DML语言:数据操作语言
Insert
update
delete
1.添加
插入语句(添加)
insert into 表名([字段名1,字段名2,字段名3])values(‘值1’,‘值2’,‘值3’,…)
由于主键自增我们可以省略(如果不写表的字段,他就会一一匹配)
一般写插入语句,我们一定要数据和字段一一对应
2.修改
语法:UPDATE 表名 set colnum_name = value,[colnum_name = value,…] where [条件]
3.删除
语法:delete from 表名 [where 条件]
八,where条件语句
作用:检索数据中符合条件的值
逻辑运算符
运算符
语法
描述
and &&
a and b a&&b
逻辑与,两个都为真,结果为真
or ||
a or b a||b
逻辑或,其中一个为真,则结果为真
Not !
not a ! a
逻辑非,真为假,假为真
模糊查询:比较运算符
运算符
语法
描述
IS NULL
a is null
如果操作符为NULL,结果为真
IS NOT NULL
a is not null
如果操作符不为null,结果为真
BETWEEN
a between b and c
若a在b和c之间,则结果为真
LIKE
a like b
SQL匹配,如果a匹配b,则结果为真
in
a in (a1,a2,a2…)
假设a在a1,或者a2…其中的某一个值中,结果为真
联表查询
操作
描述
Inner join
如果表中至少有一个匹配,就返回行
left join
会从左表中返回所有的值,即使右表中没有匹配
right join
会从右表中返回所有的值,即使左表中没有匹配
九,分页和排序
1.排序
排序:升序ASC,降序DESC
SELECT s.'StudentNO','StudentName','StudentResult'
FROM student s
INNER JOIN 'result' r
ON s.Student = r.StudentNo
INNER JOIN 'subject' sub
ON r.'StudentNO'=sub.'SubjectNO'
WHERE syvjectName ='数据库结构'
ORDER BY StudentResult ASC