mysql01

2018-10-03  本文已影响0人  Deque

数据库

io流文件存储数据的弊端

  1. 存储效率低
  2. 不管存还取操作比较麻烦
  3. 一般只能保存小量字符串数据

DB

DBMS

数据库的分类

分为两类:

  1. 关系型数据库: 经过数学理论验证 可以保存现实生活中的各种关系数据, 数据库中存储数据以表为单位。
  2. 非关系型数据库:通常用来解决某些特定的需求如:数据缓存,高并发访问。 存储数据的形式有多种,举例:Redis数据库:通过键值对的形式存储数据。

主流关系型数据库介绍

  1. MySQL: 08年被sun公司收购 09年sun被oracle收购,开源免费,到oracle发布了5.0版本(使用了oracle核心技术 性能提高30%),因为Oracle数据库地位受到威胁,计划把mysql闭源,原mysql作者们不干了,原程序员出去单干 发布了MariaDB数据库 名字是因为作者女儿叫Maria ,市场排名第一
  2. Oracle: 闭源, 最贵 性能最高 拉里埃里森32 市场排名第二
  3. SQLServer:微软公司的产品 市场排名第三,主要应用在.net(C#)开发的网站中
  4. DB2: IBM公司 有做网站的完整解决方案(操作系统,we服务器(如tomcat),数据库等)主要应用在银行等国有大型企业中
  5. sqlite:轻量级数据库 只有几十k,一般应用在嵌入式和移动设备中

开源和闭源的区别

  1. 开源: 开发源代码,盈利方式靠卖服务(赚钱慢,少),用户群大,大牛程序员会无偿帮着升级维护
  2. 闭源:不开放源代码,盈利方式卖产品+服务(赚钱快,多),大牛们各种攻击找漏洞

数据库的安装

SQL

Structured Query Language:结构化 查询 语言

打开数据库客户端 并登陆

数据库相关的SQL

  1. 查看所有数据库

     show databases;
    
  2. 创建数据库
    -格式:create database 数据库名称;

     create database db1;
    
  3. 查看数据库详情
    -格式: show create database 数据库名;

     show create database db1;
    
  4. 创建数据库指定字符集 utf8或gbk

     create database db2 character set utf8;
    
     create database db2 character set gbk;
    
  5. 删除数据库

     drop database db2;
    

练习:把刚才自己创建的都删除

然后再创建db1,db2 字符集为gbk,db3, 然后查看db2是否成功,然后把db2 和db3删除 
  1. 使用数据库

    use db1;

和表相关的SQL

  1. 创建表
    -格式: create table 表名 (字段1名 字段1类型,字段2名 字段2类型);

    create table person(name varchar(10),
    age int);


    01.png

回顾:

  1. 查看所有数据库
    show databases;
  2. 创建数据库
    create database db1;
  3. 查看数据库详情
    show create database db1;
  4. 创建数据库指定字符集
    create database db2 character set gbk/utf8;
  5. 删除数据库
    drop database db1;
  6. 使用数据库
    use db1;
  7. 创建表
    create table t1(name varchar(10),age int);

和表相关的SQL

查询所有表

    show tables;

查看单个表属性

show create table person;

表的引擎

  1. Myisam: 只支持数据基础的增删改查,不支持高级操作,如:事务、外键等
  2. InnoDB:支持高级操作,默认为InnoDB。

创建表并且指定引擎和字符集

create table t1(id int,name varchar(10)) engine=myisam charset=gbk;
-查询:
show create table t1;

查看表字段信息

desc student;

练习: 创建 5个数据库 每个里面创建一张表 ,第三个数据库字符集为gbk 里面的表引擎为myisam 创建完后 全部删除数据库

对创建好的表进行修改

修改表名

    rename table 原名 to 新名;

    rename table student to t_stu;

    create table hero(name varchar(10));

修改表属性 引擎和字符集

    alter table hero engine=myisam charset=gbk;

添加表字段

删除表字段

    alter table hero drop money;

修改表字段名和类型

    alter table hero change 原字段名 新字段名 类型;
    alter table hero change name heroname varchar(10);

修改表字段类型和位置

    alter table hero modify age int first;
    alter table hero modify age int after xxx;

删除表

    drop table hero;

练习:

  1. 创建员工表(emp) 字段有 id和name
    create table emp(id int,name varchar(10));
  2. 修改emp表的引擎为myisam 字符集为gbk
    alter table emp engine=myisam charset=gbk;
  3. 修改表名为 t_emp
    rename table emp to t_emp;
  4. 给t_emp添加age字段在id的后面
    alter table t_emp add age int after id;
  5. 给t_emp添加工资sal字段在最后
    alter table t_emp add sal int;
  6. 修改sal字段名称为salary
    alter table t_emp change sal salary int;
  7. 修改age字段到salary字段的后面
    alter table t_emp modify age int after salary;
  8. 删除salary字段
    alter table t_emp drop salary;
  9. 删除 t_emp表
    drop table t_emp;

数据相关的SQL

插入数据

-指定字段插入

    insert into student (id,name) values (2,'张飞');

-练习: 插入刘备 id为3 语数外成绩 78 22 18
insert into student values(3,'刘备',78,22,18);
插入关羽 id为4 语文90
insert into student (id,name,chinese) values (4,'关羽',90);
插入孙悟空 id为5 英语18
insert into student (id,name,english) values (5,'孙悟空',18);

批量插入

    insert into student values(6,'唐僧',56,57,58),(7,'八戒',88,89,99);

    insert into student (id,name) values
    (8,'吕布'),(9,'貂蝉'),(10,'孙尚香');

查询

-查询全部数据的全部字段信息

    select * from student;

-查询指定字段

    select id,name from student;

-条件查询

    select * from student where id<5;

修改数据

    update student set math=100; 
     
    update student set english=30 where id=7;

删除数据

    delete from student where id=7;
    
    delete from student;

练习

  1. 创建t_emp表 有 id 名字name 工资sal 如果之前存在t_emp先删除
    create table t_emp(id int,name varchar(10),sal int);
  2. 插入以下五条数据
    insert into t_emp values(1,'诸葛亮',3000),(2,'司马懿',4000),(3,'李白',8000),(4,'元芳',6000),(5,'狄仁杰',8000);
  3. 修改工资8000的为7888
    update t_emp set sal=7888 where sal=8000;
  4. 修改元芳的名字为李元芳
    update t_emp set name='李元芳' where id=4;
  5. 删除工资低于5000的
    delete from t_emp where sal<5000;
  6. 删除所有数据
    delete from t_emp;

编码问题

课程回顾

数据库相关sql

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

表相关sql

  1. 创建表
    create table t1(id int,name varchar(10));
  2. 查询所有表
    show tables;
  3. 查看属性
    show create table t1;
  4. 创建表指定引擎和字符集
    create table t1(id int,name varchar(10))engine=myisam/innodb charset=gbk;
  5. 查看表字段信息
    desc t1;
  6. 修改表
  1. 删除表
    drop table t1;

数据相关sql

  1. 插入数据
    insert into t1 values(值1,值2,值3);
    insert into t1 (字段1名,字段2名)values(值1,值2);
    insert into t1 values(值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
    insert into t1 (字段1名,字段2名)values(值1,值2),(值1,值2),(值1,值2);
  1. 查询数据
    select * from t1;
    select name,age from t1;
    select * from t1 where age<20;
  1. 修改数据
    update t1 set age=18,sal=3000 where id=3;
  1. 删除
    delete from t1 where id=3;
上一篇下一篇

猜你喜欢

热点阅读