数据库mysql基础(一)
目录
一、MySql简介
二、MySql的特点
三、MySQL术语
四、数据库的使用以及创建
一、MySql简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL使用的SQL语言是访问数据库最常用的标准化语言。MySQL软件分为社区版和商业版,采用双重授权策略,一般选择MySQL作为中小型网站开发的网站数据库。
二、MySql的特点
1.MySQL性能优异,服务稳定,异常停机次数少。
2.MySQL源代码开放,无版权限制,自治性和使用成本低。
3.MySQL历史悠久,用户活跃,如果有问题可以求助。
4.MySQL体积小,易于安装和维护。
5.MySQL有很好的口碑效应,企业不需要考虑就可以用,Lamp和LMP是比较流行的架构。
MySQL支持多种操作系统,提供多种API接口,支持多种开发语言,特别是PHP。
三、MySQL术语
数据库 | 数据库是一些关联表的集合 |
数据表 | 表是数据的矩阵,在一个数据库中的表看起来像一个简单的电子表格 |
列 | 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据 |
行 | 一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据 |
冗余 | 存储两倍数据,冗余降低了性能,但提高了数据的安全性 |
主键 | 主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据 |
外键 | 外键用于关联两个表 |
复合键 | 复合键(组合键)将多个列作为一个索引键,一般用于复合索引 |
索引 | 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录 |
参照完整性 | 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性 |
四、数据库的使用以及创建
1.关系型数据库系统支持三级模式结构,其模式、外模式、和内模式中的基本对象有模式、表、视图和索引等。
操作对象 | 操作方式 | ||
创建 | 删除 | 修改 | |
模式 | create schema | drop schema | 无 |
表 | create table | drop table | alter table |
视图 | create view | drop view | 无 |
索引 | create index | drop index | alter index |
2.模式的创建和删除
(1).创建模式
mysql> create schema ccc;
(2).删除模式
mysql> drop schema people;
3.表的创建以及增删查改
(1).创建表
mysql> create table people(
-> id char(20) primary key,
-> name char(4),
-> age smallint,
-> sex boolean);
primary key是主键。
数据类型 | 含义 |
---|---|
char(n),character(n) | 长度为n的定长字符串 |
vchar(n),charactervarying(n) | 最大长度为n的变长字符串 |
clob | 字符串大对象 |
blob | 二进制大对象 |
int,integer | 长整型(4字节) |
smallint | 短整型(2字节) |
bigint | 大整型(8字节) |
numeric(p,d) | 定点数,有p位数字(不包括符号、小数点)组成,小数点后有d位数字 |
decimal(pd),dec(p,d) | 同numeric |
real | 取决于机器精度的单精度浮点数 |
double precision | 取决于机器精度的双精度浮点数 |
float(n) | 可选精度的浮点数,精度至少为n位 |
boolean | 逻辑布尔值 |
date | 日期,包含年、月、日,格式为YYYY-MM-DD |
time | 时间,包含时、分、秒,格式为HH:MM:SS |
timestamp | 时间戳类型 |
interval | 时间间隔类型 |
(2)向表格插入数据
mysql> insert into people(id,name,age,sex) values ('001','张三',19,0);
如果插入出现错误Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'student_name' at row 1,有可能是编码错误,可以尝试,输入以下代码
mysql> set names gbk;
(3)查询表格中的数据
①全部查询
mysql> select * from people;
*号代表查询表名为people的表中的所有信息。
+-----+------+------+------+
| id | name | age | sex |
+-----+------+------+------+
| 001 | 张三 | 19 | 0 |
+-----+------+------+------+
②部分查询
mysql> select id,name from people;
+-----+------+
| id | name |
+-----+------+
| 001 | 张三 |
+-----+------+
当然,也可以通过上述方法来查询全部信息,前提是你要知道所有列名
mysql> select id,name,age,sex from people;
+-----+------+------+------+
| id | name | age | sex |
+-----+------+------+------+
| 001 | 张三 | 19 | 0 |
+-----+------+------+------+
(4)修改表中的数据
mysql> update people set age=20 where id='001';
修改之后,如下
+-----+------+------+------+
| id | name | age | sex |
+-----+------+------+------+
| 001 | 张三 | 20 | 0 |
+-----+------+------+------+
(5)删除表格数据
①删除部分数据
之前数据,如下
+-----+------+------+------+
| id | name | age | sex |
+-----+------+------+------+
| 001 | 张三 | 19 | 0 |
| 002 | 李四 | 20 | 0 |
mysql> delete from people where id='002';
删除之后的数据,如下
+-----+------+------+------+
| id | name | age | sex |
+-----+------+------+------+
| 001 | 张三 | 19 | 0 |
+-----+------+------+------+
②删除全部数据
mysql> delete from people;
删除之后,查询的表为空表
mysql> select * from people;
Empty set (0.00 sec)
删掉表之后,一定要跑路,跑慢了后果会很严重
这一篇博客主要写的就是MySql操作的一些基础知识,能满足日常的操作,之后我会持续更新对MySQL的其他操作。
最后的最后,我再推荐一个可视化的数据库管理工具Navicat Premium,Navicat Premium是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。Navicat Premium是一个可多重连接的数据库管理工具,它可让你以单一程序同时连接。可以连接多种数据库,操作简单。