欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL入门

程序员文章站 2022-05-30 21:13:00
...

简单介绍一下数据库以及相关的基础命令和Mysql的安装

数据库简介

用途:用于存储生活的一切数据,如:身份、住房、车票、网站、...
概念:数据库服务器、数据库、数据表、一行数据(一条)、一列数据(字段)
分类:
  - 关系型数据库:MySQL、oracle、SQL Server、...
  - 非关系数据库:Redis、MongoDB、...
SQL:Structured Query Language,结构化查询语言
命令:
  - 数据定义语言(DDL):创建、删除、修改库或表
  - 数据操作语言(DML):增、删、改
  - 数据查询语言(DQL):查
  - 数据控制语言(DCL):授权、取消授权
  - 数据事务语言(DTL):开启事务、提交事务、操作回滚

MySQL安装

安装过程
  双击MySQL安装程序:`mysql-installer-community-5.7.20.0.msi`
  选择自定义安装:`custom`
  选择安装的版本:`MySQL Server5.7.20 -X64 `
  点击`Excute`执行安装
  设置root密码  密码要记好,等会进去需要密码
  点击`Excute`执行配置
  点击`Finish`完成安装
成功测试
  - 查看系统服务:`services.msc`
  - 连接测试:`mysql -h host -u root -p`
  - 或者`mysql -uroot -p`
    - -h:指定主机
    - -u:指定用户
    - -p:指定密码,建议输入密码时分两步,这样可以隐藏密码
    - 示例:`mysql [-h127.0.0.1] -uroot -p`,敲回车,然后根据提示输入密码即可
      - 端口:3306
      - 退出:`exit`
      - 帮助:`help` 或 `\h`
      - 说明:几乎所有命令都是以';'结束
- 敲mysql命令无反应
  - 说明:那是因为没有将该命令所在目录添加到系统环境变量Path下
  - 添加:
    - 打开系统环境变量设置页面
    - 将mysql命令所在的目录添加到系统环境变量Path下
    - 保存即可
    - 新添加的环境变量在已经启动的终端是无效,重启一个新的终端即可

linux中MySQL安装

linux中进行的是命令安装
首先:`sudo apt-get install mysql-server`
之后:`sudo apt-get install mysql-client`
仅仅两步就安装好了,是不是很简单......

如果还想使用其他工具和数据库连接,使用虚拟机的话还需要配置链接。
SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,是你操作数据库更加简单快捷的工具。

注释:配置之前需要把虚拟机内的包更新,不然会出现连接不上数据库的情况。
进去终端,输入`sudo apt-get update`  回车
		接着输入`sudo apt-get upgrade`    ,之后再去配置sqlyog链接虚拟机
sqlyog配置链接虚拟机步骤:
	1.进入数据库
	2. grant all privileges on *.* to [email protected]'%' identified by '123456' WITH GRANT OPTION;
	3.重启数据库服务  service mysql restart
	4.sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
	  将bind_address = 127.0.0.1注释掉
	5.再去重启服务  service mysql restart
	6.打开主机的sqlyog  链接数据库就可以了

MySQL的一些基本命令

增删改查

创建库:`create database test;`,创建数据库test
创建表:`create table user(username varchar(20), password char(32));   这里的user就是你创建的表的名字
例如:可以设置id主键,可以和auto_increment结合,索引自动加1,后面指定字符集。
	`create table stu(s_id int(20) auto_increment,s_name varchar(32),s_age int(20),s_num int(20),primary key(s_id))charset utf8; `

查看表的内容数据:` select * from user`
删除库:`drop database test;`,删除数据库test
删除表:`drop table user;`
插入数据:
  方式1:不指定字段,添加数据时需要写完整所有的字段
   	insert into user values(1, '刘亦菲', 20000000, '武汉', 28, 1);
    	注释:可以一次性插入多条数据,一条数据需要使用一个()包括起来。
  方式2:指定字段,只需要传递指定字段的值
    insert into user(name, money, age, sex, province) values('赵丽颖', 8000000, 31, 1, '河北');
   		注释:插入数据的顺序与前面指定的字段名要一致
添加字段:
   默认在最后添加:`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;`
修改数据:
	`update star set age=31, money=10000000 where id=1;`
     警告:修改操作一定不要忘了指定条件,否则后果自负。
删除数据:`delete from star where id=2;`
	 警告:删除操作一定不要忘了指定条件,否则后果自负。

查看库:`show databases;`,会显示当前服务器上所有的数据库
选择库:`use test;`,选择数据库test
	-查看当前使用的数据库
    	- `show tables;`
   		- `select database();`
查看表:`show tables;`,查看当前数据库下的所有数据表
查看表结构:`desc user;`
查看创建方式:
  - 查看库:`show create database test;`
  - 查看表:`show create table user;`
指定字符集:
  - 创建时指定:`create table xxx() charset=utf8;`
修改字段:
  - `alter table user modify username varchar(30);`,不能修改字段名
  - `alter table user change email em varchar(32);`,可以修改字段名
修改字段位置及名称: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):最基本的索引
    - 唯一索引(unique):修改的字段不能重复
    - 主键索引(primary key):是一种特殊的唯一索引,一张表中最多只能有一个字段设置
    - 全文索引(fulltext):对全局数据进行添加索引
  示例:
    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;

索引

说明:简单理解就是一本书最前面的目录,可以提高读取效率,但也不是说越多越好。
分类:
    - 普通索引(index):最基本的索引
    - 唯一索引(unique):修改的字段不能重复
    - 主键索引(primary key):是一种特殊的唯一索引,一张表中最多只能有一个字段设置
    - 全文索引(fulltext):对全局数据进行添加索引
示例:
    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;

相关标签: MySQL入门