MySQL基础入门使用和命令的使用

数据库了解

  • 概念
    • 数据库就是一种特殊的文件,其中存储着须要的数据
    • 一个数据库能够有多张表
    • MySQL是一种关系型数据库
      • 具备关联性数据的就是关系型数据库
    • MySQL是一种软件能够用来建立mysql数据库
    • MySQL也是C/S构架(底层TCP)
      • MySQL客户端
        • 客户端链接服务端使用TCP协议链接
        • 使用时SQL语句操做
      • MySQL服务器
        • MySQL服务器操做数据库
  • 数据库优势
    • 持久化存储
    • 读写速度高
    • 保存速度有有效性
    • 对程序支持很是好,容易扩展
  • 数据库词汇
    • 列:字段
    • 行:记录
    • 表:记录的集合
    • 主键:惟一标记一行记录的
    • 外键:对于一张表中某个字段的值是另外一张表的主键的值
  • 常见的关系型数据库及底层了解
    • RDBMS
      • 是一种程序的简称,分为关系型数据库和非关系型数据库
    • 关系型数据库
      • MySQL(经常使用与制做网站)
        • 经常使用版本:5.1 5.6 5.7 5.8
      • sqlite
      • Oracle
        • 经常使用版本 Oracle 10g Oracle 11g
      • sqlserver(Microsoft)
      • db2(IBM)
    • 非关系型数据库
      • redis(处理缓存)
      • mangodb(存储非关系型数据)

SQL语言概念

  • SQL语句是一种结构化查询语句,能够用来操做RDBMS数据库语言
  • sql语句分类
    • DQL查询
      • select
    • DML操做
      • insert update delete

MySQL基础操做

  • 安装
    • ubuntu:
      • sudo apt-get install mysql-server(服务端)
      • sudo apt-get install mysql-client(客户端)
  • 启动
    • sudo service mysql start
  • 暂停
    • sudo service mysql stop
  • 重启
    • sudo service mysql restart
  • 配置文件
    • /etc/mysql/mysql.conf.d/mysqld.cnf

MySQL的主要数据类型和约束

数据类型

  • 整数型
    • int
    • bit
  • 小数
    • decimal
      • decimal(5, 2),表示一共存5位数,小数占2位
  • 字符串
    • varchar
    • char
      • char(3)表示固定长度的字符串,长度不够会用空格补全,不能够超过3个字符
    • varchar
      • varchar(3)填充ab就会存储ab,不能够超过3个字符
  • 时间类型
    • data, time, datatime
  • 枚举类型
    • enum
      • 好比性别,表明只有固定的类型让人选择
  • test类型
    • 当字符大于4000以后推荐使用
  • ps:
    • 对于图片,音频,视频等文件,不存储在数据库中,而是上传到服务器中,数据库只保存文件的保存路径

约束

  • 约束是用来限制每个字段的
  • 主键primary key
    • 物理上存储的顺序
  • 非空not null
    • 此字段不容许为空
  • 外键python

  • 数值类型
    • tinyint 1个字节,0-255
    • smallint 2个字节 0-65535
    • mediumint 3个字节
    • int/integer 4个字节
    • bigint 8个字节
  • 字符串
    • char
    • barchar
    • text

用命令来操做数据库

数据库链接

  • mysql -uroot -pmysql
  • mysql -uroot -p (这种方式须要写密码)

退出数据库

  • quit/exit/ctrl+d

查看数据库

  • show databases;

显示时间

  • select now();

显示版本

  • select version();

建立数据库

  • create database python;(建立一个名称为Python的数据库)
  • create database pythonnew charset=utf8;(建立一个字符集为utf8编码名称为pythonnew的数据库)

删除数据库

  • drop database python;(删除名称为Python的数据库)

使用数据库

  • use 数据库名称

查看当前使用数据库

  • select database();

数据表操做

  • 显示数据库全部的表
    • show tables;
  • 建立一个数据表
    • create table xxxxx(id int, name varcharm(30)); # 一个逗号建立一个字段
    • create table xxxxx(id int primary key not null auto_increment, name varcharm(30)); # 添加约束在每个字段后面加上约束
    • 案例建立一个students表(id,name,age,high,gender,cls_id)
create table students(
            id int unsigned not null auto_increment parimary key,
            name varchar(30),
            age tinyint unsigned defult 0,
            high decimal(5,2),
            gender enum("男","女") default "男",
            cls_id int unsigned
  • ps:
    • 建立表顺序(字段名 类型 约束)
  • desc 数据表的名字;(能够快速查看表结构)

数据表字段结构的的增删减查

    • alter table students add birthday datetime;
    • alter table 表名
    • drop table 表名
    • alter table 表名 modify brithday data; 不重名
    • alter table 表名 change brithday birth date default '1990-01-01'; 重名

ps:
show create table students; # 能够查看建立这个数据表的SQL语句mysql

数据的增删改查

  • 增:
    • insert into 表名 values(....)
    • insert into 表名 values(....),(....)
    • insert into 表名(字段,字段) values (值1, 值2)
    • insert into 表名(字段,字段) values (值1, 值2),(值1,值2)
    • ps:
      • 枚举中数字1表明
  • 改:
    • update 表名 set 字段=值 (直接修改所有字段)
    • update 表名 set 字段=值 where name=值 (在知足where后面的条件,通常用主键来判断来指定修改)
    • update 表名 set 字段=值,字段2=值 where name=值 (一次修改多个值)
  • 查询
    • select 指定字段 from 表名 (*表明全部的字段)
    • select 指定字段 as 命名 from 表名 (能够修改字段的名称显示出来)
    • truncate students;(清空表)
    • delete from 表名; (删除表的全部内容)
    • delete from 表名 where id<6; (指定删除)
    • 不要去删除数据,能够添加字段来逻辑删除
      • alter table students add is_delete bit default 0;
      • update students set is_delete=1 where id=6;
相关文章
相关标签/搜索