MySQL学习手记

本文是作者阅读《MySQL高效编程》后的学习笔记,涵盖了MySQL的关系型数据库概念、选择MySQL的优点、常规操作如数据表的创建、查询、修改等,以及涉及的条件检索、排序、分组和连接操作。同时,文章也提及了存储过程、视图、触发器等高级应用。
摘要由CSDN通过智能技术生成

前言:用了两天多的时间断断续续的把MySQL高效编程看完(后面的实例没有看,准备学习MYSQL+Python的实例,故略过),把这本书中学到的东西梳理下,列在下面:

首先是关于数据库的种类及选择MySQL的优点。

直接从关系型数据库开始(之前的阶层型/网络型、卡片型直接略过,估计以后也不会使用到)。关系型数据库是目前使用比较成熟的数据库类型,目前在使用的SQLServer和在学习的MySQL就属于关系型数据库,除了这两种,IBM推出的DB2,Oracle,SQLLite和Access等都属于关系型数据库。按作者肤浅的理解,未来很长的一段时间内关系型数据库都还会是主流。而什么是关系型数据库?(不看概念还真不知道要怎么说)按照我的使用情况和目前的理解,就是将关联的数据对象以表的形式组织在一起,多个表之间以关键字关联在一起。RDB就是各个表和操作数据库的对象集合体。

除了关系型数据库,往后发展的就是面向对象型的数据库,直接在数据库中存放的是一个对象的相关信息,和面向对象程序设计中的对象直接相对应。这种数据库应该不错,但是没有使用过。不过个人觉得对数据库的发展是一种不错的构想。至于存在的一些面向对象型的数据库,直接google吧。当然,还有XML型的数据库,作者只做了简单的尝试,由于XML的跨平台和不用区分数据交换形式、数据保存形式等优点,还是很期待这种数据库的。


那么,选择MySQL的原因,它有哪些优点呢?

根据历史,MySQL刚推出的时候,以其开源,体积小,速度快赢得了大量的用户。比如Google,Yahoo和Youtube等大型网站采用的就是MySQL。除了这些优点,MySQL还支持多种开发语言,支持多种OS,有免费版和付费版两种等也算作吸引人的有点吧。

至于Windows下和Linux下安装MySQL的方法,已经有很多版本,不赘述了。


以下就是MySQL的使用手记,包括常规操作,高级应用两部分。

MySQL的常规用法(以下均以DOS下的操作为准,MySQL在Windows下不区分大小写,但是在Linux下区分):

1.进入数据库 :mysql -u root -p然后Enter,输入密码(这种操作比较安全,如果直接在p后跟着密码,会被其他人利用进入数据库)

2.查看数据库:show databases;

3.进入数据库:use+空格+数据库的名字;

4.创建操作数据库的专用用户:--不常规,先略去,知道有这个概念

  5.创建数据表:create table 表名(域名+空格+数据类型+列选项,域名+....)

例子:create table customer(cid char(5) primary key,cname varchar(255) not null,birth date,sex char(1) default '1');

MySQL提供的数据类型:数值、字符串、日期、二进制、枚举。(每一种都有多种方式供选择)

列选项:AUTO_INCREMENT(定义自增序列), DEFAULT '默认值', INDEX(定义索引), NULL, NOT NULL, PRIMARY KEY(定义主键) ,

 UNIQUE(定义唯一性) , CHECK(定义输入范围或输入选项)

另:创建表时可指定字符集,在括号之后添加 charset=utf8

6.显示数据表:show tables;

7.显示表的结构:desc customer或者describe customer;

8.删除数据表:drop table customer;

9.插入数据表:insert into customer(列1,列2,...) values(数据1,数据2,...);

10.显示数据表:select 列1,列2,... from 表名;全部显示,用select * from tablename;


查询中的常规用法:

条件检索:运算符:<,>,<=,>=,<>,is null,is not null,like,not like,between,not between,in ,not in;

模糊匹配:%用来匹配0个或多个字符,_用来匹配一个字符

条件组合:and,or

结果排序:order by ,asc为升序,desc为降序

取得指定件数:limit m,n取得从第m个开始的n件

数据分组:group by

多个表的连接:

内连接和外连接的区别:http://www.cnblogs.com/Ewin/archive/2009/10/05/1578322.html

自连接:基本子查询,多个返回值的子查询,exists运算符等

修改表的列结构:

修改列的定义-修改列的数据类型:alter table tablename modify name varchar(30)

追加新列:alter table tablename add colname date;--在最后追加

alter table tablename add colname date first ;--在开始追加

alter table tablename add colname date after xx;--在xx后追加

改变列的位置

改变列名和类型

删除列:alter after tablename drop colname

复制表和删除表:

复制表的结构和数据

复制表的结构:created table t1 like told


事务:http://blog.csdn.net/zdwzzu2006/article/details/5947062。并发控制的基本单位,是一个操作序列,要么都执行,要么都不执行。

事务的四个基本特征:原子性,一致性,隔离性,持久性

索引:http://kb.cnblogs.com/page/45712/

视图:http://blog.csdn.net/sj120418/article/details/7884391

存储过程:由流控制和SQL语句组成的过程,应用程序只需要调用一个存储过程,就可以调用该存储过程的所有执行语句。

存储函数:

触发器:使得对一个表的修改能够自动映射到相关联数据的表中,实现自动更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值