文章目录
- 初识MySQL
- 1. 了解主流的数据库和数据库分类
- 1.1 数据库概念
- 1.2 数据库的分类
- 1.3 主流数据库
- 2. 了解常用的数据库命令
- 2.1 数据库服务器的组成
- 2.2 SQL介绍
- 2.3 数据库相关操作命令
- 3. 熟悉数据表操作的语句/命令
- 3.1 创建数据库表
- 3.2 查看数据库中的数据表
- 3.3 删除数据库
- 2.DML
- 1.修改表
- 2.主键和外键
- 1.主键:
- 2.外键
- 数据修改 UPDATE
- 数据删除 DELETE
初识MySQL
1. 了解主流的数据库和数据库分类
1.1 数据库概念
数据库:按照数据结构来组织、存储和管理数据的一种建立在计算机存储设备上的仓库。
数据库的优势:
- 可以持久化存储大量的数据、方便我们进行检索
- 可以保证数据的安全和数据的一致性(事务…)
- 可以很轻松的通过数据库来提取出新的有效信息(计算平均分、统计人数)
1.2 数据库的分类
RDB(Relational DataBase)关系型数据库
性能方面 关系型数据库受限于技术实现,所以有瓶颈。
但是它在安全方面比较可靠。(事务支持好)
NoSQL(Not only SQL)不仅仅是SQL 非关系型数据库
文档型数据库
键值对数据库 key value
图形数据库
…
它这种概念正式兴起于web2.0时代 2006-2009… 它的性能非常优异 。
但是它的安全方面要比较差。
RDB(主) + NoSQL(副)
1.3 主流数据库
RDB:
MySQL Oracle SQLServer PostgreSQL MariaDB SQLlite.....NoSQL:
Redis Memcached MongoDB HBase Solr ElasticSearch....`2. 了解常用的数据库命令
2.1 数据库服务器的组成
数据库是基本单位
数据表是数据库的基本单位
例如:我们需要开发一个小说阅读器,它需要存储小说、分类、用户…信息。
创建一个小说阅读器的数据库:sun_reader_db
在sun_reader_db中创建小说表、分类表、用户表(二维表)
2.2 SQL介绍
SQL:(Structured Query Language)结构化查询语言 它也是一种规范、标准。
我们的关系型数据库都是采用SQL来进行操作的,不同的数据库对SQL进行了一些改造,但是类似。CRUD
DDL:数据定义语言 创建Create 删除Drop 修改Alter table...
DML:数据操作语言 CUD 增Insert 删Delete 改Update
DQL:数据查询语言 Select 查询
DCL:数据控制语言 Grant 、Roll back 、 commit...2.3 数据库相关操作命令
-- 创建数据库命令
create database 数据库名;
-- 删除数据库命令
drop database 数据库名;
-- 查看数据库
show databases;
-- 切换数据库 如果需要在此数据库中进行操作 必须要先切换此数据库
use 数据库名;3. 熟悉数据表操作的语句/命令
3.1 创建数据库表
create table 表名(
列名1 数据类型(数据长度) 列约束/属性,
列名2 数据类型 列约束....
);-- 创建用户信息表 有些时候在MySQL中 如果有敏感字/关键字 可以添加反引号`来解决。注意不是单引号'
create table `user`(
id int,
username varchar(25)
);3.2 查看数据库中的数据表
-- 查看数据库的所有表
show tables;
-- 查看表定义/结构
desc/describe 表名;3.3 删除数据库
-- 删除数据库表
drop table 表名;2.DML
1.修改表
并不是特别常用 只需要了解记忆一些常见的即可
#更改identityCard字段名称为identityId
#CHANGE:更改字段信息时 并且可以改名 / MODIFY 只能改字段信息
ALTER TABLE student CHANGE identityCard identityId VARCHAR(18);
# 添加字段信息 出生日期 birthday/bornDate datetime COMMENT '出生日期'
ALTER TABLE student ADD bornDate datetime COMMENT '出生日期';
# 删除字段信息 删除出生日期
ALTER TABLE student DROP bornDate;
# 修改表名
ALTER TABLE student RENAME school_stu;2.主键和外键
1.主键:
能够唯一标识信息表中的一条数据的字段/字段组
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段名);
ALTER TABLE school_stu
ADD CONSTRAINT pk_stu_stuId
PRIMARY KEY school_stu(stuId);2.外键
在一张表中的某个字段引用的数据来自另一张表的某个字段的信息。
主表:它的主键一般是需要被从表引用 从表:在其中拥有外键 可以引用主表的主键信息
grade主表 student从表
实现物理外键 通过SQL语句将外键绑定好 可以保证数据一致性
ALTER TABLE school_stu
ADD CONSTRAINT fk_stu_grade
FOREIGN KEY (gradeId)
REFERENCES grade(gradeId);为了能够方便进行数据表操作 在实际项目中一般不设置物理外键 而设置逻辑外键
数据添加 INSERT
INSERT INTO 表名[(要添加值的字段列表)] VALUES(字段值列表<必须按照前面的顺序赋值>);
INSERT INTO school_stu (stuId,stuName,stuPwd) VALUES(1,'sss','xxxx');
如果你省略了字段列表 则需要将所有字段进行赋值 且严格按照顺序
INSERT INTO school_stu VALUES(3,'呵呵','hehe','女',2,'12312','x','x','xxx','2019-05-23');
如果有些字段有默认(主键有自动递增) 则可以使用null来表示 不需要去给此字段赋值
INSERT INTO school_stu (stuId,stuName) VALUES(null,'测试');同时添加多条数据
INSERT INTO school_stu(stuName) VALUES('aaa'),('sss'),('ddd');将school_stu的id和名称 赋值到stu表中的对应列
必须保证要添加数据的表提前存在!!!!
INSERT INTO stu(stuId,stuName)
SELECT stuId,stuName FROM school_stu;将school_stu的id和名称 赋值到一张新表newstu中
CREATE TABLE newstu(
SELECT stuId,stuName FROM school_stu
);数据修改 UPDATE
修改语句
UPDATE 表名 SET 字段名 = 字段值,...... [where条件语句]
// 如果不添加条件 则默认为全表更新
UPDATE school_stu SET stuName = 'aaa'
WHERE 在哪/哪里?
WHERE 后可接一系列的判断条件 id = xxx and xxx = xx or xxx = xx and not xxx数据删除 DELETE
DELETE FROM 表名 [where 条件]
TRUNCATE 可以进行数据删除
TRUNCATE TABLE school_stu;面试题 :DELETE TRUNCATE的区别
相同点:都可以进行数据删除(全表删除)
不同点:DELETE可以进行条件删除 TRUNCATE只能进行全表删除
不同点:DELETE会保留自增序列 TRUNCATE除了表结构 其他数据全部清空 不会保留自增序列
不同点:TRUNCATE会结束事务 而DELETE不会影响到事务
















