目录
一、数据库基础
1、 数据库
数据库即为保存有组织数据的容器,而数据库软件称为DBMS(数据库管理系统)。通俗来讲,数据库就是通过DBMS创建和操控的容器。我们平时访问数据库并不是直接访问数据库本身,而是使用DBMS,然后通过DBMS访问数据库。
2、表
表是一种结构化的文件,可以用于存储某种特定类型的数据。简而言之,表就是某种特定类型数据的结构化清单。
同时注意:数据库中每个表都有一个名字来标识自己,这个名字是唯一的。
模式
模式就是关于数据库和表的布局以及特性的信息。
3、列
列就是表中的一个字段,表由列组成。可以把数据库表想象成一个网格,而网格中的每一列存储着一条特定的信息。
数据库中每个列都有相对应的数据类型,而数据类型就定义了该列可以存储的数据种类。所以将数据分解为多个独立的列是很重要的,只有把列分解开,才有可能利用特定的列对数据进行排序和过滤。
4、行
和列相似,行是表中的一个记录,同理表中的数据按行储存。
5、主键
主键就是一列或一组列,用来表示一个特定的行,因为主键的值可以唯一区分表中的每个行,即主键是确定一条记录的唯一标识。
表中的任何列都可以作为主键,条件如下:
- 任意两行都不具有相同的主键值;
- 每个行都必须有一个主键值(主键列不允许NULL值)
二、启动MySQL
安装配置好了之后,终端命令打开mysql:
sudo mysql -u root -p
三、MySQL使用之增删改查
下面分别介绍库、表、列、索引、数据中的增删改查:
1、库
(1)创建库
create database 库名;
(创建成功)
(2)删除库
drop database 库名;
(删除成功)
(3)显示库
当我们想要查看数据库中可用的数据库列表时,使用show语句即可查看。
show databases;
(显示所有可用数据库名)
(4)选择库
读取数据库中数据之前,我们需要用USE语句打开相对应的数据库。
USE 库名;
选择成功后显示如下:
(选择abc库)
2、表
(1)获取表列
当我们想要查看一个数据库内对应的列表信息时,使用show语句可返回当前选择的数据库内可用表的集合。
show tables;
(获取mysql库中的表集合)
(2)创建表
create table 表名(
id int(10) unsigned zerofill not null auto_increment,
email varchar(40) not null,
ip varchar(15) not null,
state int(10) not null default '-1',
primary key (id)
)engine=InnoDB;
(创建成功)
(3)删除表
drop table 表名;
(4)重命名表
alter table 旧表名 rename 新表名;
3、列
(1)显示表中列
使用以下语句可以显示出表中每一个字段的信息,包括:字段名、数据类型、是否允许NULL、键信息、默认值以及一些其他信息。
show columns from 表名;或 describe 表名;(快捷方式)
(显示mysql库中db表中的相关数据信息)
(2)添加列
alter table 表名 add 列名 int(4) not null;
(向test表中添加一个名为cn的新列)
(3)修改列
alter table 表名 change id 要改的列名 改变内容;
(4)删除列
alter table 表名 drop 列名;
4、索引
拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。
但是索引也有缺点:虽然它大大提高了查询速度,同时却会降低更新表的速度(如对表进行INSERT、UPDATE和DELETE)。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件,建立索引会占用磁盘空间的索引文件。
(1)创建索引
alter table 表名 add index 索引名(列名);(普通索引)
alter table 表名 add primary key(id) | 主键索引 |
alter table 表名 add unique(name) | 唯一索引 |
alter table 表名 add fulltext(name) | 全文索引 |
alter table 表名 add index name(id,name) | 多列索引 |
(2)删除索引
alter table 表名 drop index 列名;
(3)查看索引
show index from 表名;
5、数据
(1)插入数据
insert into 表名 (列名1、列名2.....) values(列1对应值、列2对应值.....);
(2)查看数据
插入数据后我们可以查看数据:
select * from test; | 显示所有数据 |
select * from test limit 0,2; | 显示前两条数据 |
select * from test email like '%xx%' ; | 查含有xx字符(_表示一个 %表示多个) |
select * from test order by id1 asc; | 降序显示 |
select * from test id1 not in('2','3'); | id不含2,3(去掉not表示含有) |
select * from test timer between 1 and 10; | 数据在1和10之间 |
显示结果:
(3)删除数据
delete from 表名 where 删除数据特性;
(如:delete from test where id1=1;)
(4)修改数据
update 表名 set 修改数据1,修改数据2 where 修改项特征;
(如:update test set id1='1',email='q@qq.com' where id1=1;)
-
其他show语句
show statues; 用于显示广泛的服务器状态信息;
show create database;/ show create table; 分别用来显示创建特定数据库或表的MySQL语句;
show grants; 用来显示授予用户(所有用户或特定用户)的安全权限;
show errors;/ show warnings; 用来显示服务器错误或警告消息。
使用help show语句就可以查看所有show语句的用法,随用随查。