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
|