初识MySQL数据库

关系型数据库

  1. 支持复杂的SQL语句的查询
  2. 支持事物(一系列操作的集合。也可理解为集合中的一系列操作协作完成事务)

非关系型数据库

  1. NOSQL 不需要经过SQL层的处理 性能高
  2. 可扩展性 因为是键值对的形式 所以水平扩展非常的容易

使用管理员身份:net start mysql57
MySQL57 服务正在启动 .
MySQL57 服务已经启动成功。


一、进入到数据库

-h host 主机名
-u user 用户名
-p password 密码

mysql -h localhost -u root -p
->密码
mysql -uroot -p
->密码

root超级管理员 可以创建和管理其他的用户root用户不可以远程登录


二、对于库的操作

CREATE 创建

DROP 删除

ALTER 修改

SHOW 展示

(1) 查看所有的数据库

show databases;

(2) 创建数据库

create database 库名;

create database if not exists 库名; 防止创建同名的库出现错误

(3) 查看创库语句

show create database 库名

(4) 使用数据库(进入到当前的库中)

use 库名

(5) 查看当前所在的数据库

select database();

(6) 数据库的删除

drop database 库名;

drop database if exists 库名; 删除数据库如果该库存在 防止报错

(7) 创建数据库并设置字符集

create database 库名 character set utf8;

(8) 创建数据库 并设置字符集

alter database hzpython1803 character set 字符集;


三、对于表的操作

1. 查看所有的表

show tables;

2. 创建表
mysql> create table if not exists fs(
    -> id int unsigned primary key auto_increment,
    -> username varchar(20),
    -> sex tinyint,
    -> age tinyint unsigned,
    -> info varchar(100)
    -> );
3. 查看表结构

desc 表名 : descend降序

+----------+---------------------+------+-----+---------+----------------+
| Field    | Type                | Null | Key | Default | Extra          |
+----------+---------------------+------+-----+---------+----------------+
| id       | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| username | varchar(20)         | YES  |     | NULL    |                |
| sex      | tinyint(4)          | YES  |     | NULL    |                |
| age      | tinyint(3) unsigned | YES  |     | NULL    |                |
| info     | varchar(100)        | YES  |     | NULL    |                |
+----------+---------------------+------+-----+---------+----------------+
4. 删除表中的某个字段

alter table fs drop 字段名;

5. 删除表

drop table if exists 表名; 删除表如果该表存在


四、MySQL表的创建

字段类型

(1) 整形
类型大小范围无符号范围用途
tinyint1字节-128,1270,255小整数值
smallint2字节-32768,327670,65535大整数值
int4字节2->10位置4… 10 位的大整数值
float(m,n)4个字节单精度浮点型
double(m,n)8个字节双精度浮点型
decimal(m,n)根据存储的值小数据值(更加精准)

浮点数中的m代表当前存储的长度 n代表小数的位数 m-n代表整数的位数 超出则报错

整形后面的数字的意义:
  1. 整形后面给定数字 并不是限定当前存储值的长度 并没有任何的意义 除非配合可选参数 zerofill 零填充 才有意义
  2. 字符串类型后面给定的长度 则是限制当前存储数据的长度
  3. 整形默认长度会比本身长度大1,因为是符号位
(2) 字符串类型
类型大小用途
char0-255存储定长字符串
varchar0-255存储不定长度字符串
text0-65535长文本数据
blob0-65535存储二进制的长文本数据
enum(‘w’,‘m’)65535个成员枚举:只能选取括号中的某一个值进行存储
set(‘w’,‘m’)64个成员集合:可以选择多个成员
FieldTypeNullKeyDefaultExtra
idint(11)YESNULL
numsmallint(6)YESNULL
agetinyint(4)YESNULL
fmoneyfloat(6,4)YESNULL
dmoneydecimal(6,2)YESNULL

int、smallint、tinyint 后面搜加一位:符号位

char和varchar的相同和不同点 :
  1. char 和 varchar 的存储长度都为0-255
  2. char 的执行效率高于 varchar
  3. varchar 要比 char 更节省存储空间
  4. 当 char 存储的值达不到指定的长度时 则使用空来占位
enum和set区别
  1. enum只能选择其中的一个值
  2. set可以选择多个值 多个值使用逗号来隔开
create table mystring(....)
select * from mystring
该语句为查询表或视图中的所有字段,* 表示所有字段
(3) 时间和日期
类型大小范围格式用途
date31000-01-01 - 9999-12-31YYYY-MM-DD日期
time3-838:59:59/838:59:59HH:MM:SS时间值或持续时间
year11901/2155YYYY年分值
datetime81000-01-01 00:00:00 /9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS存储时间和日期

五、字段约束

1. unsigned 无符号 正数

只能用于数值类型,不允许出现负数,存储长度会扩大一倍

2. zerofill 零填充

只能用于数值类型,当指定的位数不足的时候,零填充

3. default 默认值

如果当前字段没有传值,则值为默认值(不设定默认值 默认为null)

4. null 和 not null

默认为null,当不插入值则插入的为null,当设置当前字段为 not null 的时候,则该字段必须传值

5. comment 设置当前字段的说明
6. auto_increment 自增

六、注意

  1. SQL 语句以分号作为结束

  2. SQL命令 不区分大小写

  3. 数据库的切换使用use

  4. \c 撤销当前命令

  5. \G 竖着查看

  6. 当遇到在终端中 不管怎样输入命令都不执行 name 查看一下左侧 是否为->

  7. 在Windows下 不区分库,表名的大小写 但是在Ubuntu下区分

  8. 退出数据库的几种方式

    \q exit quit

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值