1
1进入数据库
D:\软件安装包\MySQL5.7and8.0以及安装文档\mysql-5.7.26-winx64\bin
1.打开【开始】》【运行】输入【cmd】单击【确定】后出现CMD命令黑色窗口,这就是我们说的CMD命令行,或者使用快捷键Windows键(在键盘上有个Windows标志的按键)+R输入cmd后回车。
2.在CMD命令窗口敲入命令 mysql -h localhost -u root -p
后按回车(注意这里的"-h"、"-u"、"-p"不能省略) 进入mysql数据库,其中"-h"表示服务器名,localhost表示本地;"-u"为数据库用户名,root是MySQL默认用户名;"-p"为密码,如果设置了密码,可直接在-p后链接输入,如:-p888888,用户没有设置密码,显示Enter password时,直接回车即可。
注意如果您的MySQL没有安装在C盘下,先使用DOS命令进入MySQL的安装目录下的bin目录中。方法如下:输入G:进入G盘),在输入cd G:\phpstudy\mysql\bin 进入到MySQL的bin目录下,才可以输入 mysql -hlocalhost -uroot -p 然后按回车键。
sudo ser
数据库的简介
- 用途: 用于存储生活中的一切数据,如身份证,住宿,票务,网站
- 分类:
- 关系数据库: mysql ,oracle sqlserver ,sqlite… (表格形式存储)
- 非关系型数据库:Rides , MongoDB(键值对存储)
- 慨念: 数据库的服务器, 数据库, 数据表, 数据, 字段
- SQL: structured query language, 结构化查询语言
- 命令:
- 数据定义语言(DDL) : 创建, 删除 , 修改
- 数据操作语言(DML) : 增 , 删 , 改
- 数据查询语言(DQL): 查
- 数据控制语言(DCL) :授权 , 取消授权
- 数据事物语言(DTL) : 开启事务 , 提交事物 ,回滚
数据定义语言
- 查看库: show databases;, 会显示连接的数据库的服务器上面的所有数据库
语法 | 说明 |
---|---|
show databases; | 所有数据库 |
show databases like ‘test_db’ | 查看与 test_db 完全匹配的数据库 |
show databases like ‘%test%’ | 查看名字中包含 test 的数据库 |
show databases like ‘db%’; | 查看名字以 db 开头的数据库 |
show databases like 'db% ‘%db’; | 查看名字以 db 结尾的数据库 |
-
创建数据库: create database test (库名) ; 创建一个叫test的数据库
-
删除数据库:drop database test (库名); 删除一个叫test的数据库
-
此时数据库 test 不存在。再次执行相同的命令,直接使用 drop database test,系统会报错
#如果使用if exists从句,可以防止系统报此类错误 mysql>drop database if exists test
-
-
选择数据库:use test ; , 选择一个叫test的数据库
- 查看当前的数据库:
- show tables; 显示数据库里面的所有表
- 查看当前的数据库:
-
创建表:create table user(username varchar(20), password char(32) );
-
查看表的结构: desc user
-
查看服务器的
-
字符集和存储引擎
-
存储引擎 : Innodb , myiseam
-
查看当前的字符集:show variables like " character%"(utf8)
-
查看存储引擎: show variables like “%storage%”; (InnoDB)
-
ubuntu下面的修改配置文件:/etc/mysql/mysql.conf.d/mysql.cnf
... [mysqld] #字符集 character-set-server=utf8 #存储引擎 default-storage-engine=InnoDB #重启才能生效
-
-
查看创建语言
- 查看库 : show create database test(库名);
- 查看表的创建语言: show create table user;
-
删除表: drop table user;
-
修改表结构(alter)
- 修改字段类型: alter table user modify username varchar(20);
- 修改字段名字: alter table user change password(旧字段名) pwd(新字段名) char(32);
- 添加新的字段:
- 默认在末尾添加: alter table user add age int;
- 在指定的字段后面添加: alter table user add email varchar(64) after pwd; 在pwd后面添加一个email
- 在开头进行字段添加: alter table user add id int first
- after和first也适用于modify和change
- 删除指定的字段: alter table user drop age;
- 修改表的名字: 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字节 decimal(m,d) 以字符串类型的形式存储浮点数,多用于金融行业 - 在 MySQL 中,定点数以字符串形式存储,在对精度要求比较高的时候(如货币、科学数据),使用 DECIMAL 的类型比较好,另外两个浮点数进行减法和比较运算时也容易出问题,所以在使用浮点数时需要注意,并尽量避免做浮点数比较。
-
字符串类型
类型 说明 varchar 变长的字符串,0-65535字节 char 定长的字符串,0-255字节 text 文本类型 -
时间类型
类型 说明 date 日期,格式:“2019-08-12”,3个字节 time 时间,格式:“15:03:34”,3个字节 datetime 时间日期,格式:“2019-08-12 15:03:34”,8个字节 timestamp 时间戳,4个字节 ,1970-现在, year 年,只占1个字节 -
字段的修饰
类型 说明 unsigned 无符号 zerofill 高位填充0,可以防止负数的出现 default 默认值 not null 不能为空 auto_increment 自动增加1,用于整型的字段,常和主键一起使用 -
字符集
- 查看系统的字符集:show character set;
-
存储引擎
-
查看系统支持的引擎: show engines
-
常用的存储引擎有:
存储引擎 说明 InnoDB 适合多写的操作 MyISAM 适合多读的操作
-
-
搜引管理
-
说明 : 简单理解就是一本书的目录,可以读取效率,但是也不是越多越好
-
分类 :
索引 说明 普通索引 index,最基本的索引 唯一索引 unique,修饰的字段不能重复 主键索引 primary key,是一个特殊的唯一索引,一张表只能有一个主键 全文索引 fulltext,对全局的数据添加索引(很少用) -
添加索引: alter table new_user add index(email);
-
删除索引: alter table new_user drop index email;
-
创建表的时候,最标准的写法:
create table user( id int auto_increment, name varchar(20), primary key(id), unique(name) )engine=InnoDB default charset=UTF8
-
2
数据操作语言(DML)Data Manipulation Language
-
说明:在大多数操作数据库中都是增删改
-
准备:一张用于测试的表
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,'蒋龙',2556783,'湖南',22,0); #可以一次性插入多个,每条数据都必须使用()扩起来,使用之间使用逗号隔开
-
方式2:指定字段,只需要传递指定字段值,通常使用这个方式,如:
insert into start (name, money, age, sex, province) values("周杰伦", 78278278, 42, 0, "台湾"), ("胡歌", 72636633,39,0,"上海");
注释:插入数据字段的顺序,与前面指定一定要一致,与数据库里面的字顺序无关。
-
说明:插入数据不用传值的字段
- 自增的字段
- 有默认值
- 可以为空
-
修改数据:
-
示列 :
update start set money=7272727 where id=3
-
警告: 修改的时候,一定不要忘了加条件,后果很严重
-
-
删除数据:
- 示列:
delete from start where name="胡歌"; 警告:删除操作一定不要忘了加条件,后果很严重
- 说明: 在真实的项目中,不会真的删除,大多数用逻辑删除
数据查询语言(DQL)
-
基本查询 : select * from start:
-
指定字段查询: select name ,money from start;
-
过滤重复的记录: select distinct province from start:
- 说明: 使用distinct指定的字段不能重复,指定多个字段
-
条件查询:
-
条件
条件 说明 > 大于 < 小于 >= 大于等于 <=
-