1.什么是数据库?
通其意,数据库数据的集合,但是,在计算机编程之中,数据库的定义和生活中有一定的区别。计算机中的数据库是“按照数据结构来组织、存储和管理数据的仓库”
1.数据库中的数据它都是有一定规律结构,相同类型的数据放在一起,不同类型的数据之间相互隔离
每个数据库中储存着许多的表,每一个表里面的数据的结构它都是一样的,这非常类似我们常用的Excel表格,但是数据库的本质就是文件系统
2.什么是MySQL?
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
关系数据库它是将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。由于MySQL是开放源码软件,对于一般的个人使用者和中小型企业来说,MySQL提供的功能绰绰有余,可以大大降低开发成本。
- SQL
SQL全称Structured Query Language,简称SQL,中文叫结构化查询语言。
- SQL语句分类
数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等
数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等
数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户;关键字:grant等
数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等
- 关于SQL语句的使用
1.针对库操作
1.1.创建数据库:create database 数据库名;
1.2.查看数据库:show create database 数据库名;
2.针对表操作
2.1查看表:
查看数据库中的所有表:show tables;
查看表结构:desc 表名;
2.2删除表:
drop table 表名;
2.3修改表
alter table 表名 add 列名 类型(长度) 约束; --修改表添加列.
alter table 表名 modify 列名 类型(长度) 约束; --修改表修改列的类型长度及约束.
alter table 表名 change 旧列名 新列名 类型(长度) 约束; --修改表修改列名.
alter table 表名 drop 列名; --修改表删除列.
rename table 表名 to 新表名; --修改表名
alter table 表名 character set 字符集; --修改表的字符集
2.4新增表数据
insert into 表 (列名1,列名2,列名3..) values (值1,值2,值3..); -- 向表中插入某些列
insert into 表 values (值1,值2,值3..); --向表中插入所有列
insert into 表 (列名1,列名2,列名3..) values select (列名1,列名2,列名3..) from 表
insert into 表 values select * from 表
2.5修改表数据
update 表名 set 字段名=值,字段名=值;
update 表名 set 字段名=值,字段名=值 where 条件;
2.6删除表数据
delete from 表名 [where 条件];(删除表数据)
- cmd乱码
修改my.ini文件,然后重启mysql服务器即可
- SQL执行顺序
示例:SELECT * FROM user LEFT JOIN order ON user.id = order.uid WHERE order.price > 1000 GROUP BY user.name HAVING count(1) > 5 ORDER BY user.name LIMIT 0,10
1. FROM(将最近的两张表,进行笛卡尔积)---VT1
2.ON(将VT1按照它的条件进行过滤)---VT2
3. LEFT JOIN(保留左表的记录)---VT3
4. WHERE(过滤VT3中的记录)--VT4…VTn
5. GROUP BY(对VT4的记录进行分组)---VT5
6. HAVING(对VT5中的记录进行过滤)---VT6
7. SELECT(对VT6中的记录,选取指定的列)--VT7
8.ORDER BY(对VT7的记录进行排序)--游标
9. LIMIT(对排序之后的值进行分页)
在我们写带有WHERE条件的SQL语句时,优先级高的部分要去编写过滤力度最大的条件语句。
- 表与表之间存在的关系
一对一关系 (例如:一个身份证只对应这一个人)
一对多关系(例如:一个年级中有多名学生)
多对多关系(同一个商品对应多个订单,一个订单对应多个商品)