MySQL数据库---基础学习笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_44779847/article/details/102743027

###数据库

  • 之前学习的通过IO流操作文件的形式对数据进行增删改查 存在很多弊端
    1. 效率低
    2. 一般只能保存小量数据
    3. 只能保存文本数据
      - 什么是DBMS: DataBaseManagementSystem,数据库管理系统(数据库管理软件),作用就是负责对数据进行增删改查的软件,常见的DBMS: MySQL、Oracle、DB2、SQLServer、SQLite等
      - 数据库分类:
      1. 关系型数据库: 以表为单位保存数据,经过数学理论验证可以保存现实生活中存在的任何关系

2. 非关系型数据库: 以键值对形式保存数据,一般用于解决特殊场景,如数据缓存。

- 开源和闭源

  1. 开源:公开源代码, 免费 , 盈利方式:靠卖服务 , 开源有大拿无偿维护升级。
  2. 闭源:不公开源代码,收费, 盈利方式:靠卖产品+卖服务 ,闭源有大拿攻击 但是公司会花钱养一群人维护升级。

- 主流数据库软件介绍

  1. MySQL: Oracle公司产品, 08年被Sun公司收购,09Sun被Oracle 拉里.埃里森
    MariaDB 市场占有率第一
  2. Oracle: Oracle公司产品 市场占有率第二 ,性能最高 价格最贵的数据库
  3. SQLServer: 微软公司产品 排第三 , 主要应用在微软整套解决方案中
  4. DB2: IBM公司产品 主要应用在IBM整套解决方案中
  5. sqlite: 轻量级数据库,只具备基础的增删改查操作

###SQL

  • Structured Query Language:结构化查询语言,用户程序员和数据库软件进行交流的语言
    ###如何连接数据

mysql -uroot -p

###数据库相关

  1. 查看所有数据库
  • show databases;
  1. 创建数据库
  • 格式: create database 数据库名;
    create database db1;
  1. 查看数据库详情
  • 格式: show create database 数据库名;
    show create database db1;
  1. 创建数据库 指定字符集
  • 格式: create database 数据库名 character set utf8/gbk;
    create database db2 character set gbk;
  1. 删除数据库
  • 格式: drop database 数据库名;
    drop database db2;
  1. 使用数据库
  • 格式: use 数据库名;
    use db1;
    ###表相关
  • 前提一定使用了数据库,才能执行表相关的SQL
  1. 创建表
  • 格式:create table 表名(字段1名 字段1类型,字段2名 字段2类型,…);
    create table person(name varchar(5),age int);
  • 练习:创建学生表(student) 字段: 学号id 姓名name 语文chinese 数学math 英语english
    create table student(id int,name varchar(10),chinese int,math int,english int);
  1. 查看所有表
  • 格式: show tables;
    show tables;
  1. 查看表详情
  • 格式: show create table 表名;
    show create table person;
    - 引擎:
    1. innodb:默认,支持事物、外键等高级操作
    2. myisam: 只支持基础的增删改查操作,不支持事物、外键等高级操作

###表相关 续

  1. 查询表字段信息
  • 格式: desc 表名;
    desc person;
  1. 删除表
  • 格式: drop table 表名;
    drop table person;
  1. 创建表指定引擎和字符集
  • 格式: create table 表名(字段1名 字段1类型,字段2名 字段2类型,…) engine=innodb/myisam charset=gbk/utf8;
    create table person(name varchar(10),age int)engine=myisam charset=gbk;
  1. 修改表名
  • 格式: rename table 原名 to 新名;
    rename table person to t_person;
  1. 修改表引擎和字符集
  • 格式: alter table 表名 engine=myisam/innodb charset=utf8/gbk;
    alter table t_person engine=innodb charset=gbk;
  1. 添加表字段
  • 格式: alter table 表名 add 字段名 字段类型; //最后
  • 格式: alter table 表名 add 字段名 字段类型 first;//最前面
  • 格式: alter table 表名 add 字段名 字段类型 after xxx;在xxx后面
    alter table t_person add sal int;
    alter table t_person add id int first;
    alter table t_person add gender varchar(5) after name;
  1. 删除表字段
  • 格式: alter table 表名 drop 字段名;
    alter table t_person drop gender;
  1. 修改表名和字段类型
  • 格式: alter table 表名 change 原名 新名 新类型;
    alter table t_person change sal salary int;
  1. 修改字段类型和位置
  • 格式: alter table 表名 modify 字段名 新类型 first/ after xxx;
    alter table t_person modify name varchar(5) after age;

###数据相关
create database db1 character set utf8;
use db1;
create table person(id int,name varchar(10),age int);

  1. 添加数据
  • 全表插入格式: insert into 表名 values (值1,值2,值3); 要求值得数量和顺序必须和表字段的数量、顺序一致
    insert into person values(1,‘Tom’,18);
  • 指定字段插入格式: insert into 表名 (字段1名,字段2名) values (值1,值2); 要求值得数量和顺序和前面指定的一致
    insert into person (id,name) values(2,‘Jerry’);
  • 批量插入数据
    insert into person values(3,‘aaa’,10),(4,‘bbb’,11);
    insert into person (id,name) values(5,‘ccc’),(6,‘ddd’);
  1. 查询数据
  • 格式: select 字段信息 from 表名 where 条件;
    select name from person;
    select name,age from person where id<3;
  1. 修改数据
  • 格式: update 表名 set 字段名=值 where 条件;
    update person set age=50 where id=2;
  1. 删除数据
  • 格式: delete from 表名 where 条件;
    delete from person where name=‘Tom’;
    ###乱码问题
    insert into person values (10,‘刘德华’,17);
  • 如果执行包含中文SQL 报错时 执行以下指令解决
    set names gbk;
  • 如果执行插入中文没有报错 但是查询出现乱码,此时把数据库删除 重新创建确保数据库字符集为utf8 表的字符集为utf8再次测试,如果还是解决不了问题,重新安装数据库或联系项目经理帮忙解决

猜你喜欢

转载自blog.csdn.net/qq_44779847/article/details/102743027