一、数据库的基本操作
1 CREATE DATABASE mybookstore; 2 DROP DATABASE mybookstore;
二、表的基本操作
1、创建表
insert into 表名(字段名1,字段名2) values(值1,值2);
1 CREATE TABLE student( 2 id INT, 3 `name` VARCHAR(50) 4 );
2、删除表
delete from 表名 where语句;
DROP TABLE student;
3、修改表
update 表名 set 字段名1=字段值,字段名2=字段值 where语句
update dept set dept_name=‘人事部门‘ where id=4
4、查询表
select 字段名1,字段名2 from 表名 where语句
SELECT * FROM stu WHERE id=3;
三、表查询关键字
1、关键字使用及SQL语句顺序
select 列名1,列名2...
from 表1
join 表2
on 连接条件
where 过滤条件
group by 分组条件1,分组条件2
having 聚合函数过滤
order by 排序列1,排序列2
limit 分页
2、执行顺序:from—>on—>join—>where—>group by—>with—>having—>select—>distinct—>order by —>limit
四、约束
1、主键[primary key ]:可以唯一的表示一行数据,可以快捷的检索到一条数据!(唯一、非空、可以被引用)
2、自增:auto_increment:自增仅仅适用于数值类型的值!
3、非空:not null :表示当前字段值不能为null
4、唯一:unique:表示当前字段值必须是唯一的
5、注意一点:约束必须放在列名类型后面,至于多个约束的顺序无所谓!
6、外键:
外键关联指的是将一个表中的列和另一个表的主键进行关联!
1)一对一
经典案例:夫妻
1 /*一对一:夫妻*/ 2 CREATE TABLE husband( 3 id INT PRIMARY KEY AUTO_INCREMENT, 4 `name` VARCHAR(20) NOT NULL 5 ); 6 7 INSERT INTO husband VALUES(1,‘张三‘); 8 INSERT INTO husband VALUES(2,‘王五‘); 9 10 CREATE TABLE wife( 11 id INT PRIMARY KEY AUTO_INCREMENT, 12 `name` VARCHAR(20) NOT NULL, 13 FOREIGN KEY(id) REFERENCES husband(id) 14 ); 15 INSERT INTO wife VALUES(1,‘李四‘); 16 INSERT INTO wife VALUES(2,‘赵六‘); 17 INSERT INTO wife VALUES(1,‘李静‘); /*由于一对一约束,此行插入失败*/
2)一对多[多对一]
通常是在多的一端关联一的主键!通常将外键建在多的一端!
经典案例:部门表与员工表 dept& emp
1 /*一对多:员工-部门*/ 2 DROP TABLE dept; 3 CREATE TABLE dept( 4 id INT PRIMARY KEY AUTO_INCREMENT, 5 dept_name VARCHAR(10) NOT NULL UNIQUE 6 ); 7 INSERT INTO dept VALUES(NULL,‘开发部门‘); 8 9 DROP TABLE emp; 10 CREATE TABLE emp( 11 id INT PRIMARY KEY AUTO_INCREMENT, 12 `name` VARCHAR(30) NOT NULL UNIQUE, 13 dept_id INT , 14 FOREIGN KEY(dept_id) REFERENCES dept(id) 15 ); 16 INSERT INTO emp VALUES(NULL,‘张三‘,1); 17 INSERT INTO emp VALUES(NULL,‘李四‘,1); 18 INSERT INTO emp VALUES(NULL,‘王五‘,1);
3)多对多
经典案例:教师 学生
1 /*多对多:教师-学生*/ 2 CREATE TABLE teacher( 3 id INT PRIMARY KEY AUTO_INCREMENT, 4 `name` VARCHAR(20) NOT NULL 5 ); 6 INSERT INTO teacher VALUES(NULL,‘李老师‘); 7 INSERT INTO teacher VALUES(NULL,‘刘老师‘); 8 INSERT INTO teacher VALUES(NULL,‘王老师‘); 9 10 CREATE TABLE student( 11 id INT PRIMARY KEY AUTO_INCREMENT, 12 `name` VARCHAR(20) NOT NULL 13 ); 14 INSERT INTO student VALUES(NULL,‘严涛‘); 15 INSERT INTO student VALUES(NULL,‘杨涛‘); 16 INSERT INTO student VALUES(NULL,‘邹梦洁‘); 17 18 CREATE TABLE tea_stu( 19 tea_id INT, 20 stu_id INT, 21 FOREIGN KEY(tea_id) REFERENCES teacher(id), 22 FOREIGN KEY(stu_id) REFERENCES student(id) 23 ); 24 INSERT INTO tea_stu VALUES(1,1); 25 INSERT INTO tea_stu VALUES(1,2); 26 INSERT INTO tea_stu VALUES(1,3); 27 INSERT INTO tea_stu VALUES(2,1); 28 INSERT INTO tea_stu VALUES(2,1);