(1)存储数据的仓库
(2)本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。
(3)所有的关系型数据库都可以使用通用的SQL语句进行管理 DBMS DataBase Management System
啊啊啊,弄了好久
安装失败的几个原因:
1、说明:你们的PC名字不要使用中文,如果使用中文可能会导致软件安装包报错。
https://www.cnblogs.com/diaoye/p/9665392.html
MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录
quit或者exit
数据库管理程序(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体User的数据。
数据库管理系统、数据库和表的关系如图所示:
1)一个数据库服务器包含多个库
2)一个数据库包含多张表
3)一张表包含多条记录
Structured Query Language 结构化查询语言
1)是一种所有关系型数据库的查询规范,不同的数据库都支持。
2)通用的数据库操作语言,可以用在不同的数据库中。
3)不同的数据库SQL语句有一些区别
1)Data Definition Language (DDL数据定义语言) 如:建库,建表
2)Data Manipulation Language(DML数据操纵语言),如:对表中的记录操作增删改
3)Data Query Language(DQL 数据查询语言),如:对表中的查询操作
4)Data Control Language(DCL 数据控制语言),如:对用户权限的设置
1)每条语句以分号结尾,如果在SQLyog中不是必须加的。
2)SQL中不区分大小写,关键字中认为大写和小写是一样的
3)3种注释:
创建数据库
CREATE DATABASE 数据库名;
判断数据库是否存在,不存在则创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;
创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
-- 查看所有的数据库
show databases;
-- 查看单个数据库的创建信息
show create database dbName;
查看某个数据库中的所有表
SHOW TABLES;
查看表结构
DESC 表名;
查看创建表的SQL语句
SHOW CREATE TABLE 表名;
mysql> use db0323
Database changed
mysql> show tables
desc user3;
show create table user3;
-- 创建一个s1的表与student结构相同
create table like_user3 like user3;
desc user3;
-- 直接删除表s1表
drop table s1;
-- 判断表是否存在并删除s1表
drop table if exists `create`;
添加表列ADD
alter table user3 add age INT;
修改列类型modify
-- 将student表中的remark字段改成varchar(100)
ALTER TABLE student MODIFY remark VARCHAR ( 100 )
修改列名 change
-- 将user3表中的age字段名改成money,类型int
alter table user3 change age money INT
删除列 DROP
-- 删除user3表中的字段money
alter table user3 drop money;
修改表名rename
-- 将学生表user3改名成user4
rename table user3 to user4;
修改字符集character set
-- 将user3表的编码修改成gbk
alter table user3 character set gbk;
增加全部字段
-- 插入所有的列,向学生表中
insert into user3 (username,password1 )values ('韩信',999);
insert into user3 values (2,'李白',123456);
注:没有添加数据的字段会使用NULL
增加部分数据
insert into user3 (username)values ('镜');
-- 修改
update user3 set password1 = 10002;
update user3 set password1 = 10001 where username = '镜';
-- 删除数据
delete from user3; -- 危险
-- 可不可以条件删除呢? 按照条件去匹配,删除符合我们条件的行
delete from user3 where username = '张三';
delete from user3 where id = 1;
delete from user3 where id > 2;
where、and、or
-- 查询单列、查询多列
select * from t_students;
-- 1. 查询语数外总成绩大于 180 的同学信息;
select * from t_students where chinese + english + math > 180;
-- 2. 查询数学成绩在[80,90]区间的同学姓名;
select * from t_students where math >= 80 and math <= 90;
-- 3. 查询各科都及格的同学姓名;
select name from t_students where chinese >= 60 and english >= 60 and math >= 60;
-- 4. 查询一班和二班的同学信息;
select * from t_students where class = '一班' or class = '二班';
之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,
然后返回一个结果值。聚合函数会忽略空值NULL
SELECT 聚合函数(列名) FROM 表名;
-- 查询学生总数
select count(id) as 总人数 from student;
select count(*) as 总人数 from student;
GROUP BY 合并后只有1个
GROUP CONCAT 合并后依然多个
结合聚合函数一起使用
select class from t_stutdents group by class;
select class,group_concat(name) from t_stutdents group by class;
select class,count(class),avg(chinese),sum(chinese) from t_stutdents group by class;