数据库的概念:

数据库就是储存数据的仓库,其本质就是一个文件系统,按照特定的格式将数据储存起来,用户可以对数据库中的数据进行操作,增加,删除,修改及查询操作。

数据库管理系统:

指一种操作和管理数据库的软件,用户通过数据库管理工具操作数据库中的数据,以保证数据的安全性和完整性。

数据库的特点:

1、持久化储存数据
2、方便储存和管理数据
储存数据具有一定的格式
把行列当作表格就可以了
3、使用了统一的方式操作数据库
使用图形化界面的形式查看数据
使用sql语言进行查看或管理数据

常用的数据库:

关系型数据库:

MySQL 开源免费的数据库,小型数据库,被Oracle收购,6.x版本开始收费
Oracle 收费的大型数据库,Oracle公司产品
DB2 IMB公司的,收费的,常应用在银行系统中
SQL Server MincroSoft公司收费的中型数据库,C#,.net语言常用
SQLite 嵌入式的小型数据库,应用于手机端:Android
OceanBase 阿里的大型数据可,性能已经超过Oracle全球第一【国产】

非关系型数据库:

MongoDB 最流行的文档型数据库
Readis 基于内存的键值对性数据库,通过Key-Value键值对的方式来储存数据

MySQL的安装:

1、安装路径不能有中文和特殊符号
2、端口号默认为3306,不要改
3、字符集的编码必须是utf8
4、将bin目录添加到path环境中

MySQL的卸载:

mysqlid - remove

MySQL服务启动:

1、cmd ===》 services.msc打开服务的窗口 ===》 MySQL服务启动
2、使用管理员打开cmd ===》 net start mysql

MySQL服务关闭:

1、cmd ===》 services.msc打开服务的窗口 ===》 MySQL服务关闭
2、使用管理员打开cmd ===》 net stop mysql

MySQL登录:

本地登录:mysql -u用户名 -p密码
指定ip登录:mysql -h主机地址 -u用户名 -p密码

MySQL退出:

1、exit
2、quit

SQL概述:

什么是SQL:

1、结构化的查询语言,对数据库操作的一种语言
2、一套标准,所有的数据库厂商都实现了此标准,但各自厂商都有自己特定的语句,这部分被称之为“方言”

SQL通用语法:

1、SQL语句可以单行或多行书写,分号结尾
2、可以使用空格和缩进增强语句的可读性
3、mysql数据库的sql语句不区分大小写(win系统),关键字建议大写
库名,表名,字段名,别名 建议小写
4、三中注释
1、单行:— 或 #(mysql特有)
2、多行:/ /

SQL语句分类:

DDL:数据定义语言 ===》 数据库或表的操作
定义数据库对象:数据库,表,列等(关键字:create,drop,alter)
DML:数据库操作语言 ===》 数据库中的表的操作
对数据库中表的数据进行增删改查(关键字:insert,delete,update)
DQL:数据库查询语言 ===》 查询操作
用来查询数据库中表的记录(数据)(关键字:select,where)
DCL:一般接触不到
用来定义数据库的访问权限和安全级别,及创建用户(关键字:GRANT,REVOKE)
TCL:一般接触不到
用于控制数据可的事务操作(关键字:commit,savepoint,rollback)

DDL操作:

  1. DDL库操作
  2. -- 创建数据库:
  3. create database 数据库名称;
  4. -- 创建数据库并指定字符集:
  5. create database 数据名称 character set 字符集名;
  6. -- 查询所有的数据库的名称:
  7. show database
  8. -- 查询某一个数据库的字符集
  9. show create database 数据库名称;
  10. -- 修改数据库的字符集:
  11. alter database 数据库名称 character set 字符集名称;
  12. -- 删除数据库:
  13. drop database 数据库名称:
  14. -- 查询当前正在使用的数据库名称:
  15. select database();
  16. --使用数据库:
  17. use 数据库名称;
  18. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  19. DDL表操作
  20. -- 创建表
  21. create table 表名(
  22. 列名(字段名) 数据类型,
  23. 列名(字段名) 数据类型,
  24. 列名(字段名) 数据类型
  25. ...
  26. );
  27. -- 查询表
  28. show tables; 查询所有表名称
  29. desc 表名; 查询表结构
  30. -- 修改表(几乎不用)
  31. alter table 表名 add 列名 数据类型; 添加一列
  32. alter table 表名 modify 列名 新类型; 修改列类型
  33. alter table 表名 change 旧列名 新列名 新类; 修改列名和类型
  34. alter table 表名 drop 列名; 删除指定列
  35. alter table 表名 charset 字符集; 修改表字符集
  36. rname table 旧表名 to 新表名; 修改表名
  37. -- 删除表
  38. drop table 表名;

DML操作:

添加数据:
insert into 表名(列1,列2,列3。。。列n)values(值1,值2,值3。。。值n);
删除数据:
delete from 表名[where 条件];不推荐(一个一个的删除数据,效率低)
TRUNCATE TABLE 表名 ; 推荐使用(删除表,创建一张一摸一样的表效率)
修改数据:
update 表名 set 列名1 = 值1 ,列名2=值2,。。。[where 条件] ;

DQL语句:

完整的语法:

  1. select
  2. 字段列表
  3. from
  4. 表名列表
  5. where
  6. 条件列表
  7. group by
  8. 分组字段
  9. having
  10. 分组之后的条件
  11. order by
  12. 排序
  13. limit
  14. 分页限定
  15. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  16. -- 创建数据库lianxi
  17. CREATE DATABASE lianxi;
  18. -- 创建表
  19. CREATE TABLE stu(
  20. id INT,
  21. NAME VARCHAR(20),
  22. chinese DOUBLE,
  23. english DOUBLE,
  24. math DOUBLE
  25. );
  26. -- 插入记录
  27. INSERT INTO stu(id,NAME,chinese,english,math) VALUES(1,'tom',89,78,90);
  28. INSERT INTO stu(id,NAME,chinese,english,math) VALUES(2,'jack',67,98,56);
  29. INSERT INTO stu(id,NAME,chinese,english,math) VALUES(3,'jerry',87,78,77);
  30. INSERT INTO stu(id,NAME,chinese,english,math) VALUES(4,'lucy',88,NULL,90);
  31. INSERT INTO stu(id,NAME,chinese,english,math) VALUES(5,'james',82,84,77);
  32. INSERT INTO stu(id,NAME,chinese,english,math) VALUES(6,'jack',55,85,45);
  33. INSERT INTO stu(id,NAME,chinese,english,math) VALUES(7,'tom',89,65,30);
  34. -- 查询所有记录
  35. SELECT * FROM stu;
  36. -- 查询指定字段记录
  37. SELECT id,`name` FROM stu;
  38. -- 查询指定字段 且去重(所有字段全都一样)
  39. SELECT DISTINCT `name`,chinese FROM stu;
  40. -- 起别名
  41. SELECT id AS '学号',`name` AS '姓名' FROM stu;
  42. -- 指定取值范围
  43. SELECT `name` AS '姓名' , chinese FROM stu WHERE chinese BETWEEN 55 AND 82 ;

运算符:

运算符 说明
> 、< 、<= 、>= 、= 、<> != <>在 SQL 中表示不等于,在 mysql 中也可以使用!= 没有==
BETWEEN…AND 在一个范围之内
IN( 集合) 集合表示多个值,使用逗号分隔
IS NULL 不为空 is not null 查询某一列为 NULL 的值,注:不能写=NULL
LIKE 模糊查询 占位符: _:单个任意字符 %:多个任意字符
AND 或 && 与,SQL 中建议使用前者,后者并不通用。
OR 或 ||
NOT 或 !

图形化工具:

sqlyog 工具
Navicat 工具
步骤:
1、创建库,字符集
2、创建表,表结构
3、添加数据,修改数据,查询数据,删除数据
4、删除表
5、删除库

  1. 数据库类型:
  2. 1. int:整数类型
  3. * age int,
  4. 2. double:小数类型
  5. decimal: 精确度的一种数据类型
  6. * score double(5,2) 189.99
  7. 3. date:日期,只包含年月日,yyyy-MM-dd
  8. 4. datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss ,默认为null
  9. 5. timestamp:时间戳类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss
  10. * 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
  11. char: 一般不用.不可变的
  12. char(20) : 你好 我好
  13. 6. varchar:字符串
  14. * name varchar(20):姓名最大20个字符
  15. * zhangsan 8个字符 张三 2个字符