MariaDB学习(一) -数据库和表基本操作

课程介绍:

  刘国斌 QQ: 77331283

  1. 数据库: 学习如何对数据进行增删改查 4

  2. Web前端: 学习如何开发页面 7

  3. SpringBoot: 学习如何解析请求 以及如何做出响应 9

 

数据库

  • 学习数据库就是学习如何对数据进行增删改查操作

  • 之前通过IO技术对数据进行增删改查相当于自己写了一个简单版的数据库软件,功能少,而且效率低,对数据进行增删改查的需求几乎所有的网站都有, 互联网行业凡是常用的 实现过程又比较麻烦的需求肯定是有一种通用的解决方案, 我们需要学习的就是如何去使用这种通用的解决方案。 数据库软件就是这样的一个通用解决方案.

  • DBMS: DataBase Management System 数据库管理系统(数据库软件)

  • 常见的DBMS:

    • MySQL: Oracle公司产品, 09年MySQL被Sun公司收购, 10年Sun公司被Oracle收购, MariaDB(原MySQL团队公司开发的) , 市占率排名第一 , 开源

    • Oracle: Oracle公司产品, 闭源,价格最贵,性能最强 , 市占率排名第二

    • SQLServer: 微软公司产品, 闭源 , 市占率排名第三

    • DB2: IBM公司产品

    • SQLite: 轻量级数据库,安装包只有几十个kb,只具备最基础的增删改查操作.主要应用在移动设备或嵌入式设备中.

  • 开源和闭源

    • 开源: 开放源代码, 产品免费,盈利方式:靠卖服务 , 好处: 技术大拿可能会对产品进行无偿的维护升级

    • 闭源:不开放源代码,盈利方式:产品收费+卖服务 , 可能会有技术大拿攻击找漏洞 ,但是闭源产品公司有钱,会养一群人负责维护升级.

SQL语言(Structured Query Language)

  • Structured Query Language结构化查询语言

    • 作用: 负责程序员和数据库软件进行交流

  • 举例:

    insert into user values('tom','123456');

    select username,password from user;

    delete from user where name='tom';

    update user set name='jerry' where name='tom';

 

电脑上安装数据库软件(MySQL或MariaDB)

  • 安装步骤参见苍老师文档服务器

安装教程:Windows MySQL安装配置 http://doc.canglaoshi.org/doc/mysql.html

注意:如果之前已经安装了MySQL或者MariaDB其中一个,此时安装数据库名和端口号要修改,port可以由3306设置为3307。

 

下载Git工程 里面有笔记

https://gitee.com/teduliu/mysql05.git

 

链接数据库

  • 确保数据库中已经安装了数据库软件

  • 找到MySQL Client 打开

  • 退出链接: exit;

  • 链接指令(登录): mysql -uroot -p

  • 如果是Linux或mac os 打开终端 输入上面的内容: mysql -uroot -p

 

SQL语句分类

  • DDL: 数据定义语言,包括数据库相关和表相关 , 在MySQL数据库软件中保存数据需要先建库再建表最后才能操作数据.

  • DML:数据操作语言, 包括数据相关的增、删、改、查

  • DQL: 数据查询语言, 只包括查询相关的SQL语句

  • TCL: 事务控制语言

  • DCL: 数据控制语言, 包括用户管理和权限分配相关SQL.

 

数据库和表的概念

  • 如果需要在MySQL里面保存数据, 需要先建库,再建表, MySQL里面可以有n个数据库, 一个数据库里面可以有n张表, 一张表里面可以有n条数据。

  • 即:数据库---表---数据

 

数据库格式:

  • 以分号结尾

  • 不区分大小写

  • 可以包含空格和换行

     

和数据库相关的SQL语句

  1. 查询所有数据库

  • 格式: show databases;

  1. 创建数据库

  • 格式: create database 数据库名 charset=utf8/gbk; 或 create database 数据库名 character set utf8;

  • 举例:

    create database db1;

    create database db2 charset=utf8;

    create database db3 charset=gbk;

    show databases;

  1. 查询数据库信息

  • 格式: show create database 数据库名;

  • 举例:show create database db1;

  1. 删除数据库

  • 格式: drop database 数据库名;

  • 举例:

    drop database db3;

    drop database db2;

  1. 使用数据库

  • 在进行表相关或数据相关的操作之前必须使用了某一个数据库

  • 格式:use 数据库名;

  • 举例:use db1;

 

练习题:

  1. 创建mydb1和mydb2数据库 字符集第一个是utf8,第二个是gbk

    create database mydb1 charset=utf8;

    create database mydb2 charset=gbk;

  2. 查询所有数据库检查是否创建成功

    show databases;

  3. 分别查询mydb1和mydb2 检查字符集是否正确

    show create database mydb1;

    show create database mydb2;

  4. 先使用mydb1,再使用mydb2;

    use mydb1;

    use mydb2;

  5. 删除两个数据库

    drop database mydb1;

    drop database mydb2;

     

表相关的SQL语句

  1. 创建表

    • 格式: create table 表名(字段1名 类型,字段2名 类型)charset=utf8或gbk;

    • 举例:

      create table person(name varchar(50));

      create table student(name varchar(50),age int)charset=utf8;

      create table hero(name varchar(50),type varchar(30),price int)charset=gbk;

  2. 查询所有表

    • 格式: show tables;

  3. 查询表信息

    • 格式: show create table 表名;

    • 举例:show create table hero;

  4. 查询表字段

    • 格式: desc 表名;

    • 举例:desc hero;

  5. 删除表

    • 格式: drop table 表名;

    • 举例:

    drop table hero;

    drop table student;

 

练习题:

  1. 创建mydb3数据库,指定字符集utf8,并使用

    create database mydb3 charset=utf8;

    use mydb3;

  2. 创建hero英雄表,设置名字和价格字段、字符集utf8

    create table hero(name varchar(50),price int)charset=utf8;

  3. 查询所有表检查是否创建成功

    show tables;

  4. 查询hero表字符集

    show create table hero;

  5. 查看表字段

    desc hero;

  6. 删除hero表

    drop table hero;

  7. 删除数据库mydb3

    drop database mydb3;

表相关SQL(续)

  1. 修改表名

    • 格式: rename table 原名 to 新名;

    • 举例:rename table hero to t_hero;

  2. 添加表字段

    • 最后添加格式: alter table 表名 add 字段名 类型;

    • 最前面添加格式: alter table 表名 add 字段名 类型 first;

    • 在xxx字段后面添加: alter table 表名 add 字段名 类型 after xxx;

    • 举例:

      create table emp(name varchar(50));

      alter table emp add age int;

      alter table emp add id int first;

      alter table emp add salary int after name;

  3. 删除表字段

    • 格式: alter table 表名 drop 字段名;

    • 举例:alter table emp drop salary;

  4. 修改表字段

    • 格式: alter table 表名 change 原名 新名 新类型;

    • 举例:

    alter table emp change age salary int;

    alter table emp change salary job varchar(10);

     

表相关SQL回顾:

  1. 创建: create table t1(name varchar(20),age int)charset=utf8/gbk;

  2. 查询所有: show tables;

  3. 查询表信息: show create table t1;

  4. 表字段; desc t1;

  5. 删除表 drop table t1;

  6. 修改表名: rename table t1 to t2;

  7. 添加表字段; alter table t1 add 字段名 类型 first/after xxx;

  8. 删除表字段: alter table t1 drop 字段名;

  9. 修改表字段: alter table t1 change 原名 新名 新类型;

 

练习题:

  1. 创建数据库mydb4,指定字符集utf8,并使用

    create database mydb4 charset=utf8;

    use mydb4;

  2. 创建teacher表,字段只有名字name,指定字符集utf8

    create table teacher(name varchar(50))charset=utf8;

  3. 添加表字段: 最后面添加age 最前面添加id age前面添加salary工资

    alter table teacher add age int;

    alter table teacher add id int first;

    alter table teacher add salary int after name;

  4. 删除age字段

    alter table teacher drop age;

  5. 修改表名为 t

    rename table teacher to t;

  6. 删除表

    drop table t;

  7. 删除数据库mydb4

    drop database mydb4;

 

数据相关SQL

  create database db2 charset=utf8;

  use db2;

  create table person(id int,name varchar(50),age int)charset=utf8;

  1. 插入数据

    • 全表插入格式: insert into 表名 values(值1,值2,值3);

      • 注意此处是values,表示可以插入多条数据,当为value时只能插入一条数据

    • 指定字段插入格式: insert into 表名(字段1名,字段2名) values(值1,值2);

    • 举例:

      insert into person values(1,"tom",18); //全表插入

      insert into person(name,age) values('jerry',20); //指定字段插入,多个字段之间用,隔开

      insert into person(name)values("Lucy");

  • 批量插入数据: 在values后面写多组值

    insert into person values(2,'lilei',10),(3,'hanmeimei',20);

    insert into person(name) values('liubei'),('guanyu');

  • 中文问题:

    insert into person values(5,'刘德华',50);

    • 如果执行上面包含中文的SQL语句出现下面的提示:

      执行set names gbk;

  1. 查询数据

    格式: select 字段信息 from 表名 where 条件;

    举例:

    select name from person; //查询person表里面所有的名字

    select name from person where age>30;

    select name,age from person where name='tom';

    select * from person; //查询所有数据的所有字段信息

  2. 修改数据

    • 格式: update 表名 set 字段名=值,字段名=值 where 条件;

    • 举例:

      update person set age=66 where name='Lucy';

      update person set name='张学友' where age=20;

      update person set age=100 where age is null;//注意查询条件的参数为NULL时,要在条件中写:字段名 is null

  3. 删除数据

    • 格式: delete from 表名 where 条件;

    • 举例:

      delete from person where name='tom';//删除表中指定条件的数据

      delete from person where age<30;

      delete from person;//删除表中所有数据

 

数据相关练习

 1. 创建数据库mydb5 字符集utf8并使用
 create database mydb5 charset=utf8;
 use mydb5;
 2. 创建hero表 字段有: id ,name , type(类型的意思 字符串)
 create table hero(id int,name varchar(50),type varchar(10))charset=utf8;
 3. 插入以下数据:
 insert into hero values(1,'荆轲','刺客'), (2,'诸葛亮','军师'),(3,'关羽','战士'), (4,'黄忠','射手');
 4. 修改诸葛亮为法师  
 update hero set type='法师' where name='诸葛亮';
 5. 给表添加价格money字段  
alter table hero add money int;
 6. 修改id小于5的价格为6888
 update hero set money=6888 where id<5;
 7. 修改法师为打野
 update hero set type='打野' where type='法师';
 8. 修改黄忠为五虎上将
 update hero set name='五虎上将' where name='黄忠';
 9. 删除id等于5的数据  
 delete from hero where id=5;
 11. 修改表名为heros    
 rename table hero to heros;
 12. 删除money字段  
 alter table heros drop money;
 13. 删除所有数据 ,删除heros表
 delete from heros;
 drop table heros;

 

晚课任务:

  1. 创建汽车car表 字段有: id ,name , type(类型的意思 字符串)

    create table car(id int,name varchar(50),type varchar(40))charset=utf8;

  2. 插入以下数据: 1 五菱宏光 面包车 , 2 保时捷911 跑车 , 3 蔚来ES8 SUV, 4 小鹏p7 纯电轿车

    insert into car values(1,'五菱宏光','面包车'),(2,'保时捷911','跑车'),(3,'蔚来ES8','SUV'),(4,'小鹏p7','纯电轿车');

  3. 修改五菱宏光为敞篷跑车

    update car set type='敞篷跑车' where name='五菱宏光';

  4. 给表添加价格money字段

    alter table car add money int;

  5. 修改id小于3的价格为10000

    update car set money=10000 where id<3;

  6. 修改蔚来ES8 为纯电SUV

    update car set type='纯电SUV' where name='蔚来ES8';

  7. 修改保时捷911价格为20000

    update car set money=20000 where name='保时捷911';

  8. 删除id等于4的数据

    delete from car where id=4;

  9. 修改所有车的价格为888

    update car set money=888;

  10. 修改表名为cars

    rename table car to cars;

  11. 删除money字段

    alter table car drop money;

  12. 删除所有数据

    delete from car;

  13. 删除表

    drop table car;

  14. 删除数据库

    drop database mydb5;

 

HeidiSQL使用:

打开页面:

点击“新建”,出现一个未命名的会话标题,右侧输入用户名:root,密码:root,端口选择3306,打开(由于之前安装了MySQL占用了端口3306,此处输入MariaDB端口号3307)

选择Yes

生成页面如下:

进行SQL代码编写:

主机显示每个数据库的信息:

数据库:显示当前数据库下所包含的数据

Table:显示表字段的详细信息

数据:查看表中的数据

查询:进行SQL代码编写

可通过在显示页面上点击数据库或表进行定位,通过单击右键或者上面的代码编辑工具进行对数据库和表进行操作,左下侧对应相应SQL代码:

 

 

posted @ 2021-07-21 20:52  Coder_Cui  阅读(322)  评论(0编辑  收藏  举报