数据库(DataBase,DB)
数据库管理系统(DataBase Management System,DBMS)
登陆Mysql:
mysql -u root -p abc
u---user
p--password
root 跟。主
mysql -u root -p abc
u---user
p--password
root 跟。主
stop 停止。
net
start 开始。
start 开始。
dir---directory目录
datadir---C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
datadir---C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
结构化查询语言(SQL:Structure Query Language)。
Language 语言
query 问题
structure 结构
Struchure Query Language
query 问题
structure 结构
Struchure Query Language
数据定义语言:DDL 用来定义数据库对象:库、表、列等;
Data Definition Language
create 创建
clter 改变
drop 丢
数据操作语言:DML 用来定义数据库记录(数据);
insert 插入;嵌入
数据控制语言,DCL 用来定义访问权限和安全级别;
DQL 数据查询语言。
用来查询记录。
select
用来查询记录。
select
选择; 挑选; 选拔;
adj. 精选的; 挑选出来的; 苛择的; 〈口〉爱挑三拣四的,挑剔的;
adj. 精选的; 挑选出来的; 苛择的; 〈口〉爱挑三拣四的,挑剔的;
创建
create database mydb1;
指令。有符号数字语法构成的。
查询。
show
show
给…看; 表现出; 显露出; 上演;
show databases;
drop 删除。
alter
改变; 更改; 改建(房屋); (人)变老;
改变; 更改; 改建(房屋); (人)变老;
set 设置。
get 取 。
select database();查询当前的库
table
表,目录; 桌子; 手术台,工作台,游戏台; 平地层;
常用数据类型
int 整型。
double 浮点型。
char 字符
char(len)
varchar 可改变的字符串类型
double 浮点型。
char 字符
char(len)
varchar 可改变的字符串类型
text 文本,原文; 课文,教科书; 主题; 版本;
test 试验; 考验; 测验; 化验;
blob一滴; 一抹; 难以名状的一团;
date 日期。
格式: yyyy-MM-dd
year
month
day
格式: yyyy-MM-dd
year
month
day
timestamp 时间戳。
hh:mm:ss
hour
minute
seconds
stamp 邮票; 标志,印记; 跺脚; 特征;
hh:mm:ss
hour
minute
seconds
stamp 邮票; 标志,印记; 跺脚; 特征;
show tables
desc
employee
employee 雇员。
employee
employee 雇员。
alter
add 增加。
add 增加。
select
* 表示所有的。
from 从哪
select * from tablename
name
gender
性别; 某些语言的(名词、代词和形容词)性的区分;
birthday 生日。
salary
薪水,薪金,薪俸;
薪水,薪金,薪俸;
entry_date
进入,入场; 入口处,门口; 登记,记录; 参加比赛的人;
getName
将wu的薪水在原有基础上增加1000元。
UPDATE emp SET salary=salary+1000 WHERE gender='male';
进入,入场; 入口处,门口; 登记,记录; 参加比赛的人;
getName
将wu的薪水在原有基础上增加1000元。
UPDATE emp SET salary=salary+1000 WHERE gender='male';
a = 20
a = a + 10
a = 30?
a += 10
a = 30?
a += 10
SELECT 列名 FROM表名
【WHERE --> GROUP BY -->HAVING--> ORDER BY】
【WHERE --> GROUP BY -->HAVING--> ORDER BY】
male 男性
'female' 女性
'female' 女性
《》
<>
查询性别为女,并且年龄50的记录
SELECT * FROM stu
WHERE gender='female' AND ge<50;
SELECT * FROM stu
WHERE gender='female' AND ge<50;
查询学号为S_1001,或者姓名为liSi的记录
SELECT * FROM stu
WHERE sid ='S_1001' OR sname='liSi';
查询学号为S_1001,S_1002,S_1003的记录
SELECT * FROM stu
WHERE sid IN ('S_1001','S_1002','S_1003');
查询学号不是S_1001,S_1002,S_1003的记录
SELECT * FROM tab_student
WHERE s_number NOT IN ('S_1001','S_1002','S_1003');
SELECT * FROM tab_student
WHERE s_number NOT IN ('S_1001','S_1002','S_1003');
查询年龄为null的记录
SELECT * FROM stu
WHERE age IS NULL;
查询年龄在20到40之间的学生记录
SELECT *
FROM stu
WHERE age>=20 AND age<=40;
或者
SELECT *
FROM stu
WHERE age BETWEEN 20 AND 40;
查询性别非男的学生记录
SELECT *
FROM stu
WHERE gender!='male';
或者
SELECT *
FROM stu
WHERE gender<>'male';
或者
SELECT *
FROM stu
WHERE NOT gender='male';
SELECT *
FROM stu
WHERE gender!='male';
或者
SELECT *
FROM stu
WHERE gender<>'male';
或者
SELECT *
FROM stu
WHERE NOT gender='male';
查询姓名不为null的学生记录
SELECT *
FROM stu
WHERE sname IS NOT NULL;
或者
SELECT *
FROM stu
WHERE NOT sname IS NULL;
模糊查询
当想查询姓名中包含a字母的学生时就需要使用模糊查询了。模糊查询需要使用关键字LIKE。
通配符:
_ 任意一个字符
%:任意0~n个字符
'%张%' '张_'
查询姓名由5个字母构成的学生记录
SELECT *
FROM stu
WHERE sname LIKE '_____';
模糊查询必须使用LIKE关键字。其中 “_”匹配任意一个字母,5个“_”表示5个任意字母。
SELECT *
FROM stu
WHERE sname LIKE '_____';
模糊查询必须使用LIKE关键字。其中 “_”匹配任意一个字母,5个“_”表示5个任意字母。
查询姓名由5个字母构成,并且第5个字母为“i”的学生记录
SELECT *
FROM stu
WHERE sname LIKE '____i';
SELECT *
FROM stu
WHERE sname LIKE '____i';
查询姓名以“z”开头的学生记录
SELECT *
FROM stu
WHERE sname LIKE 'z%';
其中“%”匹配0~n个任何字母。
SELECT *
FROM stu
WHERE sname LIKE 'z%';
其中“%”匹配0~n个任何字母。
查询姓名中第2个字母为“i”的学生记录
SELECT *
FROM stu
WHERE sname LIKE '_i%';
查询姓名中包含“a”字母的学生记录
SELECT *
FROM stu
WHERE sname LIKE '%a%';
查询所有学生记录,按年龄升序排序
SELECT *
FROM stu
ORDER BY sage ASC;
或者
SELECT *
FROM stu
ORDER BY sage;
查询所有学生记录,按年龄降序排序
SELECT *
FROM stu
ORDER BY age DESC;
SELECT *
FROM stu
ORDER BY age DESC;
查询所有雇员,按月薪降序排序,如果月薪相同时,按编号升序排序
SELECT * FROM emp
ORDER BY sal DESC,empno ASC;
查询所有雇员,按月薪降序排序,如果月薪相同时,按编号升序排序
SELECT * FROM emp
ORDER BY sal DESC,empno ASC;
统计月薪与佣金之和大于2500元的人数:
SELECT COUNT(*) AS cnt FROM emp WHERE sal+IFNULL(comm,0) > 2500;
SELECT COUNT(*) AS cnt FROM emp WHERE sal+IFNULL(comm,0) > 2500;
查询有佣金的人数,有领导的人数:
SELECT COUNT(comm), COUNT(mgr) FROM emp;
SUM和AVG
当需要纵向求和时使用sum()函数。
查询所有雇员月薪和:
SELECT SUM(sal) FROM emp;
查询所有雇员月薪和,以及所有雇员佣金和:
SELECT SUM(sal), SUM(comm) FROM emp;
SELECT SUM(sal), SUM(comm) FROM emp;
查询所有雇员月薪+佣金和:
SELECT SUM(sal+IFNULL(comm,0)) FROM emp;
SELECT SUM(sal+IFNULL(comm,0)) FROM emp;
统计所有员工平均工资:
SELECT AVG(sal) FROM emp;
SELECT AVG(sal) FROM emp;
查询最高工资和最低工资:
SELECT MAX(sal), MIN(sal) FROM emp;
SELECT MAX(sal), MIN(sal) FROM emp;