mysql数据库基础知识学习
一、mysql简介
mysql是一种开放源代码的关系型数据库管理(rdbms),mysql数据库系统使用最常用的数据库管理语言–结构化查询语言(sql)进行数据库管理。
由于mysql是开放源代码的,因此任何人都可以在general public license的许可下下载并根据个性化的需要对其进行修改。mysql因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,mysql是管理内容最好的选择。
mysql这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,mysql ab创始人之一的monty widenius的女儿也叫my。这两个到底是哪一个给出了mysql这个名字至今依然是个迷,包括开发者在内也不知道。
mysql的海豚标志的名字叫“sakila”,它是由mysql ab的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者ambrose twebaze提供。根据ambrose所说,sakila来自一种叫siswati的斯威士兰方言,也是在ambrose的家乡乌干达附近的坦桑尼亚的arusha的一个小镇的名字。
mysql,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。
二、基本命令
对数据库的操作
1、查看所有的数据库
show databases;
2、切换数据库
use 数据库名称;
3、创建数据库
create database 数据库名;
4、删除数据库
drop database 数据库名;
5、修改数据库编码
alter database 数据库名 character set utf8;
6、显示数据库的编码格式
show create database 数据库名
对表的操作
1、首先介绍一下sql语言中的数据类型
a、int 整型
b、double 使用格式double(5,2)
c、decimal 浮点型 主要使用在金融行业(例如手机支付等)使用格式decimal(5,2)这是一种二进制运算无差错
的数据类型
d、char 固定长度字符串类型,使用格式char(x)x的最大取值是255,这里的255等数字表示的是字节数目
e、varchar 可变长度字符串类型 使用格式varchar(x),x的最大取值是65535,对于可变长字符串类型,需要使用
一部分空间来记录本类型的长度,存在浪费
举例: 2014-12-12 22:10:12 假如存储这个字符串的时候,这个字符串长度为19,那么使用char(20)就足够
但是假如使用varchar(20)的话,可能由于要使用一部分空间来存储数据,导致不能将整个字符串存储下来
f、text 字符串类型,表示大字符串,细分为四种:tinytext test mediumtext longtest
g、bolb 字节类型,表示大字节,同样分为四种
h、date 日期类型,格式为:yyyy-mm-dd
i、time 时间类型,格式为:hh:mm:ss
j、timestamp 时间戳类型 格式为:年月日+时分秒+毫秒
2、查看表结构
desc 表名称;
3、创建表
create table 表名称(列名称 列类型,列名称 列类型,列名称 列类型,。。。。。)在最后一个列的后面没有逗号
4、查看数据库中所有的表名称
show tables;
5、删除表
drop table 表名称;
6、修改表
a、添加列 alter table 表名称 add(列名 列类型,列名 列类型,列名 列类型,。。。。。);
b、修改列类型 alter table 表名称 modify 列名 新列类型;
c、修改列名和列类型 alter table 表名称 change 老列名 新列名 列类型;(列类型可以是新的类型也可以是老的类型
若为老类型则表示只更改了列名称)
d、删除列 alter table 表名称 drop 列名称;
e、修改表名称 alter table 表名 rename to 新表名称;
主要针对表记录操作
a、插入记录
insert into 表名称 (列名称,列名称,列名称。。。) values(列值,列值,列值。。。。);
当想要插入整条数据的时候,前面部分的列名称列表可以不写,只在后面给值即可
insert into 表名称 values(列值,列值,。。。,列值); 这个时候值得顺序要和数据表中定义的列的顺序一致
注意事项:1、日期型数据和字符型数据必须使用单引号括起来
2、插入空值有两种方式:a、不指定值 b、设置values为null
3、未插入的列的值使用null补充
4、进行insert操作的时候前后两个部分的顺序要一致,包括数据类型和数据顺序
b、修改表记录
普通修改
update 表名称 set 列名称=列值,列名称=列值,列名称=列值。。。。;
注释:在没有添加条件的时候,会默认修改对应列名称下面的所有记录为上面的列值,这是不合理的
有条件修改,用于局部的修改,根据条件进行修改
update 表名称 set 列名称=列值,列名称=列值。。。[where 条件];
注释:条件一般是结果为boolean类型数据
c、删除表记录
delete from 表名称 [where 条件];
查询
select *from 表名