重新开始第6天
MYSQL的开始
DB:
数据库(database):存储数据的“仓库”,它保存了一系列有组织的数据。
DBMS:
数据库管理系统(Database Management System).数据库是通过DBMS创建和操作的容器
SQL
接过话查询语言(Structure Query Language):专门用来与数据库通信的语言
SQL的优点:
1不是某个特定数据库供应商专用的语言,几乎所有DBMS都支持SQL
2简单易学
3虽然简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂
和高级的数据库操作
什么是数据库
1数据放在表中,表再放在库中
2一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性
3表具有一些特性,这些特性定义了数据在表中如何存储,类似java中“类”的设计
4表由列组成,我们也称为字段。所有表都是由一个或多个列组成,每一列类似java中的“属性”
5表中的数据是按行存储的,每一行类似于java中的“对象”
登入方式
通过mysql自带客户端登入,只限ROOT用户
通过windows自带的客户端
mysql -h主机名 -p端口名 -u用户名 -p密码
退出:
exit或者ctrl+c
MySQL的常见命令
1.查看当前所有的数据库
show databases;
2打开指定的库
use 库名
3查看当前库的所有表
show tables;
4查看其它库的所有表
show tables from 库名
5创建表
cteate table 表名(
列名 列类型,
列名 列类型,
。。。
);
6查看表结构
desc 表名;
7查看服务器版本
方式1:select version();
方式2:windows服务端
mysql --version或 mysql --v
SQL语法规范
1。不区分大小写,但建议关键字大写,表名。列名小写
2。每条命令最好用分号结尾
3。每条命令根据需要,可以进行缩进或换行
4。注释
单行注释:#注释文字
单行注释:-- 注释文字(当中有空格)
多行注释:/* 注释文字 */
DQL语言的学习
select + 查询列表 + from + 表名;
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;字符串拼接
SELECT last_name FROM employees WHERE last_name LIKE '__%';
substr 截取字符串中的字符
select substr('fjlaksjflksd',2)//j开始
instr()返回字符串第一次出现的索引
trim()取出头尾的空格号
trim(‘取出的字符’from '字符串')
lpad('字符串',长度,'')//左填充,不到长度的填充,不到长度从右边阶段
rpad右填充
replace ('字符串','字符串中需要替换的字符串',‘替换字符串’)
数学函数
round(1.65);四舍五入
round(1.345,2)小数点后保留2位
ceil(1.52)向上取整
floor(1.52)向下取整
truncate(1.65,1)小数点后保留1位
mod(10,3)取余
日期类型
now()//返回当前系统日期+时间
curdate()//返回当前系统日期,不包括时间
curtime()//返回当前时间,不包括日期
year(now())年;获取当前年数
year('2020-10-1')年
year(hiredate)年 from employess;
month(now()) 月;
monthname(now())月;
其他函数
version()
database()
user()
流程控制函数
if函数:if else 的效果
if(10>5,'大','小')
case 函数使用
case//要判断的字段或表达式
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
。。。
else 要显示的值n或语句n;
SELECT salary,department_id,
CASE department_id
WHEN 30 THEN salary*1.1
WHEN 40 THEN salary*1.2
WHEN 50 THEN salary*1.3
ELSE salary
END AS 新工资
FROM employees;
case
when 条件1 then 要显示的值1或语句1
when 条件2 then 要钱是的值2或语句2
。。。
else 要显示的值n或语句n
end
SELECT salary,
CASE
WHEN salary > 20000 THEN 'A'
WHEN salary > 15000 THEN 'B'
WHEN salary > 10000 THEN 'C'
ELSE 'D'
END AS 工资级别
FROM employees;