提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
数据库是按照数据结构来组织、存储和管理数据的仓库;是作为最重要的基础软件,是确保计算机系统稳定运行的基石
一、数据库分类及组成
分类:
关系型数据库:简单的理解就是,关系型数据库中的表与表之间可以存在关联关系,常见的有MySQL、SQLserver、oracle等{关系数据库=多张表+各表之间的关系}
非关系型数据库:常见的有MongoDB、Redis等出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目的被设计
组成:一个数据库是由一个or一组数据库表组成的
二、基础语句
1.数据库命令
使用命令行连接
mysql -h(主机地址) -u root(用户名) -p(指定密码)
列出mysql数据库管理系统的数据列表
show databases;
创建数据库
create database database_name;
使用数据库
use 数据库名;
删除数据库
drop database database_name;
创建数据表
CREATE TABLE 表名 ( 属性名 数据类型 完整性约束条件,
属性名 数据类型 完整性约束条件,
属性名 数据类型 );
显示数据表的字段属性,包含属性类型,主键信息,是否为NULL,默认值等其他信息。
- show columns from table_name;
- show full columns from table_name;(查看备注信息)
- desc 表名;
- Field:列名;
- Type:数据类型;
- Null:是否能取空值;
- Key:PRI(主键)、MUL(普通的b-tree索引)、UNI(唯一索引);Default:默认值;
- Extra:其他信息。
查看表详细结构语句
show create table
显示数据表的详细索引信息,包括primary key(主键)
show index from table_name;
- tables: 表名;
- Non_unique: 索引能否重复;
- Key_name: 索引的名称;
- Seq_in_index: 索引中的序列号,从一开始;
- Column_name: 列名称;
- Collation: 列以什么方式存储在索引中。'A'(升序) 或NULL(无分类);
- Cardinality: 索引总唯一的数目的估计值;
- Sub_part: 如果列只是被部分地编入索引,则为被编入索 引地字符地数目。如果整列被编入索引,则为NULL;
- Packed: 指示关键字如何被压缩。如果没有被压缩,则为NULL;
- NULL: 如果列中含有NULL,则含有YES。如果没有,则该 列含有NO;
- Index_type: 用过地索引方法;
- Comment: 多种拼注。
修改表名
Alter table 旧表名 rename 新表名;
修改字段的数据类型
Alter table 表名 modify 字段名 数据类型;
修改字段名
Alter table 表名 change 旧字段名 新字段名 新数据类型;
增加字段
Alter table 表名 add 字段名 数据类型 [完整性约束条件];
alter table 表名 add foreign key (user_id) references 主表表名 (字段名)
删除字段
Alter table 表名 drop 属性名;
2.增删改语句
新增
新增一条数据
insert into 表名 values(全部列的值,用”,“分割);
insert into 表名 (字段1, 字段2) values (值1, 值2);
新增多行数据
insert into 表名 values(全部列的值),(全部列的值)....;
insert into 表名 (字段1, 字段2) values (值1, 值2),(值1, 值2),(值1, 值2)....;
删除
delete from 表名 where 条件;
注意:在修改或者删除数据的时候一定要指定条件,否则可能造成所有数据被污染或者清空。
truncate 表名;
清空数据(会把全表都给清洗掉,并且自增主键从1开始)
修改
update 表名 set 列1=值1,列2=值2,... where 条件;
总结
以上就是今天要讲的内容,本文仅仅简单介绍了MySQL部分语句的使用,而MySQL提供了大量能使我们快速便捷地处理数据的函数和方法。