本文概述
本文从0到1的讲述了mysql是什么,怎样创建、查看、修改、删除数据库,怎样对数据库中表进行创建、查看、修改、删除表的操作。
一、数据库的简介
1.什么是数据库
数据仓库。访问必须只能用SQL语句来访问。数据库也是一个文件的系统。
2.数据库的作用
存储数据的作用。开发任何的应用,都有数据库。
3.关系型的数据库
数据库中保存的都是实体与实体之间的关系。
4.常见的数据库
-
- Java开发,必用的两个数据库Oracle和MySQL
- Oracle数据库(甲骨文) 大型的数据库,收费的。
- MySQL数据库 小型的数据库,免费开源的。被Oracle收购了(在6.x版本下开始收费了)
- SQLServer 微软的数据库
- DB2 IBM公司产品,大型的数据库,收费的。
- SyBASE 退出了历史的舞台。PowerDigener(数据库的设计的工具)
- Java开发,必用的两个数据库Oracle和MySQL
总结:
一个数据库的服务器中包含多个数据库(蓝框),一个数据库中有多张表(红框),一个表中包含多个字段(绿框)(字段和JavaBean的 属性是对应),表中存放是数据(黄框),一行数据和一个JavaBean实体对象是对应的。

打开Mysql终端进行语句操作(使用mysql -u root -p进入),

如果下载了图形化界面navicat,也可以通过查询进行操作:

二、操作mysql数据库的语言(SQL)
2.1 SQL语言
Structured Query Language, 结构化查询语言
1.SQL非过程性的语言
-
- 过程性的语言:依赖上一条或者上几条语句执行(python、java等语言,下一行的执行依赖上一行的结果)。
- 非过程性的语言:一条语言,就对应一个返回的结果(不管一个sql语句多长,最终返回一个结果)。
2.SQL语言是基础
在Oracle使用自己的语言,PL/SQL只能在Oracle来说使用。
2.2 SQL的分类
1.DDL 数据定义语言
-
- 创建数据库 创建表 创建视图 创建索引 修改数据库 删除数据库 修改表 删除表
- create ‐‐ 创建 alter ‐‐ 修改 drop ‐‐ 删除
2.DML 数据操作语言
* 操作数据 插入数据(insert) 修改数据(update) 删除数据(delete)
3.DCL 数据控制语言
-
- if else while
4.DQL 数据查询语言
-
- 从表中查询数据(select)
三、数据库的操作(CURD)
3.1创建数据库(重点)
1.创建数据库的语法
-
- 基本的语法:create database 数据库名称;
- 正宗的语法:create database 数据库名称 character set 编码 collate 校对规则;
2.校对规则(了解):决定当前数据库的属性。
示例:
创建一个名称为mydb1的数据库。
create database mydb1;
创建一个使用utf8字符集的mydb2数据库。
create database mydb2 character set 'utf8';
创建一个使用utf8字符集,并带校对规则的mydb3数据库。
create database mydb3 character set 'utf8' collate 'utf8_bin';
3.2查看数据库(重点)
1.show databases; ‐‐ 查看所有的数据库
2.use 数据库名称; ‐‐ 使用数据库
3.show create database 数据库名称; ‐‐ 查询数据库的创建的信息
4.select database(); ‐‐ 查询当前正在使用的数据库
3.3 删除数据库(重点)
drop database 数据库名称; ‐‐ 删除数据库
3.4 修改数据库
语法:alter database 数据库名称 character set 'gbk' collate '校对规则';
示例:
查看当前数据库服务器中的所有数据库
show databases;
查看前面创建的mydb2数据库的定义信息
show create database mydb2;
删除前面创建的mydb1数据库
drop database mydb1;
四、表结构操作(CURD)--对库中表的操作
选中某个库:

4.1创建表
(不知道字段使用什么类型,可以看下方4.2数据库的数据类型,选择合适的类型)
(约束见下方4.3单表约束)
1. create table 表名称(
字段1 类型(长度) 约束,
字段2 类型(长度) 约束,
字段3 类型(长度) 约束
);
2.注意:
-
- 创建表的时候,后面用小括号,后面分号。
- 编写字段,字段与字段之间使用逗号,最后一个子段不能使用逗号。
- 如果声明字符串数据的类型,长度是必须指定的。
- 如果不指定数据的长度,有默认值的。int类型的默认长度是11
- 约束:主键约束(非空且唯一),外键约束,非空约束,唯一约束。
练习:创建一张表结构
create table employee(
id int,
name varchar(30),
gender char(5),
birthday date,
entry_date date,
job varchar(50),
salary double,
resume text
);
3.执行SQL语句
-
- 查询当前正在使用的数据库 select database();
- 选择你要使用的数据库 use studb;
- 执行创建表的SQL语句。
4.使用desc employee;查询表的信息(Default:有无默认值)
Null为NO说明此字段不为空

4.2 数据库的数据类型(5类)
1.字符串型(重点)
VARCHAR(用比较多):长度是可变的。例子:name varchar(8),存入数据hello,存入进去之后,name字段长度自动变成了5。
CHAR:长度是不可变的。例子:name char(8),存入数据hello,用空格来补全剩余的位置
2.大数据类型(不常用)
BLOB:字节(我们读不懂的,音频文件,图片等,背后是二进制)
TEXT:字符(文本的内容)(我们看得懂的内容,数字、文字等);
3. 数值型(重点)
TINYINT 、SMALLINT、INT、BIGINT(对应long)、FLOAT(单精度)、DOUBLE
4.逻辑性(布尔类型)
BIT:在Java中是true或者false ;在数据库bit类型(1或者0)
5.日期型(重点)
DATE :只包含日期(年月日)
TIME :只包含时间(时分秒)
DATETIME :包含日期和时间。如果插入数据的时候,字符值为空,字段的值就是空了。
TIMESTAMP :包含日期和时间。如果插入数据的时候,设置字段的值为空,默认获取当前的系统的时候, 把时间保存到字段中。
4.3 单表的约束
1.约束的好处:保证数据的完整性。
2.主键约束(重要)代表记录的唯一标识。
-
- 关键字:primary key 通过该关键字声明某一列为主键。
- 唯一 值就不能相同
- 非空 值也不能为空
- 被引用 和外键一起来使用
3.唯一约束
-
- 声明字段值是唯一的。使用关键字 unique
4.非空约束
-
- 声明字段的值是不能空的。not null
4.4 删除和查看表
1.删除表语法:drop table 表名;
2.查看标签
desc 表名; ‐‐ 查询表的信息
show tables; -‐ 查看当前数据库中所有的标签
show create table 表名; ‐‐ 查看表的创建的信息
4.5修改表(重点)
1.语法
-
- alter table 表名 add 新列名 类型(长度) 约束; ‐‐ 添加列
- alter table 表名 drop 列名; ‐‐ 删除列
- alter table 表名 modify 列名 类型(长度) 约束; ‐‐ 修改列的类型或者约束
- alter table 表名 change 旧列名 新列名 类型(长度) 约束; ‐‐ 修改列名
- rename table 表名 to 新表名; ‐‐ 修改表的名称
- alter table 表 名 character set utf8; ‐‐ 修改表的字符集
示例:
在上面员工表的基本上增加一个image列。
alter table employee add image varchar(50);
修改job列,使其长度为60。
alter table employee modify job varchar(60);
删除gender列。
alter table employee drop gender;
表名改为user。
rename table employee to user;
修改表的字符集为utf8
alter table user character set utf8;
列名name修改为username
alter table user change name username varchar(30);
对表中数据的操作见我的专栏mysql下:
Mysql数据库中数据的操作(CRUD)(详细版)
https://mp.csdn.net/mp_blog/creation/editor/146213148
&spm=1001.2101.3001.5002&articleId=146214562&d=1&t=3&u=7b993c9f53cb4ebaa306ac3cfa578b9d)
1307

被折叠的 条评论
为什么被折叠?



