導出: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