mysql数据库
1数据库概念
数据库 英文 database
作用:就是用来存储数据的。类似我们家里的仓库。
数据库分类:
1.网状
2.层次
3.关系型数据库:存的数据是按照一定的组织结构进行存储的。不是随便存储的。
常见的关系型数据:
1.db2
2.oracle
3.mysql
4.sqlserver
5.sqlite
6.hsql
E-R:模型图
实体:通过矩形
关系:通过菱形
属性:通过椭圆
2.端口
我们计算机任何一个软件都有端口 QQ 迅雷 浏览器 mysql数据库3306 http协议默认端口是80 tomcat:8080
端口的范围0-65535 其中0-1024属于系统软件端口
如何查看软件的端口呢 netstat -ano
还可以通过三方的软件查看软件的端口。
3.mysql软件的安装
1.直接安装我给大家安装包(5.5)
2.傻瓜式安装 有些配置需要注意
-- 一定要记得把当前环境加到path下 否则在dos下输入MySQL不起作用
-- 配置的过程中 四个复选框必须全部是勾选状态。
3.计算机--管理-->服务--->mysql服务是否已经启动了
4.打开dos 连接MySQL
mysql -uroot -p
提示输入密码123
如果安装不成功的话需要卸载。卸载一定要卸载干净。
记得来到C:\ProgramData\MySQL\MySQL Server 5.5\data目录下把文件给删除
删除之后在重新安装。
4 数据库操作常见命令:
1.连接MySQL的命令
mysql -uroot -p
2.查看所有的数据库命令
show databases;
3.使用哪个数据库
use + 数据库名称
4.删除数据库 drop + 数据库名称(在公司里面慎用)
5.查看当前使用的数据库
select database();
6.查看数据库里面有哪些表
show tables;
7.查看表结构
desc 表名。
8.创建数据库
create database + 数据库名
5.navicat
1.如何使用navicat
直接解压 找到navicat。exe文件
2.连接mysql数据库
--起一个连接名
--主机名或者ip地址 如果你的MySQL装到了本地 localhost
--端口 默认是3306
--用户名 root
--密码 就是安装mysql你自己设置的密码
3.创建数据库
直接在连接名上右键 选择创建数据库
也可以直接对数据库进行编辑
不想用了 可以直接右键删除。
4.通过navigat创建表
直接在表上右键 添加表
表添加成功后 添加字段。删除字段。
当字段添加成功后。可以向表中添加数据。 数据可以添加 修改 和 删除。
6 MySQL数据类型
- int 整型
- 无符号(不能表示负数) 有符号(可以表示负数)
- 小数 decimal
- 字符串 varchar
- 日期时间 datatime
7 mysql约束
- 主键 (非空 且唯一)
- 非空
- 唯一
- 外键
- 默认值
8 sql简介
sql:指的的是结构化查询语言
sal的分类:
- ddl 数据定义语言
- dml 数据操纵语言
- dcl 数据控制语言
- dql 数据查询语言
9 sql的语法:
1.创建表的语法:
-- 1 创建表sql create table 表名(字段 类型 约束,。。。)
CREATE TABLE student1(name VARCHAR(10))
CREATE TABLE student2(name VARCHAR(10),age int UNSIGNED)
CREATE TABLE student3(id int UNSIGNED PRIMARY KEY auto_increment,name VARCHAR(10),age int UNSIGNED ,height DECIMAL(5,2))
--2.修改表
-- 2 修改表 alter table + 添加 删除 列
ALTER TABLE student1 ADD age int
ALTER TABLE student1 DROP COLUMN age
--3.删除表
删除表 drop table + 表名 drop + table if exists + 表名
DROP TABLE student1
DROP TABLE if EXISTS student2
4.向表中插入数据sql
-- 4 向表中插入数据
-- 插入一行数据 插入所有的字段
INSERT INTO student3 VALUES(1,'张三',11,55.5)
-- 插入一行数据 插入部分字段
INSERT INTO student3(id,name)VALUES(2,'lisi')
-- 插入多行数
INSERT INTO student3 VALUES(4,'张三',11,55.5);
INSERT INTO student3 VALUES(5,'张三',11,55.5);
-- 一次性插入多行数据
INSERT INTO student3 VALUES(6,'lisi',40,33.3),(7,'lisi',40,33.3)
5.修改表中的数据 update 表名 set 列1=值,列2=值 where 条件
UPDATE student3 set name = '狄仁杰',age = 20 WHERE id = 5
6 查询表中所有的数据
SELECT * FROM student
7.删除表中数据
DELETE FROM student3 WHERE id = 6
-- 不加where条件会把整个表中的数据删除
DELETE FROM student3
8.起别名 通过关键字as 一般会用到多表查询的时候。
-- 给表起别名 as
SELECT s.name,s.age FROM students as s
-- 给字段起别名
SELECT name as 姓名,age as 年龄 FROM students
9.去除重复的数据
去除重复的数据 通过distinct关键字
SELECT DISTINCT sex FROM students
10.where的比较运算符
--查询小乔的年龄
SELECT age FROM students WHERE name = '小乔'
--查询20岁以下的学生
SELECT * FROM students WHERE age < 20
--查询家乡不在北京的学生
SELECT * FROM students WHERE hometown != '北京'
11.逻辑运算符
-- 查询年龄小于20的女同学
SELECT * FROM students WHERE age < 20 and sex ='女'
-- 查询女学生或'1班'的学生
SELECT * FROM students WHERE sex='女' or class = '1班'
-- 查询非天津的学生
SELECT * FROM students WHERE not hometown = '天津'
12.模糊查询 like % _
-- 查询姓孙的学生
SELECT * FROM students WHERE name like '孙%'
-- 查询姓孙且名字是一个字的学生
SELECT * FROM students WHERE name like '孙_'
-- 查询姓名以乔结尾的学生
SELECT * FROM students WHERE name like '%乔'
-- 查询姓名含白的学生
SELECT * FROM students WHERE name like '%白%'
13.范围查询:
-- 查询家乡是北京或上海或广东的学生
SELECT * FROM students WHERE hometown in('北京','上海','广东')
-- 查询年龄为18至20的学生
SELECT * FROM students WHERE age BETWEEN 18 and 20
14.空判断
-- 查询没有填写身份证的学生
SELECT * FROM students WHERE card is NULL ‘’
--查询填写了身份证的学生
SELECT * FROM students WHERE card is not NULL
15.排序 order by
-- 查询所有学生信息,按年龄从小到大排序
SELECT * FROM students ORDER BY age asc
-- 查询所有学生信息,按年龄从大到小排序,年龄相同时,再按学号从小到大排序11
SELECT * FROM students ORDER BY age DESC,studentNo asc
16.聚合函数
-- 查询学生总数
SELECT count(*) FROM students
-- 查询女生的最大年龄
SELECT max(age) FROM students WHERE sex = '女'
-- 查询1班的最小年龄
SELECT min(age) FROM students WHERE class = '1班'
-- 查询北京学生的年龄总和
SELECT sum(age) FROM students WHERE hometown = '北京'
-- 查询女生的平均年龄
SELECT avg(age) FROM students WHERE sex = '女'
17.分组查询
-- 查询各种性别的人数
SELECT sex,count(*) FROM students GROUP BY sex
-- 查询每个班级中各种性别的人数
SELECT class,sex,count(*) FROM students GROUP BY class,sex
-- 查询男生总人数
SELECT sex,count(*) FROM students GROUP BY sex HAVING sex = '男'
18.limit关键字 获取部分数据
比如每次获取新闻的数据一次获取几条
-- 查询前3行学生信息 3代表从第三条数据开始取 但是不包括第三条 2代表取2条
SELECT * FROM students LIMIT 3,2
19.多表查询
什么时候用多表查询?就是我们查询的数据在多张表 一个表不能满足需求。
多表查询的分类:
1.内连接 innner join
2.左连接 left join
3.右连接 right join
20.子查询
在一个select语句中又包含一个select语句
select * from students where age > (select avg(age) from students);
(声明:本文章为智酷道捷学习笔记,仅供学习,禁止商用,如有侵权,请联系删除)