MySQL(1)

環(huán)境:rhel7系統(tǒng)mysql
工具:secureCRT、UE

1.mysql的基本操作

1.1數(shù)據(jù)庫CURD

對數(shù)據(jù)庫進(jìn)行增(create)帮毁、刪(delete)涩堤、改(update)、查(Retrieve)操作暮芭。

1.1.1創(chuàng)建數(shù)據(jù)庫
  • 創(chuàng)建一個(gè)名稱為mydb1的數(shù)據(jù)庫。
    create database mydb1;

  • 創(chuàng)建一個(gè)使用utf-8字符集的mydb2數(shù)據(jù)庫欲低。
    create database mydb2 character set utf8;

  • 創(chuàng)建一個(gè)使用utf-8字符集辕宏,并帶校對規(guī)則的mydb3數(shù)據(jù)庫。會(huì)對存入的數(shù)據(jù)進(jìn)行檢查伸头。
    create database mydb3 character set utf8 collate utf8_general_ci;

1.1.2查看數(shù)據(jù)庫

顯示所有數(shù)據(jù)庫
show databases;

顯示創(chuàng)建數(shù)據(jù)庫的語句信息
show create database mydb2;

“` ”(ESC鍵 下面的按鍵)匾效,表示反引號(hào),默認(rèn)情況下恤磷,反引號(hào)括起來的字符串面哼,區(qū)分大小寫。
show create database mydb1;

注意 :mysql默認(rèn)語言集是latin1扫步,每次在創(chuàng)建數(shù)據(jù)庫的時(shí)候應(yīng)指定字符集魔策。Oracle是在安裝時(shí),即指定了字符集河胎。

1.1.3修改數(shù)據(jù)庫

修改mydb1的字符集為utf8(不能修改數(shù)據(jù)庫名)
alter database mydb1 character set utf8;

1.1.4刪除數(shù)據(jù)庫

刪除數(shù)據(jù)庫mydb3
drop database mydb3;

1.2表的CURD

對表本身進(jìn)行操作:創(chuàng)建闯袒,查看,修改游岳,刪除

1.2.1創(chuàng)建表

create table t1 (id int, name varchar(20))

但此時(shí)會(huì)報(bào)錯(cuò)誤:ERROR 1046 (3D000): No database selected政敢。注意,在mysql中對表操作前胚迫,必須先選擇所使用的數(shù)據(jù)庫喷户。
use mydb2;

查看當(dāng)前選擇的數(shù)據(jù)庫中的表:
show tables;

查看表結(jié)構(gòu):
desc t1;

在Mysql中顯示多行數(shù)據(jù)應(yīng)該在查詢語句結(jié)尾處添加 \G來替換結(jié)束標(biāo)記“;”

查看創(chuàng)建表的語法:
show create table t1; ENGINE=InnoDB 默認(rèn)指定的存儲(chǔ)引擎 innoDB访锻。

  • mysql中的數(shù)據(jù)類型
mysql數(shù)據(jù)類型
  • bit 1位  可以指定位數(shù)褪尝,如:bit(3)
  • int 2字節(jié) 可以指定最大位數(shù)闹获,如:int<4> 最大為4位的整數(shù)
  • float 2個(gè)字節(jié) 可以指定最大的位數(shù)和最大的小數(shù)位數(shù),如:float<5,2> 最大為一個(gè)5位的數(shù)河哑,小數(shù)位最多2位
  • double 4個(gè)字節(jié) 可以指定最大的位數(shù)和最大的小數(shù)位數(shù)避诽,如:float<6,4> 最大為一個(gè)6位的數(shù)沙庐,小數(shù)位最多4位
  • char  必須指定字符數(shù),如char(5) 為不可變字符 即使存儲(chǔ)的內(nèi)容為'ab',也是用5個(gè)字符的空間存儲(chǔ)這個(gè)數(shù)據(jù)
  • varchar 必須指定字符數(shù),如varchar(5) 為可變字符 如果存儲(chǔ)的內(nèi)容為'ab',占用2個(gè)字符的空間轨功;如果為'abc',則占用3個(gè)字符的空間
  • text: 大文本(大字符串)
  • blob:二進(jìn)制大數(shù)據(jù) 如圖片花盐,音頻文件算芯,視頻文件
  • date: 日期 如:'1921-01-02'
  • datetime: 日期+時(shí)間 如:'1921-01-02 12:23:43'
  • timeStamp: 時(shí)間戳职祷,自動(dòng)賦值為當(dāng)前日期時(shí)間

創(chuàng)建一個(gè)員工表:
create table employee(empno int, ename varchar(20), sal int);

1.2.2查看表

查看所有的表:
show tables;

查看指定表的創(chuàng)建語句
show create table employee; 注意,mysql表名稱區(qū)分大小寫

顯示指定表的結(jié)構(gòu):
desc employee;

1.2.3修改表

更改表名:
rename table employee to worker;

增加一個(gè)字段:
alter table employee add column height double; (column關(guān)鍵字在Oracle中,添加則語法錯(cuò)誤)

修改一個(gè)字段:
alter table employee modify column height float;

刪除一個(gè)字段:
alter table employee drop column height;

修改表的字符集:
alter table employee character set gbk;

1.2.4刪除表

刪除employee表
drop table employee; (MySQL中不能使用purge,添加會(huì)出現(xiàn)語法錯(cuò)誤)

1.3表數(shù)據(jù)的CURD
1.3.1create數(shù)據(jù)

創(chuàng)建一個(gè)員工表,新建employee表并向表中添加一些記錄:

create table employee(
id int,
name varchar(20),
sex int,
birthday date,
salary double,
entry_date date,
resume text
);
insert into employee values(1,'張三',1,'1983-04-27',15000,'2012-06-24','一個(gè)大牛');
insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(2,'李四',1,'1984-02-22',10000,'2012-07-24','一個(gè)中牛');
insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(3,'王五',0,'1985-08-28',7000,'2012-08-24','一個(gè)小蝦');
1.3.2update數(shù)據(jù)

將所有員工薪水都增加500元蜘醋。
update employee set salary=salary+500;

將王五的員工薪水修改為10000元编检,resume改為也是一個(gè)中牛
update employee set salary=10000, resume='也是一個(gè)中牛' where name='王五';

1.3.3delete數(shù)據(jù)

刪除表中姓名為王五的記錄厕怜。
delete from employee where name='王五'; 【注意from不能省略】

刪除表中所有記錄生百。
delete from employee;

使用truncate刪除表中記錄缀程。
truncate employee;--無條件 效率高

1.3.4Retrieve數(shù)據(jù)

select id, name as "名字", salary "月薪", salary*12 年薪 from employee where id >=2;

1.3.5綜合案例

創(chuàng)建一個(gè)學(xué)生表摆昧,插入數(shù)據(jù)

create table student(
id int,
name varchar(20),
chinese int,
english int,
math int
);
insert into student(id,name,chinese,english,math) values(1, '范建',80,85,90);
insert into student(id,name,chinese,english,math) values(2,'羅況',90,95,95);
insert into student(id,name,chinese,english,math) values(3,'杜子騰',80,96,96);
insert into student(id,name,chinese,english,math) values(4,'范冰',81,97,85);
insert into student(id,name,chinese,english,math) values(5,'申晶冰',85,84,90);
insert into student(id,name,chinese,english,math) values(6,'郝麗海',92,85,87);
insert into student(id,name,chinese,english,math) values(7,'郭迪輝',75,81,80);
insert into student(id,name,chinese,english,math) values(8,'拎壺沖',77,80,79);
insert into student(id,name,chinese,english,math) values(9,'任我行',95,85,85);
insert into student(id,name,chinese,english,math) values(10,'史泰香',94,85,84);
---------------------------------------
基礎(chǔ)SQL
查詢表中所有學(xué)生的信息。
select * from student;

查詢表中所有學(xué)生的姓名和對應(yīng)的英語成績曼追。
select name,english from student;

過濾表中重復(fù)數(shù)據(jù)针史。
select english from student;
select DISTINCT english from student;
select DISTINCT english,name from student;
select english+chinese+math from student;
select english+chinese+math as 總分 from student;
select name,english+chinese+math as 總分 from student;

在所有學(xué)生英語分?jǐn)?shù)上加10分特長分。
select name,english+10 from student;

統(tǒng)計(jì)每個(gè)學(xué)生的總分脆淹。
select english+chinese+math from student;

使用別名表示學(xué)生分?jǐn)?shù)
select name,english+chinese+math as 總分 from student;
select name,english+chinese+math 總分 from student;

查詢姓名為何東的學(xué)生成績
select * from student where name='何東';

查詢英語成績大于90分的同學(xué)
select * from student where english>90;

查詢總分大于250分的所有同學(xué)
select * from student where english+chinese+math>250;

查詢英語分?jǐn)?shù)在 85-95之間的同學(xué)盖溺。
select * from student where english>=85 and english<=95;
select * from student where english between 85 and 95;

查詢數(shù)學(xué)分?jǐn)?shù)為84,90,91的同學(xué)。
select * from student where math=84 or math=90 or math=91;
select * from student where math in(84,90,91);

查詢所有姓何的學(xué)生成績蝇庭。
select * from student where name like '何%';

查詢數(shù)學(xué)分>85,語文分>90的同學(xué)。
select * from student where math>85 and chinese>90;

對數(shù)學(xué)成績排序后輸出。
select * from student order by math;

對總分排序后輸出,然后再按從高到低的順序輸出
select * from student order by math+chinese+english desc;

對姓何的學(xué)生成績排序輸出
select * from student where name like '何%' order by math+chinese+english desc;
select name, math+chinese+english from student where name like '何%' order by math+chinese+english desc;

統(tǒng)計(jì)一個(gè)班級(jí)共有多少學(xué)生驳棱?
select count(*) from student;

統(tǒng)計(jì)數(shù)學(xué)成績大于90的學(xué)生有多少個(gè)?
select count(*) from student where math>90;

統(tǒng)計(jì)總分大于250的人數(shù)有多少?
select count(*) from student where math+chinese+english>250;

統(tǒng)計(jì)一個(gè)班級(jí)數(shù)學(xué)總成績?
select sum(math) from student;

統(tǒng)計(jì)一個(gè)班級(jí)語文恨闪、英語轻姿、數(shù)學(xué)各科的總成績
select sum(math), sum(chinese), sum(english) from student;

統(tǒng)計(jì)一個(gè)班級(jí)語文互亮、英語桨吊、數(shù)學(xué)的成績總和
select sum(math+chinese+english)from student;
select sum(math)+sum(chinese)+sum(english) from student;

求一個(gè)班級(jí)數(shù)學(xué)平均分?
select avg(math) from student;

求一個(gè)班級(jí)總分平均分
select avg(math+chinese+english)from student;
select avg(math)+avg(chinese)+avg(english) from student;

求班級(jí)最高分和最低分
select max(math+chinese+english),min(math+chinese+english) from student;

--分組數(shù)據(jù)
為學(xué)生表伸刃,增加一個(gè)班級(jí)列,練習(xí)分組查詢。        
alter table student add column class_id int;        
注意語法:Oracle中不能有“column”關(guān)鍵字,MySQL中有沒有“column”都可以執(zhí)行。

--更新表:
update student set class_id=1 where id<=5;
update student set class_id=2 where id>5;
(update student set class_id=2 where id between 6 and 10;)

查出各個(gè)班的總分任连,最高分例诀。
求各個(gè)班級(jí) 英語的平均分:
select classid, avg(english) 
from student
group by class_id
如根據(jù)組函數(shù)的語法要求随抠,將select后增加name列,而不加至group by 之后:
select name, classid, avg(english)
from student
group by classid;
會(huì)發(fā)現(xiàn)MySQL檢查不出錯(cuò)誤繁涂。相比Oracle數(shù)據(jù)庫拱她,MySQL分組檢查不嚴(yán)格。
select sum(math+chinese+english),max(math+chinese+english) from student group by class_id;

查詢出班級(jí)總分大于1300分的班級(jí)ID
select class_id from student group by class_id having sum(math+chinese+english)>1300;
select class_id from student where sum(math+chinese+english)>1300 group by class_id ;
對于組函數(shù)的應(yīng)用與Oracle類似扔罪,可以應(yīng)用于Having中秉沼,但不能用于where子句中。
1.4日期時(shí)間函數(shù)

MySQL里面時(shí)間分為三類:時(shí)間矿酵、日期唬复、時(shí)間戳(含有時(shí)分秒的sysdate)。
如執(zhí)行:select now(), year(now()) 年, month(now()) 月, day(now()) 日, date(now());

2

select CURRENT_DATE() , CURRENT_TIME(), CURRENT_TIMESTAMP() from dual;

3

昨天全肮、今天敞咧、明天:
select now()-1 昨天, now() 今天, now()+1 明天 from dual;
發(fā)現(xiàn)與Oracle中的日期加減操作有所不同。

4
select date_add(now(), INTERVAL 2 year) from dual;  //增加兩年
select date_add(now(), INTERVAL -1 day) 昨天, now() 今天, date_add(now(), INTERVAL +1 day) 明天;  

5.字符串相關(guān)函數(shù)

select concat('hello ', 'mysql ', 'haha ', 'hehe ') from dual;   
Oracle默認(rèn)只能拼兩個(gè)倔矾,如需多個(gè)拼接可以使用嵌套妄均。
select 'hello ' || 'mysql ' from dual;  ‘||’ 在 MySQL不可以使用。
5
日期轉(zhuǎn)字符串:
在MySQL中沒有to_date函數(shù)哪自,進(jìn)行日期轉(zhuǎn)換需使用date_format()來代替丰包。
select date_format('2013-5-11', 'yyyy-mm-dd') from dual;  在Oracle中的‘yyyy-mm-dd’MySQL下不支持。
select date_format(now(), '%Y-%m-%d') from dual;             y和Y不一樣壤巷。
select date_format(now(), '%Y-%c-%d %h:%i:%s') from dual;    c和m邑彪、M不一樣
所以yyyy-mm-dd hh24:mi:ss格式在MySQL中對應(yīng)'%Y-%c-%d %h:%i:%s'
字符串轉(zhuǎn)日期:
select str_to_date('2013-6-04 05:14:15' , '%Y-%c-%d %h:%i:%s') from dual;

6.數(shù)學(xué)相關(guān)函數(shù)

6

7.多表查詢

創(chuàng)建多表查詢案例——MySQL建表_仿照oracle建表腳本.sql 【mysql> source 絕對路徑/腳本名】

Oracle中連接方法:

  • 等值連接
  • 不等值連接
  • 外連接
  • 自連接

MySQL 使用SQL99標(biāo)準(zhǔn)的連接查詢(JOIN..ON..)

7.1交叉連接

叉集,即笛卡爾集

select e.*, d.*
from emp e cross join dept d

無連接條件

7.2內(nèi)連接(等值鏈接)

只返回滿足連接條件的數(shù)據(jù)(兩邊都有的才顯示)胧华。 對應(yīng)等值連接

select e.*, d.*
from emp e inner join dept d
on e.deptno=d.deptno

也可以省略inner關(guān)鍵字寄症。
對應(yīng)Oracle寫法:

select e.*, d.*
from emp e , dept d
where e.deptno=d.deptno
7.3左外連接

左邊有值才顯示。

select e.*, d.*
from emp e left outer join dept d
on e.deptno=d.deptno

也可以省略outer關(guān)鍵字

7.4 右外連接

右邊邊有值才顯示矩动。

select e.*, d.*
from emp e right outer join dept d
on e.deptno=d.deptno

也可以省略outer關(guān)鍵字

7.5 滿外聯(lián)接

任一邊有值就會(huì)顯示有巧。

select e.*, d.*
from emp e full outer join dept d       
on e.deptno=d.deptno

也可以省略outer關(guān)鍵字

7.6 對比練習(xí)
題目1:
查詢員工信息,員工號(hào),姓名,月薪,部門名稱
select ...
from emp e, dept d
where e.deptno = d.deptno;

Oracle實(shí)現(xiàn):
        select e.deptno, e.ename, e.sal, d.dname
        from emp e, dept d
        where e.deptno = d.deptno
SQL99實(shí)現(xiàn):
        select e.deptno, e.ename, e.sal, d.dname
        from emp e inner join dept d
        on e.deptno = d.deptno
對比記憶規(guī)律:
        “,” → [inner] join 
        where → on  
對比結(jié)論:mysql能識(shí)別Oracle中使用 = 連接的書寫方法。


題目2:
統(tǒng)計(jì)各個(gè)部門員工總?cè)藬?shù)
分析:部門包括10/20/30 → 分組
各部門人數(shù) → 多表 
       select ...
       from emp e, dept d
       where d.deptno = e.deptno
       group by ...         
(注意:group by后面出現(xiàn)的子集應(yīng)在select下進(jìn)行檢索)
實(shí)現(xiàn)為:
       select d.deptno, d.dname, 
       count(e.deptno)
       from dept d, emp e
       where d.deptno = e.deptno
       group by d.deptno, d.dname 
查詢發(fā)現(xiàn)沒有40號(hào)部門悲没。此時(shí)應(yīng)使用外鏈接保存一側(cè)結(jié)果篮迎。

oracle實(shí)現(xiàn):
       select d.deptno, d.dname , 
       count(e.deptno)
       from dept d, emp e
       where d.deptno = e.deptno (+)
       group by d.deptno, d.dname 

SQL99實(shí)現(xiàn):
       select d.deptno, d.dname , 
       count(e.deptno)
       from dept d left outer join emp e
       on d.deptno = e.deptno
       group by d.deptno, d.dname 

對比記憶規(guī)律:
        “,”→ left/right outer join 
        where → on  
    結(jié)論:oracle的語法(+) mysql不支持
7.7 自連接
查詢員工、老板信息,顯示: xxx的老板是xxx
分析:將一張emp表當(dāng)成兩張表看待:員工表甜橱、老板表(員工表的老板 是 老板表的員工)
1.  先按照oracle語法寫    
select e.ename, b.ename
from emp e, emp b
where e.mgr = b.empno

2.  完善顯示格式concat
select concat( e.ename, ' 的老板是 ',  b.ename )
from emp e, emp b
where e.mgr = b.empno

3.  顯示king的老板
select concat( e.ename, ' 的老板是 ',  b.ename )
from emp e, emp b
where e.mgr = b.empno (+)

4.  改用MySQL支持的SQL99語法
select concat( e.ename, ' 的老板是 ',  b.ename )
from emp e left outer join emp b
on e.mgr = b.empno ;

5.  濾空修正nvl
select concat( e.ename, ' 的老板是 ',  nvl(b.ename, '他自己' ) )
from emp e left outer join emp b
on e.mgr = b.empno ;
結(jié)論 nvl 在mysql下不能使用: ERROR 1305 (42000): FUNCTION mydb61.nvl does not exist

6.  濾空修正 ifnull
select concat( e.ename, ' 的老板是 ',  ifnull(b.ename, '他自己' ) )    
from emp e left outer join emp b
on e.mgr = b.empno ;

注意:
    Oracle中有一個(gè)通用函數(shù)逊笆,與MYSQL中的ifnull函數(shù)名字相近:
    nullif:如nullif(a, b) 當(dāng) a = b 時(shí)返回null, 不相等的時(shí)候返回a值。nullif('L9,999.99', 'L9,999.99')
    mysql中nullif()函數(shù)也存在岂傲。
3.8 表的約束
  • 定義主鍵約束 primary key: 不允許為空难裆,不允許重復(fù)
  • 定義主鍵自動(dòng)增長 auto_increment
  • 定義唯一約束 unique
  • 定義非空約束 not null
  • 定義外鍵約束 constraint ordersid_FK foreign key(ordersid) references orders(id)
  • 刪除主鍵:alter table tablename drop primary key ;

MySQL中約束舉例:

    create table myclass (
        id INT(11) primary key auto_increment,
        name varchar(20) unique
    );
    create table student (
        id INT(11) primary key auto_increment, 
        name varchar(20) unique,
        passwd varchar(15) not null,
        classid INT(11),                            
        constraint stu_classid_FK foreign key(classid) references myclass(id)
    );
check約束在MySQL中語法保留,但沒有效果镊掖。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乃戈,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子亩进,更是在濱河造成了極大的恐慌偏化,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镐侯,死亡現(xiàn)場離奇詭異,居然都是意外死亡驶冒,警方通過查閱死者的電腦和手機(jī)苟翻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來骗污,“玉大人崇猫,你說我怎么就攤上這事⌒璺蓿” “怎么了诅炉?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長屋厘。 經(jīng)常有香客問我涕烧,道長,這世上最難降的妖魔是什么汗洒? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任议纯,我火速辦了婚禮,結(jié)果婚禮上溢谤,老公的妹妹穿的比我還像新娘瞻凤。我一直安慰自己,他們只是感情好世杀,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布阀参。 她就那樣靜靜地躺著,像睡著了一般瞻坝。 火紅的嫁衣襯著肌膚如雪蛛壳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音炕吸,去河邊找鬼伐憾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赫模,可吹牛的內(nèi)容都是我干的树肃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼瀑罗,長吁一口氣:“原來是場噩夢啊……” “哼胸嘴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起斩祭,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤劣像,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后摧玫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耳奕,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年诬像,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屋群。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坏挠,死狀恐怖芍躏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情降狠,我是刑警寧澤对竣,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站榜配,受9級(jí)特大地震影響否纬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芥牌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一烦味、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧壁拉,春花似錦谬俄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至痘昌,卻和暖如春钥勋,著一層夾襖步出監(jiān)牢的瞬間炬转,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工算灸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扼劈,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓菲驴,卻偏偏與公主長得像荐吵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子赊瞬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容