MySQL基础入门

  • Post author:
  • Post category:mysql

数据库的简单介绍:

       若将数据保存在内存中,数据不能持久化保存,断电/程序退出,数据就会清除;若将数据保存在普通文件中,可以对数据进行持久化保存,但是查找、增加、修改、删除数还是比较麻烦,效率过低;所以需要既可以保存数据,又方便操作数据的地方

       数据库就是指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或者应用共享的数据集合,还是以文件的方式存在服务器的电脑上的

        通俗的讲:数据库就是一个对数据可以持久化保存并且方便操作数据的地方

 

常见的关系型数据库:

       MySQL:开源免费的关系数据库,中小型数据库,本文主要讲解mysql的使用

       Oracle:是对象关系数据库,是收费的

 

SQL概述:

      SQL是被美国国家标准局确定为关系型数据库语言的美国标准,是过数据库厂商都支持的SQL标准,我们可以通过sql语句来操作数据库(操作数据库,操作表,操作数据)

 

操作数据库:

在电脑上安装musql数据库之后可以在命令行操作数据库,但是一般都使用可视化工具去操作数据库,经常使用的免费可视化工具有DBeaverNavicat(可通过破解免费使用)

       要想操作数据库,必须创建数据库

 

       创建数据库语法:

        create  database 数据库名[ character set 字符集][ collate 较堆规则]

        注:[ ]表示可选

 

       查看数据库语法:

       查看所有数据库:show databases;

       查看数据库结构:show create database 数据库名;

 

       删除数据库:drop database 数据库名;

 

       修改数据库:alter database 数据库名 character  set  字符集 ;

       注意:不能修改数据库名

 

       其他操作

       切换数据:use  数据库名;

       查看正在使用的数据库:select database();

 

操作数据库中的表:

操作数据主要是操作数据库中的表,数据库中的数据主要存储于数据库的表中,一个数据库中可以存在多个表,一个表中可以存在多条数据,操作数据库就是对数据库的表中的数据进行操作

       创建表语法:

        create  table 表名(

       字段名  字段类型  [约束],

       字段名  字段类型  [约束],

       ……

       字段名  字段类型  [约束]

        );

 

字段名:即创建表的列的名字(此处的id、以及code等等都是字段名)

 

字段类型:就是该字段的类型

       根据该字段所需要的数据类型而定,经常使用的有

       int,bigint,float,double,varchar(size),date,datetime

       若该字段是表的主键,需要在字段后面加primary  key  auto_increment

 

约束:

-- 字段类型有:int,bigint,float,double,varchar(size),date,datetime
-- 字段约束:not null,unique,primary key auto_increment

-- 练习:创建一张学生表(含id字段,姓名字段,性别字段,id为主键自动增长)

create table student (
id int primary key auto_increment,
name varchar(40) not null,
sex varchar(20)
);

查看表:

查看所有的表:show tables;

查看表的定义结构:desc  表名;

 

修改表:

增加一列:alter table 表名 add 字段  类型  约束;

修改列的类型约束:alter table 表名 modify  字段  类型  约束;

修改列的名称,类型,约束:alter table 表名 change 旧列名 新列名  类型 约定;

删除一列:alter  table 表名  drop  列名;

修改表名:rename table 旧表名 to  新表名;

 

删除表:

drop table 表名;

 

操作表记录-增删改(重点)

往表中插入数据:

插入指定列:insert into 表(列,列…)values(值,值…);

插入所有列:insert into 表 values(值,值…);

— – 插入特定的列:没有赋值的列,系统自动赋为null(前提是当前列没有设置not null 约束)

— – 字段名与值的类型、个数、顺序要一一对应。

— – 值不要超出列定义的长度。 — – 插入的日期和字符串,使用引号括起来。

— – 默认所有列插入,values里面必须给表中每一个字段赋值,一般主键给一个null

-- 准备一张商品表(商品id,商品名称,商品价格)

create table product(
pid int primary key auto_increment,
name varchar(40),
price double
);

-- 往表中插入数据
-- 此处演示一些添加的方法一些以及注意事项,使用代码说明,注意自己体会

insert into product(name,price)values("mac",6666.6);
insert into product values(null,'小米',2999.0);
insert into product (name)value('华为');
insert into product values(null,'oppo',3000);

 

更新表中数据:

语法:update  表名  set  列名 = 值,列名 = 值 ,…  [where  条件];

-- 将上面我们添加到表中的数据进行修改

-- 将所有商品的价格修改为5000
update product set price = 5000;

-- 将商品为mac的价格修改为10000
update product set price = 10000 where name = 'mac';

-- 将商品是小米的商品的价格在原有的基础上增加5
update product set price = price + 5 where name = '小米';

 

删除表中的记录:

删除表中所有记录,也可以指定记录删除:delete from 表 [ where 条件];

删除表中所有数据:truncate table 表;

-- 删除记录

-- 删除表中商品名为小米的商品
delete from  product where name = '小米';

-- 删除表中价格高于5000的商品
delete from product where price > 5000;

-- 删除表,然后创建一个和之前结构一样的空表
truncate table product;

delete 和 truncate 区别:

delete删除表中的数据,表的结构还在,删除的记录可以找回

truncate删除是把表直接drop掉,然后创建一个同样的新表,删除记录不可找回

 

查询记录:

查询所有的列:select * from 表名;

查询某张特定的表:select 列名 ,列名 ,… from 表名;

去重查询:select distinct 列名 from 表名;

别名查询:select 列名 as 别名 from 表名 as 别名 ;(注意:as可以省略)

基本条件查询:select  ……  from 表名 where 条件;

        条件查询中使用到的运算符及关键字

        比较运算符:>  <  >=  <=  =

        between … and…

        like:用于模糊查询,一般和% 结合使用

        逻辑运算符:and  or  not 

-- 查询表中的数据(重点)

-- 查询所有的列:select * from 表名;
select * from product;

-- 查询某张特定的表:select 列名 ,列名 ,... from 表名;
select pid , name , price from product;

-- 去重查询:select distinct 列名 from 表名;
select distinct price from product;

-- 别名查询:select 列名 as 别名 from 表名 as 别名 ;(注意:as可以省略)
select name as n from product;
select name from product as p;
select name n from product p;

-- 基本条件查询:select  ......  from 表名 where 条件;
select * from product where price < 10000;
select * from product where price between 0 and 6000;
select * from product where name like '%华%';
select * from product where price like '5%';
select * from product where name like '%华%' and price > 2000; 
select * from product where name like '%小%' or price > 5000; 

 

排序查询:

语法:

select … from 表名 [where 条件] order by 字段名 [ asc|desc],字段名[ asc | desc]…;

注意:asc升序,desc:降序,不指定的情况下为升序

 

聚合函数:

语法:select 聚合函数(列名) from 表名 [where 条件];

 

分页查询:

select …… from 表名 limit a,b;

a:从哪里开始查询;b:查询的数量

 

 

 

 

 

 


版权声明:本文为weixin_44485253原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。