Mysql数据库(1)

MySQL是常见的关系型数据库。

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

推荐一个博客,作为小白的我觉得很入门:https://www.cnblogs.com/whgk/category/916860.html

其余的我就准备写写我想到的,感觉很小白的内容。~。~

主键(Primary Key):表中有一个列,这个列的值用来唯一标识表中的每一行,用于强制表的完整性,这样的列就 定义为表的主键。

          一个表中只能有一个主键,主键列不允许为空值(not null)。

外键(Foreign Key):外键必须是另一个表的主键。用来确定表的完整性。

如何添加外键:

 1 -- 建立卡表
 2 create table card{
 3   id varchar(10) not null primary key      
 4 }
 5 -- 建立上机信息表
 6 create table record{
 7 id int not null primary key,
 8 card_id varchar(10) not null,foreign key(card_id) references card(id) on delete cascade
 9 }engine=innodb default charset utf8;
10 
11 -- innodb 是一种数据表的类型,安全性高,支持事务处理及多用户操作,另外还有myisam、bob、heap、csv等类型的表。
12 -- 这样建表的时候就建立了外键约束
13 -- 在表外建立外键约束和主键约束的语句如下
14 alter table record add constraint fk_record_card foreign key (card_id) references card(id);
  alter table record add constraint pk_id primary key record (id);
  

数据库常见的增删改查操作:

-- 插入数据
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );
-- 将查询结果插入到新表中
create  table_name (select field1,filed2 from table_name2 );
-- 删除数据
DELETE FROM table_name [WHERE Clause]
-- 模糊查询like
SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
--注:模糊查询内容可以用’%‘来表示
-- order by子句
放在where条件后用来进行排序,order by desc(降序)/asc(升序)
-- as 子句:在查询中用于起别名
select field as '别名' from table_name;
-- limit子句:限制控制台显示的结果数量
select field from table_name limit 1;
-- limit子句还可以进行分页,pageIndex为每页显示行数,page为当前页数,括号里的内容是从第几条开始
select field from table_name limit (page-1)*pageIndex,pageIndex;
-- in子句可以使父查询匹配子查询的多个返回值,同理还有not in
select field  from table_name where 条件 in (select 条件 from table_name2);
-- exists 用来确定后面的子查询是否进行,同理还有not exists
-- group by 子查询:用来对查询结果进行分组,注意还可以进行多列分组查询,在我的语句中id位置加逗号再加上其他的字段名即可
select field as '别名' from table_name group by id;
-- having子句对group by 的结果进行筛选
select field as '别名' from table_name group by id having 条件;
-- 执行顺序:where--group by-- having

连接查询:

内连接:inner join 显示两表的共有部分;

左连接:left join 以左表为基础进行连接查询;

右连接: right join 以右表为基础进行连接查询;

--------------------------------------------------------------手动分割线----------------------------------------------------------------

常用的语句大概就是这些,其他对数据库的操作请看上面的链接,事务等放在第二篇,写的一般,请多多包涵。*~*

 

posted on 2019-05-21 23:34  初学的橘子  阅读(215)  评论(0编辑  收藏  举报

导航