第一天MySQL
mysql学习笔记
2020/5/4
一、 数据库的相关概念
- 数据库的好处
1.1 能够永久性的保存数据,实现数据持久化
1.2 可以实现结构化查询,方便管理
2.数据库相关概念
2.1数据库(db->database):存储一组有组织的数据的容器
2.2 数据库管理系统(dbms->database management system):又称数据库软件或数据库产品,用于管理数据库中的数据
2.3 结构化查询语言(structured query language):用于和dbms进行通信的语言(sql语言不是某个数据库软件特有,而是几乎所有数据库软件都通用的语言)
二、 一些数据库软件
- mysql(08年被sun公司收购,09年sun公司被oracle公司收购)
- oracle
- db2
- sqlserver
三、 数据库的特点
- 将数据放到表内,表再放在库中(如security库)
- 一个数据库可以有多个表,每个表都有一个名字,用来标识自己(如security中的users)
- 表具有一些特性,这些特性定义了数据在表中如何存储,类似以c++中“类”的设计(如为储存学生数据的表)
- 表由列组成,也称为字段。所有表都是由一个或多个列组成的,每一列类似于c++中的“属性”(如security库中的user表中的username、password、id等字段)
- 表中的数据是按行存储的,每一行类似于c++中的”对象”
四、 mysql产品特点
优点:
- 成本低->开放源代码
- 性能高:执行很快
- 简单:容易安装和使用
五、 dbms
两大类:
- 基于共享文件系统的dbms(如微软的access,但只能用于windows操作系统中)
- 基于客户机-服务器(c/s)的dbms(mysql、oracle、sqlserver)
(一般来说安装数据库,是安装数据库的服务端)
六、 mysql-配置文件
- bin目录,二进制文件
- my.ini->一个配置文件,可以查看和修改当前mysql服务端和客户端的配置(如端口号、使用的字符集等)
七、 mysql服务的启动和停止
- 手动在电脑服务中开启或停止
- 在dos命令行中使用命令(在管理员模式下启动)
2.1 启动->net start 服务名(服务名可以在自己电脑计算机管理中的服务处查看)
2.2 关闭->net stop 服务名
八、 mysql服务端的登入和退出
- mysql自带的客户端(只限于root用户)
- 通过windows自带的客户端
登录:mysql [-h(主机名) -p(端口号)] -u(用户名) -p(密码)
退出:exit或ctrl+c
九、 mysql常见命令
- 查看当前的所有数据库
show database;(sql语句中以;或\g来表示一个语句的结束)
2. 打开指定的库
use 库名;
3. 查看当前库的所有表
select tables;
4. 查看其它库的所有表
select tables from 库名;
5. 创建表
create table 表名(
列名 列类型,
列名 列类型,
…
);
6. 查看表结构
desc 表名;
7. 查看服务器版本
7.1 登录到mysql服务器
show version();
7.2 没有登录到mysql服务器
mysql –version
或
mysql –v
8. 创建一个数据库
create database 库名;
9. 查看当前打开的数据库
select database();
十、 mysql语法规范
- 不区分大小写,但建议关键字大写,表名,列名小写
- 每条命令最好用‘;’结尾
- 每条命令根据需要,可以进行缩进或换行
- 注释
4.1单行注释:#
4.2单行注释:-- 注释文字(注意,后面有个空格)
4.3 多行注释:/* 注释文字 */
十一、 sql语言
- dql语言(data query language)数据查询语言
1.1 基础查询
1.1.1 语法:select 查询列表(查询的东西可以有多个)from 表名;(select->选择、过滤、查看)
1.1.2 查询列表可以是:(注意,查询的结果是一个虚拟的表格,没有真实的保存)
(1) 表中的字段
表中的单个字段:
select 字段名 from 表名;
select last_name from employee;
表中的多个字段:
select 字段名,字段名,…,字段名 from 表名;(查询字段名的类型、个数、顺序可以自己定义,灵活)
表中的全部字段:
- select * from 表名;(*表示所有字段,但字段的顺序是固定的,不够灵活)
- select 字段名,字段名,…,字段名(列出所有字段) from 表名;
(着重号:用于把字段名与关键字区分,代表这是一个字段名,也可以不用)
(2) 常量值
select 常量值;
select 100;
select 'john';
(3) 表达式
select 表达式;
select 100*98;
(4) 函数
select 函数名;
select version();
1.1.3 给字段取别名
优点:1.便于理解 2.如果要查寻的字段有重名的情况,使用别名可以区分开来
方式一:as方式
select 字段名 as 别名;
select 100*98 as result;
select last_name as 姓,first_name as 名 from employee;
方式二:使用空格
select last_name 姓,first_name 名 from employee;
注意:若别名中有特殊字符如“ ”(空格)、“#”等,需要用“”把别名引起来(单引号也可以,不过建议使用双引号)
1.1.4 去重
select distinct 字段名 from 表名;
select distinct department_id from employee;(department_id中只显示没有重复的编号,若作用于多列,则根据多列的多个字段来共同去重)
1.1.5 +的作用
只有一个功能:运算符
(1).若两个操作数都为数值型,则直接进行加法运算
(2).若两个操作数中有一方为字符型,则会试图将字符型值转换为数值型。如果转换成功,则继续做加法运算;如果转换失败,则将字符型值转换成0
(3). 若两个操作数中有一方为null,则最后结果一定为null
1.1.6 concat()使用(拼接)
函数原型:concat(str1,str2,str3…)
select concat('a','b','c');->abc
select concat(last_name,first_name) as 姓名 from employee;
2. dml语言(data manipulation language)数据操纵语言
3. ddl语言(data definition language)数据库模式定义语言
4. tcl语言(transaction control language)事务控制语言
上一篇: ES6中的const
下一篇: 深入解读ES6系列(一)