A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 卞建彬 中级黑马   /  2018-10-18 19:45  /  385 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

day02_MySQL基础
数据库概述
英文: DataBase 简称DB
用于存储和管理数据的仓库
数据库软件和数据库的区别:
数据库范围大: 繁殖所有存储和管理数据的数据库(数据库软件)
数据库软件: 管理和存储数据
使用统一的方式(sql语言)来操作所有的数据库
特点:
1. 持久化存储数据, 其实数据库就是一个文件系统
2. 方便存储和管理数据
3. 使用了统一的方式操作数据库 -- SQL
mysql数据库
常见目录:
bin: binary(二进制) 比如: exe,bat
conf: configuration(配置): 配置文件
lib: library(图书馆) jar包
data: 数据
假如安装错误如何解决:
1. 以管理员命令打开DOS命令窗口,以管理员身份去安装软件
2. msiexec/package mysql软件所在的路径
比如: msiexec/package
MySQL服务启动
1. 手动开启
2. cmd -->services.msc 打开服务的窗口
3. 使用管理员打开cmd
net start mysql 开启
net stop mysql 关闭
4. MySQL登录
1. mysql -uroot-proot
2. mysql -hip(IP地址) -uroot -proot
5. MySQL退出
1. exit
2. quit
6. MySQL目录结构
1. MySQL安装目录
配置文件 my.ini
2. MySQL数据目录
3. 概念
数据库: 文件夹
表: 文件
表区分表结构 和 表记录:
表结构: 表头(表的字段) 和 字段对应的类型(数据类型)
表记录: 表头(字段) 对应的值
数据: 数据
mysql数据库服务器软件 和 数据库 和 表 和 数据 (表记录) 关系:
1. 现有mysql数据库软件
2. 在数据库软件上面, 创建多个数据库
比如: mysql, performance_schema, test
3. 在数据库里面, 创建多个表(对应的文件)
4. 在表(二维表格)里面, 管理表记录(数据)
sql指令
一. sql概述
Structured QueryLanguage: 结构化查询语言 (sql不仅能查询, 还能增删改)
其实就是一种语法(一套规则)
其实就是定义了操作所有关系型数据库的规则, 每一种数据库操作的方式存在不一样的地方, 成为"方言"
二. 通用语法
1. SQL 语句可以单行或多行熟悉, 以分号结尾
2. 可使用空格和锁紧来增强语句的可读性
3. MySQL 数据可的SQL语句不区分大小写 关键字建议使用大写
4. 3种注释
1. 单行注释: -- 注释内容 或#注释内容(mysql特有)
2. 多行注释: /*注释*/
三. sql常见的分类 -- 四类
DDL: 数据库定义语言, 作用: 创建数据库和数据表以及修改数据库和数据表(表结构)
DQL: 数据库查询语言, 作用: 对表中的记录进行查询操作
DML: 数据操作语言, 作用: 用来对数据库中表的数据进行增删改
DCL: 数据可控制语言, 作用: 给数据库和数据表进行授权操作(了解)
3.SQL常见的4种分类
1)DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
删除某表中的某列 alter table 表名 drop 列名
2)DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update,add 等
delete from 表名 where 条件
insert into 表名(列名. . .) values(值. . . ) where 条件
update 表名 set 列名 = 值 ... where 条件
3)DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select,where 等
4)DCL(Data Control Language)数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等
四. sql操作数据库和表
1. 操作数据库 ; CRUD(增删改查)
1. C:Create: 创建
创建数据库:
create database 数据库名称;
创建数据库, 判断不存在, 在创建
create database ifnot exists 数据库名称;
创建数据库, 并指定字符集
create database 数据库名称 character set 字符集名;
创建db4数据库, 如果不存在就创建, 字符集为utf8
create database ifnot exists db4 character set utf8;
2. R:Retrieve: 查询(展示)
查询所有数据库的名称:
show databases;
查看某个数据库的字符集: 查询某个数据库的创建语句
show createdatabase 数据库名称;
3. U:Update: 修改
修改数据库的字符集
alter database 数据库名称 character set 字符集名称;
4. D:Delete: 删除
删除数据库
drop database 数据库名称;
判断数据库存在, 存在再删除
drop database ifexists 数据库名称;
使用数据库
查询当前正在使用的数据库名称
select database();
使用数据库(进入库)
use 数据库名称;
DDL 创建数据库和数据表以及修改
关键字: create,drop, alter
2. 操作表
1. C:Create: 创建
语法:
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
. . .
列名n 数据类型n
);
注意: 最后一列, 不需要加逗号(,)
数据库数据类型:
1. int: 整数类型
age int,
2. double: 小数类型
score double(5,2),
3. date: 日期, 只包含年月日,yyyy-MM-dd,
4. datetime: 日期, 包含年月日时分秒,yyyy-MM-dd HH:mm:ss,
5. timestamp: 时间戳类型 包含年月日时分秒, yyyy-MM-dd HH:mm:ss,
如果将来不给这个字段赋值,或者赋值为null, 则默认使用当前的系统时间, 来自动赋值
6. varchar: 字符串
name varchar(20) :姓名最大20个字符
eg: zhangsan 8个字符 张三 2个字符
创建表
create tabletab_student(
id int,
name varchar(32),
age int,
score double(4,1),
birthday date,
insert_timetimestamp
);
复制表:
create table 表名 like 表名;
2. R:Retrieve: 查询
查询某个数据库中所有的表名称
show tables;
查询表结构
desc 表名;
3. U:Update: 修改
1. 修改表名
alter table 表名 rename to 新的表名;
2. 修改表的字符集
alter table 表名 character set 字符集名称;
3. 添加一列
alter table 表名 add 列名 数据类型;
4. 修改列名称 类型
alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 change modify 列名 新数据类型;
5. 删除列
alter table 表名 drop 列名;
4. D:Delete: 删除
drop table 表名;
drop table ifexists 表名;
DML: 增删改表中数据
1. 添加数据:
语法:
insert into 表名(列名1, 列名2, . . .列名n) value(值1,值2, . . . 值n);
注意事项:
1. 列名和值要一一对应
2. 如果表名后, 不定义列名, 则默认给所有列添加值
insert into 表名 value(值1, 值2, . . . 值n);
3. 除了数字类型, 其他类型都必须用引号(单引号, 双引号都可以)
2. 删除数据:
语法:
delete from 表名 where 条件
注意事项:
1. 如果不加条件, 则删除表中所有数据
2. 如果要删除所有记录
1. delete from 表名; -- 不推荐使用, 有多少条记录就会执行多少次删除操作
2. TRUNCATE TABLE 表名; -- 推荐使用, 效率更高. 先删除表, 然后再创建一个一样的表
truncatetable 数据 是 DDL操作
3. 修改数据:
语法:
update 表名 set 列名1 = 值1, 列名2 = 值2, . . .列名n = 值n where 条件
注意事项:
如果不加任何条件, 则会将表中所有数据修改
DQL: 查询表记录
select * from 表名;
1. 语法:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
2. 基础查询
1. 多个字段的查询
select 字段名1, 字段名2, . .. from 表名;
注意事项:
如果穿所有字段, 则可以使用*来替代字段列表
2. 去除重复
distinct
3. 计算列
一般可以使用四则运算计算一些列的值 (一般只会进行数值型的计算)
ifnull(表达式1, 表达式2)
表达式1: 哪个字段需要判断是否为null
如果该字段为null后的替换值
4. 起别名
as: as也可以省略
注意事项:
1. 字段, 列名称, 表头, 都表示一个意思, 都是表的Field
2. 字符集, 编码格式, 编码表, 都表示一个意思, 都是编码
常见的编码表:
utf-8 万能的码表, 支持所有的字符
gbk, gb2312,gb18030: 中文的码表, 支持中文, 还支持其他字符, 但是不包含日文, 韩文等字符
ios-8859-1 西欧的码表, 支持西欧的字符, 但是不支持中文, 日文, 韩文等
今日总结
1. 数据库概述
1. 存储和管理数据的
2. 数据库和数据库服务器软件的区别
数据库软件操作和管理数据库
数据库: 他是一个文件夹, 通过统一的方式sql来操作
数据库服务器软件, 数据库, 数据表, 表记录(数据)关系: 包含
2. mysql
1. mysql的安装和写在
2. mysql的开启和关闭
1. 打开服务
2. dos窗口 net start mysql net stop mysql
3. 目录结构
bin, data, lib等
3. sql
1. 概述 : 一套语法, 结构化查询语言, 操作数据库和数据表
2. 常见分类 - 4类
DDL: 数据库定义语言, 操作数据库和表结构
操作数据库:
查看所有数据库名称: show databases;
查询数据库创建语法:show create database 数据库名称
删除数据库: dropdatabase 数据库名称
查询当前正在使用的数据库:select database();
使用(进入)数据库: use 数据库名称;
操作表结构:
创建表: createtable 表名(字段名称 类型, . . . );
查询表: showtables;
修改表:
alter table 表名
修改表名称:altertable 表名 rename to 新表名
修改字段名称和类型:alter table 表名 change 字段 新字段名 新类型
修改类型: altertable 表名 modify 字段 类型
添加新的字段: altertable 表名 add新的字段 类型
删除某个字段: altertable 表名 drop 字段
删除表
truncate table 表名
DML: 数据操作语言, 更新表记录(增删改)
添加: insertinto 表名(字段, . . . ) value (值 . . .)
修改: update 表名 set 字段=值, . . .字段=值 where 条件
删除: deletefrom 表名 where 条件
DQL: 数据查询语言, 查询表记录
基础查询
查询所有字段对应的值:select * from 表名
查询某些字段对应的值:select 字段, . . .字段 from 表名;
去除重复数据:select distinct 字段 from 表名
起别名: select 字段 [as] 别名 from 表名
DML

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马