MySQL基础(1)

6 篇文章 1 订阅

数据库DataBase

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

  • 平时所提到的数据库(DBMS数据库管理系统)实际上就是款软件, 电脑上安装了这个软件,电脑就可以成为数据库服务器

  • 常见的DBMS(数据库软件):

    • MySQL: Oracle公司产品, MySQL在08年被Sun公司收购,09年Sun公司被Oracle收购, 目前市占率第一, 开源软件, 原MySQL创始人从Oracle离职创办MariaDB
    • Oracle: Oracle公司产品,闭源, 性能最强价格最贵, 市占率第二 , 拉里埃里森
    • SQLServer: 微软公司产品, 市占率第三 , 闭源 . 主要应用在微软的整套解决方案中(开发网站需要用到的所有= 编程语言+web服务软件+操作系统+数据库软件)
    • DB2: IBM公司产品,闭源 主要应用在IBM的整套解决方案中
    • SQLite: 轻量级数据库, 安装包只有几十k, 功能只具备最基础的增删改查 .
  • 开源和闭源

    • 开源: 开放源代码, 有技术大拿无偿维护升级, 产品免费 靠卖服务盈利
    • 闭源: 不开放源代码, 有黑客或技术大拿攻击,但是闭源公司有钱 雇人维护升级, 靠卖产品和卖服务盈利
  • 学习数据库主要是学习一门语言: SQL(Structured Query Language) 结构化查询语言 , 用于程序员和数据库软件之间进行交流

  • 执行SQL语句需要先连接数据库软件

    • window: 开始->所有程序->MySQL或MariaDB->MySQL Client 点击 运行输入密码后回车
image-20201106101531720
  • Linux系统: 在桌面上右键 打开终端, 输入 mysql -uroot -p 回车 输入密码再回车.

  • 如何检查MySQL服务是否开启?

    在我的电脑上右键->管理->服务->MySQL 查看是否启动 如果没有,右键启动

SQL语句分类:

  • DDL: 数据定义语言,
  • DML: 数据操作语言
  • DQL: 数据查询语言
  • TCL: 事务控制语言
  • DCL: 数据控制语言

DDL数据定义语言

  • 包括数据库相关和表相关的SQL语句
  • 使用数据库软件保存数据需要先建库再建表

数据库相关的SQL

  1. 查询所有数据库

    • 格式: show databases;
  2. 创建数据库

    • 格式: create database 数据库名;

    • 举例:

      create database db1;

      create database db2 character set utf8;

      create database db3 character set gbk;

  3. 查询数据库详情

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

    • 举例:

      show create database db1;

  4. 删除数据库

    • 格式: drop database 数据库名;

    • 举例:

      drop database db3;

  5. 使用数据库

    • 格式: use 数据库名;

    • 举例:

      use db1;

数据库相关回顾

  1. 查询所有 show databases;
  2. 创建 create database db1 character set utf8/gbk;
  3. 查询详情 show create database db1;
  4. 删除数据库 drop database db1;
  5. 使用数据库 use db1;

数据库相关练习

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

    create database mydb1;

    create database mydb2 character set gbk;

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

    show databases;

  3. 分别查询两个数据库的字符集 检查是否成功

    show create database mydb1;

    show create database mydb2;

  4. 先使用mydb1再使用mydb2

    use mydb1;

    use mydb2;

  5. 删除两个数据库

    drop database mydb1;

    drop database mydb2;

表相关的SQL

  • 操作表相关的SQL语句一定要保证使用了某个数据库, 不然会报错
  1. 创建表

    • 格式: create table 表名(字段1名 类型,字段2名 类型);

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

    • 举例:

      create table student(name varchar(20),age int);

      create table hero(name varchar(20),type varchar(20), money int)charset=gbk;

  2. 查询所有表

    • 格式: show tables;
  3. 查询表详情

    • 格式: show create table 表名;
    • 举例: show create table hero;
  4. 查询表字段

    • 格式: desc 表名;
  5. 删除表

    • 格式: drop table 表名;
  6. 修改表名

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

      rename table student to stu;

练习题

  1. 创建数据库db5 字符集为gbk 并使用

    create database db5 character set gbk;

    use db5;

  2. 创建表t_hero英雄表 有名字和年龄字段 默认字符集

    create table t_hero(name varchar(20),age int);

  3. 修改表名为 hero

    rename table t_hero to hero;

  4. 查询表字段

    desc hero;

  5. 删除表 drop table hero;

  6. 删除数据库 drop database db5;

表相关续

  1. 给表添加字段

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

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

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

    • 举例:

      create table emp(name varchar(20));

      alter table emp add age int;

      alter table emp add id int first;

      alter table emp add gender varchar(10) after name;

  2. 删除表字段

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

      alter table emp drop gender;

  3. 修改表字段

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

    • 举例: alter table emp change age salary int;

表相关回顾

  1. 创建表 create table t1(name varchar(20),age int)charset=utf8/gbk;
  2. 查询所有表 show tables;
  3. 查询表字段 desc t1;
  4. 查询表详情 show create table t1;
  5. 删除表 drop table t1;
  6. 修改表名 rename table t1 to t2;
  7. 添加表字段 alter table t1 add age int first/after xxx;
  8. 删除表字段 alter table t1 drop age;
  9. 修改表字段 alter table t1 change 原名 新名 新类型;

DML数组操作语言

  • 包括对数据的增删改查
create database db4 character set utf8;
use db4;
create table person(name varchar(20),age int)charset=utf8;
  1. 插入数据

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

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

    • 举例:

      insert into person values(“Tom”,18);

      insert into person(name) values(“Jerry”);

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

      insert into person values(“Lucy”,20),(“Lily”,21);

      insert into person(name) values(“Lilei”),(“Hanmeimei”);

    • 插入中文数据:

      insert into person values(“传奇哥”,18);

      如果执行带有中文的SQL语句报以下错误, 解决方案: set names gbk;

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MrhqNytu-1604924852015)(C:\Users\PC\AppData\Roaming\Typora\typora-user-images\image-20201106151424743.png)]

    image-20201106152110168
  • 查询

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

    • 举例:

      select name from person;

      select name,age from person;

      select * from person;

      select * from person where age=18;

      select * from person where name=“Lucy”;

  • 修改

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

    • 举例:

      ​ update person set age=50 where name=‘Jerry’;

      ​ 把Tom名字改成汤姆年龄改成50

      ​ update person set age=50,name=“汤姆” where name=“Tom”;

  • 删除

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

    • 举例:

      delete from person where name=“Lucy”;

      delete from person where age<50;

      delete from person;

数据相关SQL回顾

  1. 插入数据: insert into t1(字段1名,字段2名) values(值1,值2),(值1,值2);
  2. 查询数据: select 字段信息 from t1 where 条件;
  3. 修改数据: update t1 set xxx=xxx,xxx=xxx where 条件;
  4. 删除数据: delete from t1 where 条件;

综合练习

1. 创建数据库mydb3 字符集utf8 并使用
create database mydb3 character set utf8;
use mydb3;
2. 创建hero表 字段:id,name,type varchar(10)
create table hero(id int,name varchar(10),type varchar(10));
3. 表中插入以下数据: 
	insert into hero values
	(1, '李白', '刺客'),(2, '诸葛亮' , '法师'),   (3, '刘备', '战士'),
	(4, '孙尚香', '射手'),   (5, '关羽', '战士'),  (6, '刘禅', '辅助');
4. 修改李白的type为诗人   update hero set type='诗人' where name='李白';
5. 给表添加money字段	 alter table hero add money int;
6. 修改id小于5的money为6888	update hero set money=6888 where id<5; 
7. 修改诗人为打野  update hero set type="打野" where type="诗人";	 
8. 修改刘禅名字为阿斗价格为50  update hero set name="阿斗",money=50 where name="刘禅";
9. 删除id大于5的数据   delete from hero where id>5;
10. 修改所有英雄的价格为13888    update hero set money=13888;
11. 修改表名为heros     rename table hero to heros;       
12. 删除money字段  alter table heros drop money;
13. 删除所有数据   delete from heros;
14. 删除表   drop table heros;         15. 删除数据库  drop database mydb3;

数据库数据类型

  • 整数: int(m) 和bigint(m) , m代表显示长度, m=10 18 0000000018 , 需要和zerofill关键字结合使用

    create table t1 (id int,age int(10) zerofill);

    insert into t1 values(1,18);

    select * from t1;

  • 浮点数: double(m,d) m代表总长度, d代表小数长度 54.234 m=5 d=3 , decimal(m,d)是超高精度浮点数, 只有涉及到超高精度运算时使用

  • 字符串:

    • char(m): 固定长度字符串, m=10 存abc 长度占10, 执行效率高于可变长度, 最大长度为255
    • varchar(m): 可变长度字符串,m=10 存abc 长度占3, 节省空间, 最大长度65535 建议保存255以内长度的数据
    • text(m):可变长度字符串 最大长度也是65535 建议保存长度大于255的数据
  • 日期

    • date: 只能保存年月日

    • time: 只能保存时分秒

    • datetime: 年月日时分秒 , 默认值是null, 最大值9999-12-31

    • timestamp: 时间戳 年月日时分秒, 默认值为当前系统时间,最大值2038-1-19

    • 测试日期类型:

      create table t_date(t1 date,t2 time,t3 datetime,t4 timestamp);

      insert into t_date values(“2020-10-10”,null,null,null);

      insert into t_date values(null,“17:12:11”,“2018-11-12 11:11:11”,null);

执行SQL语句三方工具 SQLYog

项目选题为 内容展示性质的网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值