学习数据库,首先需要了解数据库,俗话说的好:“大数据时代,掌握数据者得天下。”
现在任何一款软件都离不开数据,也离不开数据库。 以我的理解,数据库是一种用来存储数据的容器,为各种软件提供数据的交互。
*注:由于在Liunx中操作数据库,所以需要了解以下两个命令:
Linux中启动mysql数据库的命令:service mysqld start
Linux中登录mysql数据库的命令: mysql -u root -p (在空格后输入root以及密码)
现在说说数据库的基本命令:
在说命令之前先了解sqlyog的运行机制,当扣选一条命令时,有三种选择运行方式,第一种是直接按F9,第二种是鼠标单机编辑下的蓝色播放按钮,第三种则是鼠标右键执行查询(因为我以前使用Navicat较多,所以经常用这种方式,其实这种方式在yog中最不简洁方便)
yog会自动搜索光标位置,往光标前检索第一个分号,从光标后检索第二个分号,并判定以此这是一句完整命令。
数据库操作
创建数据库:CREATE DATABASE 数据库名; (character set 字符集 :指定数据库采用的字符集)
删除数据库:DROP DATABASE 数据库名;
修改数据库:alter database 数据库名 character set 字符集; #修改当前数据库的字符编码
显示所有数据库:show databases;
使用数据库:use 数据库名;
数据表操作:
查看当前数据库所有表:show tables;
显示数据表的创建语句:show create table 表名;
创建数据表:create table 表名(列1 数据类型(长度),列2 数据类型(长度),....) #如果第一个为ID,想添加为主键,就使用:PRIMARY KEY AUTO_INCREMENT ##:PRIMARY KEY主键 AUTO_INCREMENT自动增长
删除数据表:drop table 数据表名 where 条件;
修改数据表:alter table 表名 add (column1 datatype,column2 datatype); --新增字段 [column1:字段名;datatype:字段类型以及长度]
alter table 表名 modify column datatype; --修改字段类型及长度,注释如上
alter table 表名 change 列名 新列名 datatype; --修改字段名
alter table 表名 drop 列名; --删除字段 (修改表名还有中方法:Rename table 表名 to 新表名)
数据的操作:
新增数据:insert into 表名 values (值1,值2,...); (每一句命令后以英文的;结尾)
删除数据:delete from 表名 where 条件;
查询数据:select 内容 from 表名 where 条件;
这里有一个完整的查询语句模板:
select 列1,列2 from 表名 where 条件1 and(or) 条件2 group by 列1,列2,... having 条件1 and(or) 条件2 ... order by 列1 asc(desc),列2 asc(desc) limit;
对上面的例子进行翻译:select 查询, from 从 , where 用什么条件(以我的理解) ,and(or) 和(或) , group by 分组, having:也是用什么条件,但是是通过查询才能得到的数据用这个,order by 排序, asc(desc)排序(升序) limit:作用是取结果集中的部分数据。
合起来就是从(某个表)中查询某一列(或多列),通过列一(或多列)分组,使用条件一(和/或 多条件),附加条件(和/或 多条件) 最后通过列一(或者多列)(以升序或降序)排序,并且取部分数据。
数据函数:
year(time); 提取time年份
month();月份
week();周次
例如:datediff(now(),time)>365
timestampdiff(year.time,now())>0
大于一年时间
datediff(now(),time) timestampdiff(year,time,now())
时间差 now()现在时间 time数据时间 year:以年来算
max()最大值 min()最小值 avg(列,2)平均数(保留两位小数位)count()统计数据
## 一点遗漏的小内容:
==== 模糊查询:like '%值%' == ==
% :代表任意为字符 - 代表一位任意字符
distinct 去除重复值
例如:
select distinct dep round(avg(salary),2) form emp group by dep;
将emp表中的所有dep(组)的平均salary求出
#######################################################################################################################################################################
总结
笔记一中全是数据库最基础的命令,也就是单表操作的命令。较为简单以及基础,需好好掌握。