mysql基础笔记--day01

1.什么是数据库
简单来讲,数据库就是存储在硬盘上的一个文件而已,
只不过这个文件他有一定的规则,还有人专门为这个文件
开发了一种语言(SQL),通过这种语言可以通过管理软件
来快速的从数据库中查出数据。
数据库(DB)
2.什么是数据库管理软件
管理软件就是用来管理数据库的一些操作,这种管理操作
通过定义的(SQL)语言来操作的。市面上这种数据库管理
系统有很多,常见的有下面几个
MySql 甲骨文
Oracle 甲骨文
DB2 IBM
Sybase 赛尔斯  PowerDesigner 建模软件
SQL Server 微软
3.MySql安装
a,绿色安装
解压,按照
http://blog.csdn.net/symoriaty/article/details/78277615
b,exe安装
无脑下一步,按照  按照文档 一步步的实现即可
4.数据库的启动和关闭
数据库服务器的启动和关闭不是MySql的语法,他是操作系统的语法,操作系统
提供了这样的命令 

net start 服务名  -- 启动该服务
net stop 服务名   -- 关闭该服务
5.数据库的登录/退出/修改当前登录用户的密码
MySql数据库管理软件中最高用户  用户名为 root
a,登录
mysql -u用户名 -p密码   密码明文登录

mysql -u用户名 -p 回车   在下面密文输入  
b,退出
\q
c,修改密码(登录状态下)
set password=password('新密码');
6.MySql数据库中常用的操作命令
a,查看当前用户下管理了哪些数据库
show databases;
b,切换数据库
use 数据库名字;
c,查看当前数据库下面有哪些表
show tables;
d,查看数据库的状态(数据库的客户端 服务器  以及连接的编码格式)
status;
如果不是统一的UTF8 就修改  my.ini 配置文件 修改他的默认
编码格式全部为 utf8

在[client]下追加:
default-character-set=utf8
在[mysqld]下追加:
character-set-server=utf8
在[mysql]下追加:
default-character-set=utf8
修改完毕后,使用如下命令之一重启mysql服务:

7.MySql快速入门
建议:
SQL语言建议所有的关键字大写。
a,创建数据库
create database 数据库名字;
创建一个 java1711数据库
create database java1711;
b,删除数据库
drop database 数据库名字;
drop database java1711;
c,创建表    
//创建表之前一定要切换到该数据库下面  use 数据库名字;
create table 表名(
列名  列类型,
列名  列类型
...
);
name varchar(5),
type varchar(3),
price double
);
d,删除表
drop table 表名;
drop table t_hero;
e,查看表结构
desc 表名;
f,向表中插入数据
insert into 表名(列名1,列名2,,,) values(对应的列值1,对应的列值2,,);
//添加一个英雄
insert into t_hero(name,type,price) values('披甲龙龟','坦克',3150);
//添加一个英雄
insert into t_hero(name,type,price) values('无极剑圣','刺客',450);

insert into t_hero(name,type,price) values('abcdef','刺客',450);
g,查看该表的所有数据
select * from 表名;
select * from t_hero;

45道练习题
https://www.cnblogs.com/aqxss/p/6563625.html


DROP DATABASE java1708;

CREATE DATABASE java1708;
SHOW DATABASES;
USE java1708;
DROP TABLE t_student;
CREATE TABLE t_student(
s_id INT,
s_name VARCHAR(10),
s_age INT,
s_address VARCHAR(100),
s_desc VARCHAR(300)
);
SHOW TABLES;
DESC t_student;
-- 如何向表中插入记录
-- insert into 表名(列名) values(列值);
INSERT INTO t_student(s_id,s_name,s_age,s_address,s_desc)
VALUES(1,'张三丰',20,'武当山','一代大师');


-- 如果在插入数据的时候不给列名 就需要插入所有列
INSERT INTO t_student VALUES(2,'张无极',22,'武当山','一代大师');


-- 可以指定插入相应的列,该列无数据以null补齐
INSERT INTO t_student(s_id,s_name,s_age,s_address)
VALUES(3,'张小强',22,'武当山');


-- 一般情况下推荐使用 插入指定列


-- 查询某张表的记录
-- select 列名1,列名2,,, from 表名
-- 如果想查看该表的所有列  可以使用 * 代替
-- *代表列名仅限学习使用,开发过程中不要使用*,影响效率
SELECT * FROM t_student; -- 查询所有列


SELECT s_name,s_address FROM t_student; -- 查询指定列


-- 修改表中的记录
-- update 表名 set 列名=列值,列名=列值,,,[where 条件]
-- 如果在使用update 语句的时候 省略了 where 条件
-- 那么update 就会修改这张表中所有记录的该列的值
SHOW TABLES;
SELECT * FROM t_student;
-- 修改满足where条件的记录
UPDATE t_student SET s_desc='一代帅哥' WHERE s_id=3;
-- 修改所有的记录该列的值 省略了 where 条件
UPDATE t_student SET s_desc='一代帅哥';


-- 将id为2的记录 姓名改成张无忌 年龄改为28岁 地址改为明教 描述改为教主
UPDATE t_student SET s_name='张无忌',s_age=28,s_address='明教',s_desc='教主' WHERE s_id=2;


-- 删除数据
-- delete from 表名 [where 条件]
-- 如果删除的时候不跟上where条件,那么就会删除整张表的记录数据
-- 删除满足记录条件的数据
DELETE FROM t_student WHERE s_id=3;
-- 删除表中的所记录
DELETE FROM t_student;


-- 基础查询
-- DQL
-- 查询语法
/*
select 要查询的列
from 要查询的表
where 查询的条件
group by 给查询的结果分组
having 给分组后进行条件过滤
order by 查询结果排序
limit 查询结果进行分页显示
*/


USE java1708;
/*创建学生表*/
DROP TABLE stu;
CREATE TABLE stu(
sid CHAR(6),
sname VARCHAR(50),
age INT,
gender VARCHAR(50)
);


/*创建部门表*/
DROP TABLE dept;
CREATE TABLE dept(
deptno INT PRIMARY KEY,
dname VARCHAR(50),
loc VARCHAR(50)
);


/*创建雇员表*/
DROP TABLE emp;
CREATE TABLE emp(
empno INT PRIMARY KEY,
ename VARCHAR(50),
job VARCHAR(50),
mgr INT,
hiredate DATE,
sal DECIMAL(7,2),
COMM DECIMAL(7,2),
deptno INT,
CONSTRAINT fk_emp FOREIGN KEY(mgr) REFERENCES emp(empno)
);


/*创建工资等级表*/
DROP TABLE salgrade;
CREATE TABLE salgrade(
grade INT PRIMARY KEY,
losal INT,
hisal INT
);


/*插入表数据*/
INSERT INTO stu VALUES('S_1001', 'liuYi', 35, 'male');
INSERT INTO stu VALUES('S_1002', 'chenEr', 15, 'female');
INSERT INTO stu VALUES('S_1003', 'zhangSan', 95, 'male');
INSERT INTO stu VALUES('S_1004', 'liSi', 65, 'female');
INSERT INTO stu VALUES('S_1005', 'wangWu', 55, 'male');
INSERT INTO stu VALUES('S_1006', 'zhaoLiu', 75, 'female');
INSERT INTO stu VALUES('S_1007', 'sunQi', 25, 'male');
INSERT INTO stu VALUES('S_1008', 'zhouBa', 45, 'female');
INSERT INTO stu VALUES('S_1009', 'wuJiu', 85, 'male');
INSERT INTO stu VALUES('S_1010', 'zhengShi', 5, 'female');
INSERT INTO stu VALUES('S_1011', 'xxx', NULL, NULL);




INSERT INTO emp VALUES (1009, '猴哥', '董事长', NULL, '2001-11-17', 50000, NULL, 10);
INSERT INTO emp VALUES (1004, '剑圣', '经理', 1009, '2001-04-02', 29750, NULL, 20);
INSERT INTO emp VALUES (1006, '蛮子', '经理', 1009, '2001-05-01', 28500, NULL, 30);
INSERT INTO emp VALUES (1007, '菊花信', '经理', 1009, '2001-09-01', 24500, NULL, 10);
INSERT INTO emp VALUES (1008, '狮子狗', '分析师', 1004, '2007-04-19', 30000, NULL, 20);
INSERT INTO emp VALUES (1013, '螳螂', '分析师', 1004, '2001-12-03', 30000, NULL, 20);
INSERT INTO emp VALUES (1002, '女警', '销售员', 1006, '2001-02-20', 16000, 3000, 30);
INSERT INTO emp VALUES (1003, '小黄毛', '销售员', 1006, '2001-02-22', 12500, 5000, 30);
INSERT INTO emp VALUES (1005, '老鼠', '销售员', 1006, '2001-09-28', 12500, 14000, 30);
INSERT INTO emp VALUES (1010, '奥巴马', '销售员', 1006, '2001-09-08', 15000, 0, 30);
INSERT INTO emp VALUES (1012, '风女', '文员', 1006, '2001-12-03', 9500, NULL, 30);
INSERT INTO emp VALUES (1014, '奶妈', '文员', 1007, '2002-01-23', 13000, NULL, 10);
INSERT INTO emp VALUES (1011, '牛头', '文员', 1008, '2007-05-23', 11000, NULL, 20);
INSERT INTO emp VALUES (1001, '锤石', '文员', 1013, '2000-12-17', 8000, NULL, 20);
INSERT INTO emp VALUES (1015, '花千骨', '服务员', 1001, '2001-12-17', 80000, NULL, 50);




INSERT INTO dept VALUES (10, '教研部', '北京');
INSERT INTO dept VALUES (20, '学工部', '上海');
INSERT INTO dept VALUES (30, '销售部', '广州');
INSERT INTO dept VALUES (40, '财务部', '武汉');


INSERT INTO salgrade VALUES (1, 7000, 12000);
INSERT INTO salgrade VALUES (2, 12010, 14000);
INSERT INTO salgrade VALUES (3, 14010, 20000);
INSERT INTO salgrade VALUES (4, 20010, 30000);
INSERT INTO salgrade VALUES (5, 30010, 99990);


SELECT * FROM stu;


SELECT * FROM emp;


SELECT * FROM dept;


SELECT * FROM salgrade;


-- 查询性别是女,年龄是5的记录
SELECT *
FROM stu
WHERE gender='female' AND age=5;




-- 查询学号是s_1001,或者姓名为liSi的记录
SELECT * 
FROM stu
WHERE sid='s_1001' OR sname='liSi';




-- 查询学号是s_1001,s_1002,s_1003的记录
SELECT *
FROM stu
#where sid='s_1001' or sid='s_1002' or sid='s_1003';
WHERE sid IN('s_1001','s_1002','s_1003');




-- 查询年龄为null的记录
-- null值和任何值(包括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';




-- 模糊查询
-- 关键字 like
-- _ 通配任意一个字节 % 通配任意多个字符


-- 查询姓名由5个字母构成的学生记录
SELECT *
FROM stu
WHERE sname LIKE '_____';




-- 查询姓名由5个字母构成,并且第5个字母为 i 的学生记录
SELECT *
FROM stu
WHERE sname LIKE '____i';




-- 查询姓名以 z 开头的学生记录
SELECT *
FROM stu
WHERE sname LIKE 'z%';




-- distinct 去除重复 一般在单列的情况比较多
SELECT DISTINCT sal
FROM emp;




-- 查看员工的月薪和奖金之和
-- 显示员工的姓名和实际月收入
-- null值的影响,和null做计算的结果都是null
-- 处理方式:使用一个函数 IFNULL
-- IFNULL(可能会出现null值的列名,替换null的值)
-- 别名 ename AS '姓名'    as可以省略
SELECT ename'姓名',sal+IFNULL(COMM,0)'实际所得'
FROM emp;


-- 排序
-- order by  asc升序   desc降序


-- 查询所有的学生记录,按年龄升序排序
-- 默认升序,asc可以不写
SELECT *
FROM stu
ORDER BY age ASC;




-- 查询所有的雇员,按月新降序排序,月薪相同时,按编号升序
SELECT *
FROM emp
ORDER BY sal DESC,empno ASC;




-- 聚合物函数  组函数
/*
     avg() 平均值
     max() 最大值
     min() 最小值
     count() 计数
     sum() 求和
*/
-- 查询emp表中有多少条记录
SELECT COUNT(*) 
FROM emp;




-- 查询emp中月薪大于25000的人数
SELECT COUNT(*)
FROM emp
WHERE sal>25000;




-- 查询emp中月薪最高的人的详细信息
SELECT *  
FROM emp
WHERE sal=(SELECT MAX(sal) FROM emp);




-- 查询所有雇员的月薪总和
SELECT SUM(sal) 
FROM emp;




-- 查询每个部门的部门编号和每个部门的工资总和
SELECT deptno,SUM(sal)
FROM emp
GROUP BY deptno;




-- 查询每个部门的工资总和,显示部门工资总和大于10w的部门编号
-- 分组后过滤
SELECT deptno,SUM(sal)
FROM emp
GROUP BY deptno
HAVING SUM(sal)>100000;


-- 显示出每个部门工资大于15000的人数和部门编号
-- 分组前过滤
SELECT deptno,COUNT(*)
FROM emp
WHERE sal>15000
GROUP BY deptno;


-- 分页查询
#当前页-1 * 每页的条数
SELECT *
FROM emp
LIMIT 0,4  -- 第一页


SELECT *
FROM emp
LIMIT 4,4  -- 第二页


SELECT *
FROM emp
LIMIT 8,4  -- 第三页


-- 单表查询练习
/*1. 查询出部门编号为30的所有员工*/
SELECT ename 姓名,deptno 部门编号
FROM emp
WHERE deptno=30;


/*2. 所有销售员的姓名、编号和部门编号。*/
SELECT ename 姓名,empno 编号,deptno 部门编号
FROM emp
WHERE job='销售员';


/*3. 找出奖金高于工资的员工。*/
SELECT ename 姓名,sal 工资,comm 奖金
FROM emp
WHERE sal<comm;


/*4. 找出奖金高于工资60%的员工。*/
SELECT ename 姓名
FROM emp
WHERE comm>(sal*0.6);


/*5. 找出部门编号为10中所有经理,和部门编号为20中所有
销售员的详细资料。*/
SELECT *
FROM emp
WHERE deptno=10 AND job='经理' OR deptno=20 AND job='销售员';


/*6. 找出部门编号为10中所有经理,部门编号为20中所有销
售员,还有即不是经理又不是销售员但其工资大或等于
20000的所有员工详细资料。*/
SELECT *
FROM emp
WHERE (deptno=10 AND job='经理')OR(deptno=20 AND job='销售员')OR(job NOT IN('经理','销售员') AND sal>=20000);


/*SELECT *
FROM emp
WHERE deptno=20 AND job='销售员';
SELECT *
FROM emp
-- where job!='经理' and job!='销售员';
WHERE job not in('经理','销售员') and sal>=20000;*/


/*7. 有奖金的工种。*/
SELECT DISTINCT job 工种
FROM emp
WHERE comm IS NOT NULL;


/*8. 无奖金或奖金低于10000的员工。*/
SELECT ename 姓名,comm 奖金
FROM emp
WHERE comm IS NULL OR comm<10000;


/*9. 查询名字由三个字组成的员工。*/
SELECT ename 姓名
FROM emp
WHERE ename LIKE '___';


/*10.查询2000年入职的员工。*/
SELECT ename 姓名,hiredate 入职时间
FROM emp
WHERE hiredate LIKE '2000%';


/*11. 查询所有员工详细信息,用编号升序排序*/
SELECT *
FROM emp
ORDER BY empno ASC;




/*12. 查询所有员工详细信息,用工资降序排序,如果工资
相同使用入职日期升序排序*/
SELECT *
FROM emp
ORDER BY sal DESC,hiredate ASC


/*13. 查询每个部门的平均工资*/
SELECT deptno 部门编号,AVG(sal) 平均工资
FROM emp
GROUP BY deptno




/*14. 求出每个部门的雇员数量。*/
SELECT deptno 部门编号,COUNT(ename) 雇员数量
FROM emp
GROUP BY deptno


/*15. 查询每种工作的最高工资、最低工资、人数*/
SELECT job 工种,MAX(sal) 最高工资,MIN(sal) 最低工资,COUNT(ename) 人数
FROM emp
GROUP BY job;


/*16. 显示非销售人员工作名称以及从事同一工作雇员的月
工资的总和,并且要满足从事同一工作的雇员的月工资合
计大于50000,输出结果按月工资的合计升序排列*/
SELECT job 工种,SUM(sal) 工资总和
FROM emp
GROUP BY job
HAVING job!='销售员' AND SUM(sal)>50000 
ORDER BY SUM(sal) ASC


/*显示出每个员工的姓名和他的领导姓名*/
SELECT e.ename 员工姓名,IFNULL(m.ename,'无领导的人物') 领导姓名
FROM emp e LEFT OUTER JOIN emp m
ON e.mgr=m.empno;











  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值