mysql 基础知识

3 篇文章 0 订阅

数据库简介

  • 用途:用于存储生活的一切数据,如:身份、住房、车票、网站、...
  • 概念:数据库服务器、数据库、数据表、一行数据(一条)、一列数据(字段)

分类:

  • 关系型数据库:MySQL、oracle、SQL Server、...
    • 非关系数据库:Redis、MongoDB、...
  • SQL:Structured Query Language,结构化查询语言

命令:

  • 数据定义语言(DDL):创建、删除、修改库或表
  • 数据操作语言(DML):增、删、改
  • 数据查询语言(DQL):查
  • 数据控制语言(DCL):授权、取消授权
  • 数据事务语言(DTL):开启事务、提交事务、操作回滚

数据定义语言(DDL)

  • 查看库:show databases;,会显示当前服务器上所有的数据库
  • 创建库:create database test;,创建数据库test
  • 删除库:drop database test;,删除数据库test
  • 选择库:use test;,选择数据库test
  • 查看当前使用的数据库
  • show tables;
  • select database();
  • 查看表:show tables;,查看当前数据库下的所有数据表
  • 创建表:create table user(username varchar(20), password char(32));
  • 查看表结构:desc user;
  • 查看创建方式:
  • 查看库:show create database test;
    • 查看表:show create table user;
  • 删除表:drop table user;
  • 指定字符集:
  • 创建时指定:create table xxx()engine=Innodb default chatrset=utf8;
    • 修改配置文件:
  • win:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
    • 存储引擎:default-storage-engine=INNODB
    • 字符集:character-set-server=utf8
    • linux:/etc/mysql/mysql.conf.d/mysqld.conf
  • 重启服务配置才能生效
  • 修改字段:
  • alter table user modify username varchar(30);,不能修改字段名
    • alter table user change email em varchar(32);,可以修改字段名
  • 添加字段:
  • 默认在最后添加:alter table user add age int(3);
    • 在指定字段后添加:alter table user add email varchar(60) after password;
    • 在开头添加字段:alter table user add id int(11) first;
  • 删除字段:alter table user drop age;
  • 修改字段位置及名称:add/modify/change
  • alter tablr user modify em varchar(32) first;
  • 修改表名:alter table user rename new_user;

数据类型

  • 整型:tinyint(1个字节)、smallint(2个字节)、mediumint(3个字节)、int(4个字节)、bigint(8个字节)
  • 浮点型:
  • float(m, d):单精度浮点型,4个字节,m表示总位数,d表示小数位数
    • double(m, d):双精度浮点型,8个字节,m表示总位数,d表示小数位数
    • decimal(m, d):以字符串的形式存储浮点数,多用于金融相关应用
  • 字符串:
  • char:定长字符串,0~255个字节
    • varchar:变长字符串,0~65535个字节
  • 时间日期:
  • date:日期,格式:2018-11-05
    • time:时间,格式:15:52:52
    • datetime:日期时间,格式:2018-11-05 15:52:52
    • timestamp:时间戳
    • year:年,只占用一个字节,年份:1901~2155
  • 符合类型:
  • set:集合类型,格式:set(s1,s2,...,s63),最多63种可能
    • enum:枚举类型,格式:enum(e1,e2,...,e65535),最多65535种可能
  • 字段修饰:
  • unsigned:无符号数
    • zerofill:高位0填充,防止出现负数
    • auto_increment:自动增加(1),用于整数,经常与主键结合使用
    • default:默认值
    • not null:不能为空
  • 字符集:
  • 查看系统支持字符集:show character set;,通常我们只使用utf8
  • 存储引擎:
  • 查看系统支持存储引擎:show engines;
    • 常用存储引擎:InnoDB和MyISAM
  • 索引
  • 说明:简单理解就是一本书最前面的目录,可以提高读取效率,但也不是说越多越好。
    • 分类:
  • 普通索引(index):最基本的索引
    • 全文索引(fulltext):对全局数据进行添加索引
    • 主键索引(primary key):是一种特殊的唯一索引,一张表中最多只能有一个字段设置
    • 唯一索引(unique):修改的字段不能重复
  • 示例:

alter table user add index(em); # 给em字段添加普通索引

alter table user add unique(username); # 给username字段添加唯一索引

alter table user add primary key(id); # 给id字段添加主键索引

alter table user drop index em; # 删除em字段的普通索引

  • 创建表示直接指定:

create table user(

id int auto_increment,

name varchar(20),

primary key(id),

unique(name)

)engine=innodb default charset=utf8;

数据操作语言(DML)

  • 说明:在大多数的操作中,使用的都是增删改查操作(CURD)。
  • 准备:一张用于测试的表

 

mysql> create table star(

  -> id int auto_increment,

  -> name varchar(20) not null,

  -> money float not null,

  -> province varchar(20) default null,

  -> age tinyint unsigned not null,

  -> sex tinyint not null,

  -> primary key(id)

  -> )engine=innodb default charset=utf8;

  • 插入数据:
  • 方式1:不指定字段,添加数据时需要写完整所有的字段

 

insert into star values(1, '刘亦菲', 20000000, '武汉', 28, 1);

可以一次性插入多条数据,一条数据需要使用一个()包括起来。

  • 方式2:指定字段,只需要传递指定字段的值

 

insert into star(name, money, age, sex, province) values('赵丽颖', 8000000, 31, 1, '河北');

插入数据的顺序与前面指定的字段名要一致。

  • 注意:插入数据时可以不传值的字段
  • 自增的字段
    • 可以为空的
    • 有默认值的
  • 说明:插入数据时,第二种方式使用的比较多。
  • 查询数据:select * from star;
  • 修改数据:update star set age=31, money=10000000 where id=1;
  • 警告:修改操作一定不要忘了指定条件,否则后果自负。
  • 删除数据:delete from star where id=2;
  • 警告:删除操作一定不要忘了指定条件,否则后果自负。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值