导出:mysqldump –u用户名 –p密码 数据库名>生成的脚本文件路径;php
demo:
java
mysqldump -uroot -proot test1>e:/chuanzhi/note/da1.sqlmysql
导入(数据库必须有):mysql -u用户名 -p用户名 数据库<要导入的数据库的脚本路径ios
demo: sql
mysql -uroot -proot test1<e:/chuanzhi/note/da1.sql数据库
注意:数据在哪边,口就朝向哪边。工具
注意:
ui
(1)该字段必须是数值类型
spa
(2)该字段必须是主键
事务
demo:
create table users(id int primary key auto_increment,username varchar(32));
(1)insert into users values(1,'zhangsan');
(2)insert into users values('lisi');
(3)insert into users (username)values('wangwu');
导入数据:
若是原始的数据库和将要导入的数据库不一致时,不会导入成功。
解决办法:
删除原始库中的这一行:
use 库名;
做用:保证了数据的完整性。
create table cars(id int primary key auto_increment,name varchar(32),uid int,foreign key(uid) references users(id));
SELECT username,carname FROM users,cars;
select u.username,c.name from users u,cars c where c.uid=u.id;
Inner join on
select u.username,c.name from users u inner join cars c on c.uid=u.id;(和上述条件查询同样的结果)
Left join on
select u.username,c.name from users u left join cars c on c.uid=u.id;
Right join on
select u.username,c.name from users u right join cars c on c.uid=u.id;
左链接以左边的表为主表,左边为空的数据会显示出来。
反过来同样。
书写格式:
select 字段 from 表名 链接方式(内左右) 表名 on 条件
链接方式(内左右) 表名 on 条件
........
看成两个表,取的别名不同便可
demo:
select e.employee,m.employee from emply e,emply m where e.manager=m.employid;
Start transation
Commit
Rollback
(commit提交以后回滚不了)
例子:主表 Person (id name)
子表 身份证号 (id)
子表的:主键又是外键
例子(学生选课):
-- 学生表
CREATE TABLE students(
id INT PRIMARY KEY,
username VARCHAR(32)
);
-- 课程表
CREATE TABLE course(
id INT PRIMARY KEY,
cname VARCHAR(32)
);
-- 中间表
CREATE TABLE sc(
sid INT,
cid INT ,
PRIMARY KEY(sid,cid),
FOREIGN KEY (sid) REFERENCES students (id),
FOREIGN KEY (cid) REFERENCES course (id)
)
-- 插入student数据
INSERT INTO students VALUES(1,'zhangsan');
INSERT INTO students VALUES(2,'lisi');
INSERT INTO students VALUES(3,'lili');
-- 插入课程
INSERT INTO course VALUES (1,'java');
INSERT INTO course VALUES (2,'php');
INSERT INTO course VALUES (3,'ios');
-- 选课
INSERT INTO sc VALUES (1,3);
INSERT INTO sc VALUES (2,1);
INSERT INTO sc VALUES (3,2);
-- 某人选择某课
SELECT username,cname FROM students s INNER JOIN sc ON s.id = sc.sid
INNER JOIN course c ON sc.cid = c.id;
SELECT username,cname FROM students s LEFT JOIN sc ON s.id = sc.sid
LEFT JOIN course c ON sc.cid = c.id ;
SELECT username,cname FROM students s RIGHT JOIN sc ON s.id = sc.sid
RIGHT JOIN course c ON sc.cid = c.id