第一范式的目标是确保每列的原子性
第二范式要求每个表只描述一件事情(消除部分依赖)
第三范式(消除传递依赖)与主键要直接相关,不能间接相关。
drop database 数据库名; //删除数据库
show databases: //查看所有数据库
create database 数据库名: //新建数据库
创建表
create table 新表名(
id int(2),
name varchar(50)
);
添加主键
alter table 表名 add constraint 主键名 primary key 表名(主键字段)
修改表名
ALTER TABLE 旧表名 RENAME 新表名;
删除表
drop table 表名
添加字段
ALTER TABLE 表名 ADO 字段名 数据类型 ;
修改字段
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型;
删除字段
ALTER TABLE 表名 DROP 字段名;
分页
select * from 查询表名 LIMIT 0,10 第一个数是起始位置,第二个数字是查询个数
新增数据记录
CREATE TABLE a(
aid INT(4),
name VARCHAR(20)
)
插入数据记录
insert into 表名
values(值列表);
更新数据记录
update 表名
set id=123,name="大白"
where sex=0;
删除数据记录
delete from 表名 where name="大白";
子查询
select 条件 from 表 where 字段 比较运算符
(子查询);
ALTER TABLE a
ADD CONSTRAINT fk_a_b
FOREIGN KEY(bid)
REFERENCES b(bid)
ALTER TABLE grade
CHANGE gradeID gradeId INT(4) not NULL
DELETE FROM grade WHERE gradeName="赵云"
UPDATE grade
SET gradeName="大大白"
WHERE gradeId=2
子查询有返回结果:exists子查询结果为true
子查询没有返回结果:exists子查询结果为fales
select * from student
where exists(
select * from result
where studentNo = student.studentNo
里层查询可以使用外层查询字段
commit执行的时候会把之前所有sql语句和本次sql语句全部提交,下一次会把上一次的自动提交.
set autocommit默认是1表示单条sql语句执行完后自动提交,默认是0表示手动提交必须加commit;
查询语句可以放在sql语句中,但是毫无意义
第二范式要求每个表只描述一件事情(消除部分依赖)
第三范式(消除传递依赖)与主键要直接相关,不能间接相关。
drop database 数据库名; //删除数据库
show databases: //查看所有数据库
create database 数据库名: //新建数据库
创建表
create table 新表名(
id int(2),
name varchar(50)
);
添加主键
alter table 表名 add constraint 主键名 primary key 表名(主键字段)
修改表名
ALTER TABLE 旧表名 RENAME 新表名;
删除表
drop table 表名
添加字段
ALTER TABLE 表名 ADO 字段名 数据类型 ;
修改字段
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型;
删除字段
ALTER TABLE 表名 DROP 字段名;
分页
select * from 查询表名 LIMIT 0,10 第一个数是起始位置,第二个数字是查询个数
新增数据记录
CREATE TABLE a(
aid INT(4),
name VARCHAR(20)
)
插入数据记录
insert into 表名
values(值列表);
更新数据记录
update 表名
set id=123,name="大白"
where sex=0;
删除数据记录
delete from 表名 where name="大白";
子查询
select 条件 from 表 where 字段 比较运算符
(子查询);
ALTER TABLE a
ADD CONSTRAINT fk_a_b
FOREIGN KEY(bid)
REFERENCES b(bid)
ALTER TABLE grade
CHANGE gradeID gradeId INT(4) not NULL
DELETE FROM grade WHERE gradeName="赵云"
UPDATE grade
SET gradeName="大大白"
WHERE gradeId=2
子查询有返回结果:exists子查询结果为true
子查询没有返回结果:exists子查询结果为fales
select * from student
where exists(
select * from result
where studentNo = student.studentNo
里层查询可以使用外层查询字段
commit执行的时候会把之前所有sql语句和本次sql语句全部提交,下一次会把上一次的自动提交.
set autocommit默认是1表示单条sql语句执行完后自动提交,默认是0表示手动提交必须加commit;
查询语句可以放在sql语句中,但是毫无意义