MySQL数据库1

MySQL数据库

关系型数据库

  1. 支持复杂的SQL语句的查询
  2. 支持事物

非关系型数据库

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

mysql安装

– 如果端口被占用

First of all uninstall the previous version of mysql… in most of the cases it works. If it doesn’t , open Run (win+R) and type “resmon.exe” .A window will be opened, now click on Listening ports .Now you can see port “3306” as mysqld.exe. Now, remember the PID of the mysqld.exe. Now, open cmd (as administrator) and type taskkill /F /PID 3306 (if your PID is 3306) …. That’s it now you can reinstall mysql again with 3306 port

– 安装后将路径添加到系统变量

C:\Program Files\MySQL\MySQL Server 5.7\bin

一、进入到数据库

-h host 主机名

-u user 用户名

-p password 密码

net start 服务器名称
net start mysql57

mysql -hlocalhost -uroot -p
->密码
mysql -uroot -p
->密码


# 查看版本
select version();
# 显示当前时间
select now();
# 退出
quit或exit

net stop 服务名称
net stop mysql57

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; charset=utf8

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

alter database hzpython1803 character set 字符集;

(9) 查看字段字符集

show full fields from 表名

三、对于表的操作

  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 表名

    +----------+---------------------+------+-----+---------+----------------+
    | 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. 查看建表语句
    show create table 表名字;
  5. 重命名表名

    rename table 原表名 to 新表名;

  6. 添加修改删除表中的某个字段

    alter table 表名 add|modify|drop 字段名 类型…;

    alter table newcar add isDelete bit default 0

  7. 删除表

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

  8. 清空表

    truncate 表名 设置auto_increment 为原位

  9. 删除表内容

    delete from 表名 auto_increment 没复位

四、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长文本数据
blob(binary large object)0-65535存储二进制的长文本数据
enum(‘w’,’m’) 如男女65535个成员枚举:只能选取括号中的某一个值进行存储
set(‘dancing’,’playing’) 如爱好64个成员集合:可以选择多个成员
char和varchar的相同和不同点 :
  1. char和varchar的存储长度都为0-255
  2. char的执行效率高于varchar
  3. varchar要比 char更节省存储空间
  4. 当char存储的值达不到指定的长度时 则使用空来占位
enum和set区别
  1. enum只能选择其中的一个值
  2. set可以选择多个值 多个值使用逗号来隔开
set的使用
  1. create table test(id int unsigned primary key auto_increment not null, choice set(‘a’, ‘b’, ‘c’));
  2. insert into test values(null, ‘a, b, c’);

(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 无符号 正数

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

    alter table myint add uage tinyint unsigned after age;

  2. zerofill 零填充

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

    alter table myint modify zid int(5) zerofill; (modify)

  3. default 默认值

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

    alter table myint modify fmoney float(6,2) default 12;

  4. null 和 not null

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

    alter table mystring add notnull varchar(10) not null;

  5. comment 设置当前字段的说明

    alter table mystring add address varchar(50) comment ‘备注:地址’

  6. auto_increment 自增

注意

  1. SQL 语句以分号作为结束
  2. SQL命令 不区分大小写
  3. 数据库的切换使用use
  4. c 撤销当前命令
  5. G 竖着查看
  6. 当遇到在终端中 不管怎样输入命令都不执行 name查看一下左侧 是否为->
  7. 在Windows下 不区分库,表名的大小写 但是在Ubuntu下区分
  8. 退出数据库的几种方式

    q exit quit

    原文作者:rottengeek
    原文地址: https://segmentfault.com/a/1190000015124099
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞