1.讨论
老师和学生的关系
2.问题
为什么要学习数据库
3.什么是数据库
数据库:
功能:存储、管理
概念:多个用户共享,彼此独立,用于存储数据的地方,就是一个文件,简单说就是存储数据的仓库
4.数据库管理系统
用户管理数据库的软件
SQL语言:
InnoDB:mysql默认存储引擎
5.数据库的优势
1.存储数据量大
2.方便管理
3.多用户共享
4.独立的数据集合
6.数据库的分类
1.关系型数据库
mysql orcle sql server db2 sybase
2.非关系型数据库(NoSQL)
redis MongoDB
7.主要学习mysql数据库
7.1 环境安装
服务端安装
客户端安装
7.2 数据库的操作
1.显示数据库: show databases;
2.进入指定数据库 use 数据库名称
3.创建数据库 create database 数据库名称 default character set=utf8
4.删除数据库 drop database 数据库名称;
7.3 数据库表操作
1.创建表:
create table studentinfo2(
name VARCHAR(10) not null,
age int(10) null,
phone bigint(11)
)
2.删除表
drop table 表名
7.4 新增表数据
1.一次增加一条
insert into studentinfo (name,sex,age) values('大花','女','26');
2.一次增加多条
insert into studentinfo (name,sex,age) values('大花','女','26');
7.5 修改
update studentinfo set name='画画' where name='大花'
7.6 删除
delete from studentinfo where name='画画'
8.具体操作(练习题)
1.在一个库下面创建两张表(最好用我们学的代码练习),如下:
create table weizhi(
a_id varchar(100) not null primary key,
a_name varchar(20),
a_address(100)
)
2.插入数据:
人:
('p001','张三','100','武当','p001','10000'),
('p002','张无忌','20','明教','0','8000'),
('p003','岳不群','40','华山','0','6500'),
('p004','东方不败','35','日月神教','0','12000'),
('p005','令狐冲','21','华山','p003','4000'),
('p006','林平芝','18','华山','p003','2000'),
('p007','左冷禅','50','嵩山','0','10000'),
('p008','','46','武当','p001','10000'),
('p009','张远桥','55','武当','p001','65000')
位置:
insert into weizhi (a_id,a_name,a_address)VALUES
('aaa01','嵩山','河南'),
('aaa02','华山','陕西'),
('aaa03','武当','湖北'),
('aaa04','日月神教','黑木崖')
3.创建好的表
人:
位置:
4.查询:
-- 1.查询所有人员
-- SELECT * from ren
-- 2.只查询人员的姓名和年龄
-- SELECT p_name,p_age from ren
-- 3.查询年龄为20岁的人有哪些
-- SELECT * from ren where p_age=20
-- 4.查询60岁以下的人员有哪些??
-- 方法一:SELECT * from ren where p_age<=60
-- 5.查询50岁以上并且工资大于8000的人员有哪些??
-- SELECT * from ren where p_sal>8000
-- 6.查询姓张的人有哪些
-- select * from ren where p_name like '张%'
-- -- 7 查询哪些人员属于武当/华山/嵩山
-- select * from ren where p_menpai='武当' or p_menpai='华山' or p_menpai='嵩山'
-- 8.查询工资在5000-8900的人员有哪些
-- select * FROM ren where p_sal BETWEEN 5000 and 8900
-- 9.查询所有人员,要求按工资倒序排列-- SELECT * from ren ORDER BY p_sal desc
-- 10 查询年龄为21岁的人员的领导人是谁
-- SELECT * from ren where p_id=(SELECT p_leader from ren where p_age='21')
-- 11查询当前人员中谁的工资最高
-- select p_name from ren where p_sal=(select max(p_sal) as p_sal from ren )
-- 12查询当前人员中谁的工资最低
-- select p_name from ren where p_sal=(select min(p_sal) as p_sal from ren)
-- 13.查询所有人员的平均工资
-- select AVG(p_sal) as p_sal from ren
-- 14查询所有人员的工资总和
-- select SUM(P_sal) as p_sal from ren
-- 15查询目前有多少个人员
-- select COUNT(p_id) from ren
-- 16查询各门派的平均工资
-- SELECT AVG(p_sal),p_menpai from ren GROUP BY p_menpai
-- 17查询武当派最高工资是谁
-- SELECT p_name from ren where p_sal=(select MAX(p_sal) from ren where p_menpai='武当') and p_menpai='武当'
-- 18查询武林当中有哪些门派
-- SELECT p_menpai from ren
-- 19.查询当前武林中有哪些门派和门派的平均工资是多少
-- select p_menpai,AVG(p_sal) from ren GROUP BY p_menpai
-- 20.查询当前人员表中的第三条数据到第七条数据
-- select * from ren LIMIT 2,5
-- 21.查询没有门派的人有哪些
-- select * from ren where p_menpai=''
-- 22.查询武当门派下有哪些小弟
-- select * from ren where p_menpai='武当' and p_leader !='0'
-- 23.查询各门派的工资总和按倒序排列
-- SELECT SUM(p_sal) as sal,p_menpai from ren GROUP BY p_menpai ORDER BY sal desc
-- 24.查询人员并显示门派所在位置
-- select * from ren,weizhi where ren.p_menpai=weizhi.a_name
-- 25.查询人员表,如果人员门派存在位置则显示位置信息,不存在则不显示
-- select * from ren LEFT JOIN weizhi on ren.p_menpai=weizhi.a_name
-- 26.查询位置表,如果人员的门派有位置信息则显示人员,没有则不显示
-- 27.查询登记了地理位置的门派人员信息
-- SELECT * FROM ren INNER JOIN weizhi ON ren.p_menpai=weizhi.a_name
9.插播一个报错信息和解决措施
ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)",
这个错误出来有几种能,我的是因为MySQL还没有启动。
解决措施:
1.
2:
3:右键属性将启动类型改为自动
4.其余的参考以下措施:
如果出现"ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)",说明你的MySQL还没有启动。
解决办法:
第一步
删除c:windowns下面的my.ini
第二步
打开c:mysqlinwinmysqladmin.exe 输入用户名 和密码
第三步 在dos下 输入 mysqld-nt -remove 删除服务
在接着输入 mysqld-nt -install
第四步 输入mysql 启动成功。
其它可参考的方法:
1.看看hosts文件中localhost是不是指向127.0.0.1
2.如果是没启动mysql服务,则可运行net start mysql。
3.一些相关命令:
mysqld-nt --install #启动Mysql
mysql #运行Mysql
mysql -h ipAddress -u username -p
或者:直接去bin里点mysqld.exe或mysqld-nt.exe,看下它的进程能否正常运行,如不行,再去控制面板,服务里去启动它,看下是什么错误。如果不行,就在添加删除里删去mysql,然后再重装mysql,一般都能解决问题,可以在安装前备份一下DATA。
Error: Can't connect to MySQL server on 'localhost' (10061)
Errno.: 2003
错误编号:2003
问题分析:
无法连接到 MySQL 服务器,可能的情况为:
1、MySQL 服务没有启动,一般是在异常的情况下 MySQL 无法启动导致的,比如无可用的磁盘空间,my.ini 里 MySQL 的 basedir 路径设置错误等;
2、MySQL 服务器资源紧张,导致无法连接。
解决方法:
1、如果你是虚拟主机用户(购买的空间),则联系空间商检查 MySQL 是否正常启动,并确认 MySQL 的配置信息(是否为 localhost);
2、如果你是独立主机用户(拥有管理主机权限),则按下面步骤检查:
1)检查磁盘空间是否还有剩余可用空间,尽量保持有足够的磁盘空间可用。
2)检查 my.ini 里的 basedir (MySQL 安装地址) 和 datadir (数据目录存放地址)等参数设置是否正确,然后重新启动下 MySQL 服务。 三、当通过 TCP/IP 连接 MySQL 远程主机时,出现 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104 。
如果是在linux shell命令行中直接打 mysql 命令,能够顺利连上 MySQL,执行查询语句也比较正常,但如果执行 STOP SLAVE; 命令时就随机出现 ERROR 2013 (HY000): Lost connection to MySQL server during query 问题。而如果把操作命令写到脚本文件再去执行该脚本文件的话,则必然出现 Lost connection to MySQL server at 'reading initial communication packet', system error: 111
要是无论通过什么途径远程访问都出现错误可以认为是系统有防火墙之类的限制,但现在这种奇怪的抽筋现象让人百思不得其解。最后找到的解决方法是在 my.cnf 里面的 [mysqld] 段增加一个启动参数
skip-name-resolve