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 以右表为基础进行连接查询;
--------------------------------------------------------------手动分割线----------------------------------------------------------------
常用的语句大概就是这些,其他对数据库的操作请看上面的链接,事务等放在第二篇,写的一般,请多多包涵。*~*