三范式 与 MySQL语句

第一范式的目标是确保每列的原子性
第二范式要求每个表只描述一件事情(消除部分依赖)
第三范式(消除传递依赖)与主键要直接相关,不能间接相关。


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语句中,但是毫无意义

猜你喜欢

转载自blog.csdn.net/yehaotianyhy/article/details/80371375