mysql知识点简单总结
admin
2023-06-10 09:03:42
0

1.操作数据库语句

  1.1 显示所有的数据:show databases;

  1.2 创建数据库:create database databasename;

  1.3 删除数据库:create database databasename;

  1.4备份数据库:mysqldump –uroot –p1234 databasename>本地保存的路径

  1.5恢复数据库:mysql –uroot –p1234 databasename<本地保存的路径

  1.6查看所在数据库:select database();

2.操作数据表语句

  2.0 查询所有的表:show tables;

  2.1 创建表:create table tablename(

                            字段1名称  字段1类型,

                         字段n名称  字段n类型(最后一项,不加逗号)

);

  2.2 修改表:

2.2.1 添加字段: alter table 表名 add 字段名 字段类型;

2.2.2 修改表名:  alter table 表名 rename to 新表名;

2.2.3 修改字段类型: alter table表名modify 字段名 字段新类型;

2.2.4 修改字段:  alter table表名change 字段名 新字段名 新类型;

2.2.5 删除字段: alter table 表名 drop 字段名;

2.2.6 删除表: drop table 表名;

2.2.7 设置主键:

      create table 表名(

                   字段1名称 字段1类型 primary key,

          字段2名称 字段类型

);

 

create table 表名(

       字段1名称 字段1类型 primary key,

       字段2名称 字段2类型,

       primary key(字段1名称)

);

 

create table 表名(

       字段1名称 字段1类型,

    字段2名称字段2类型

);

alter table 表名 add 字段名 primary key;

     2.2.8设置自增长:

              create table 表名(

                            字段1名称 字段1类型 primary key auto_increment,

                            字段2名称 字段2类型

);

       //注意:自增长是对主键且数据类型为数值型的字段而言的

       2.2.9 设置约束条件:unique(唯一性),not null(非空),default(默认)

  2.3 查询表:

     2.3.1 查询所有数据: select * from 表名

     2.3.2 查询符合字段类型(数值)的数据: select * from 表名 where 字段名=id;

     2.3.3 查询符合字段类型(字符串)的数据:select * from 表名 where 字段名=‘str’;

     2.3.4 查询含有某字符的数据:select * from 表名 where 字段名 like ‘%r%’;

     2.3.5 查询不含某字符的数据:select * from 表名 where 字段名 not like ‘%r%’;

     2.3.6 查询同时满足多个条件的数据:

         Select * from 表名 where id in(条件1,条件2);

         Select * from 表名 where 条件1 and 条件2;

     2.3.7 查询满足多个条件之一的数据:

         Select * from 表名 where 条件1 or 条件2;

 

truncate and delete的区别:

(1)truncate既删除表内数据,也删除表的结构,删除表结构后,会重建表的结构

(2)delete只删除表内的数据

having与 where的区别:

(1)having后面跟函数,having是对结果的筛选

(2)where后面跟字段

关键字的书写顺序:

       select,from,where,group by,having,order by

关键字的执行顺序:

       【from】 【where,group by,having 条件】 【select】 【order by】

 

内连接:

       inner join on(内连接),可以多表进行内连接

demo:

//内连接示例

select s.sname, c.cname from sinfor s inner join scinfor sc on s.sid=sc.sid

                                    inner join cinfor c on sc.cid=c.cid;

结果:           +-------+---------+

    | sname  | cname   |

    +-------+---------+

    | s1       | java      |

    | s2       | java      |

    | s1       | android  |

    | s3       | php      |

    +------+--------+

 

外连接:

       (1)left join on(左外连接),以左边的表为基表

       demo:

select s.sname, c.cname from sinfor s left join scinfor sc on s.sid=sc.sid

                                    left join cinfor c on sc.cid=c.cid;

输出结果:

                      +-------+---------+

| sname | cname   |

+-------+---------+

| s1       | java        |

| s1       | android  |

| s2       | java       |

| s3       | php       |

| s5       | NULL     |

+-------+---------+

 

(2)right join on(右外连接),以右边的表为基表

demo:

select s.sname, c.cname from sinfor s right join scinfor sc on s.sid=sc.sid

                                        right join cinfor c on sc.cid=c.cid;

输出结果:

                +-------+---------+

| sname | cname   |

+-------+---------+

| s1        | java       |

| s2        | java       |

| s1        | android  |

| s3        | php       |

| NULL   | C#         |

+-------+---------+

附sql语句:
表1 sinfor (学生表):

       create table sinfor(

              sid int primary key,

              sname varchar(32)

);

       表2 scinfor(选课表):

       create table scinfor(

              sid int,

              cid int,

              primary key(sid,cid),

              foreign key(sid) references sinfor(sid),

              foreign key(cid) references cinfor(cid)

);

       表3 cinfor (课程表):

              create table cinfor(

       cid int primary key,

       cname varchar(32)

);

insert into sinfor values(1, 's1');

insert into sinfor values(2,'s2');

insert into sinfor values(3,'s3');

insert into sinfor values(4,'s5');

insert into cinfor values(1,'java');

insert into cinfor values(2,'android');

insert into cinfor values(3,'php');

insert into cinfor values(4,'C#');

insert into scinfor values(1,2);

insert into scinfor values(2,1);

insert into scinfor values(3,3);

insert into scinfor values(1,1);


相关内容

热门资讯

李在明向山西煤矿爆炸事故遇难者... 据凤凰卫视报道,韩国总统李在明5月24日就中国山西省煤矿爆炸事故造成多人遇难表示,向遇难者家属和中国...
华为正式发表半导体领域新定律 人民日报客户端 华为正式发表半导体领域新定律 晶体管密度与系统性能通过逻辑折叠技术实现新突破 202...
武契奇向人民英雄纪念碑敬献花圈 5月25日上午,塞尔维亚总统武契奇前往天安门广场,向人民英雄纪念碑敬献花圈。
重庆多个景区受强降雨影响临时闭... 澎湃新闻记者 廖艳 实习生 林霄近日,受持续强降雨的影响,重庆多个景区出现水位上涨、多处塌方等情况,...
视频丨随迁子女教育保障、异地参... 昨天(22日),《国务院关于推行常住地提供基本公共服务的实施意见》对外发布。文件明确提出,促进未落户...
打造生态链 创新再加速 本报讯 (记者 翁云骞 通讯员 虞昌胜 高博雯) 研发整体效率提升30%,其中代码编写效率提升50%...
前DeepMind华人研究员离... 新智元报道 【新智元导读】前谷歌DeepMind研究员离职并发表长文指出AI行业当前最被低估的瓶颈...
以人工智能应用场景推进数实深度... (来源:天津日报) 转自:天津日报 “十五五”规划纲要提出“全面实施‘人工智能+’行动”,并对构建高...
3名青少年强奸犯免于监禁引众怒... 【文/观察者网 陈思佳】“三名青少年强奸犯免于监禁,引发英国全国争议。”据《国际商业时报》5月24日...
河南省“十五五”规划纲要全文发... 【大河财立方消息】5月25日,河南省国民经济和社会发展第十五个五年规划纲要全文发布。其中提到,提振汽...