MySQL数据库01(数据库介绍、SQL语句)
Part01:数据库介绍
1、数据库的概述:
- 数据库:Database
数据库是存储数据的仓库,本质上是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 - 数据库管理系统:(DBMS)
数据库管理系统指一种操作和管理数据库的大型软件,用于建立,使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。我们通过DBMS操作数据库。
2、数据库表
- 表中的一行称为一条记录
- 表中一列称为一个字段
3、常见的数据库管理系统:
MySql、Oracle、DB2(常应用在银行系统中)SQLServer(C#、.net等语言常使用)、Sqlite(嵌入式的小型数据库,应用在手机端)
Part02:SQL语句
1、SQL:结构化查询语言
2、SQL语言分类:
- DDL(数据库定义语言):主要是对数据库、数据库表,列等进行创建删除维护等
- 关键字:create(创建)、alter(修改)、drop(删除)、show(查看)
- 操作数据库:
- 创建一个数据库:
- create database 数据库名;//默认编码安装时选择的编码
- create database 数据库名 charset 编码;//指定编码
- 删除一个数据库:
- drop database 数据库名;
- 修改数据库编码、修改正在使用的数据库
- use 数据库名;
- 查询
- select database( );//查询正在使用的数据库
- show databases;//查询所有的数据库
- show create database 数据库名;//查询某一个数据库的详细信息
- 创建一个数据库:
- 操作数据库表:
- 创建一个表:
- create table 表名(字段名1 数据类型(长度) [约束], 字段名2 数据类型(长度) [约束]);
CREATE TABLE student(
sid INT PRIMARY KEY,-- 主键约束,保证sid的唯一性;
sname VARCHAR(30),
sage INT
);
- create table 表名(字段名1 数据类型(长度) [约束], 字段名2 数据类型(长度) [约束]);
- 删除表:
- drop table 表名;
- 查看表:
- desc 表名;//查看一个表的详细信息
- Show tables;//查看所有表的信息
- 改表名
- rename table 表名 to 新表名;
- 修改表中的字段(列):
- 添加列:alter table 表名 add 列名 数据类型(长度) [约束];
- 删除列:alter table 表名 drop 列名;
- 改列名:alter table 表名 change 旧列名 新列名 类型(长度) [约束];
- 修改列的类型和约束:alter table 表名 modify 列名 类型(长度)[约束];
- 创建一个表:
- DCL(数据库操纵/控制语言):控制数据库访问权限
- DML(数据库操作语言):主要对表中的数据进行 增删改操作
- 关键字:insert(插入)、delete(删除)、update(修改)
- 操作数据:
- 插入一条记录:
- insert into 表名 (列名1,列名2…) values(值1,值2…) 【注意⚠️:a.列名可以在表中选择一列或者几列;b.后面的值必须和前面的列一一对应;c.在SQL中除了数值型数据,其他数据必须用’ ‘或者” “引起来;d.如果要插入的数据所有的字段都有,那么以上的(列名1,列名2…)可以省略】
- 删除一条记录:
- delete from 表名;//删除表中所有记录
- delete from 表名 where 条件;//删除满足条件的记录
- 修改表中的记录信息:
- update 表名 set 字段名 = 值;//把所有记录的该列都改了
- update 表名 set 字段名 = 值 where 条件;//把满足条件的记录的列改了;
- 插入一条记录:
- DQL(数据库查询语言):主要是对表中的数据进行查询操作
- 关键字:select(查询)、 from(从)、 where(条件)
- 基本格式:
- select * from 表名;//查询表中所有列的数据;
- select 列名1,列名2… from 表名;//查询表中指定的列
- select distinct 列名 from 表名;//去重查询
- select price+10 as 价格 from product;//别名查询,给price+10字段取别名为价格,其中as关键字可以省略;
- 带有条件的查询:
3、SQL通用语法:
- SQL语句可以单行或多行书写,以分号结尾;
- 可使用空格和缩进来增强语句的可读性;
- MySQL数据库的SQL语句不区分大小写,关键字建议使用大写;
- 可以使用/**/的方式完成注释,也可以使用#或者-- 注释一行
- MySQL中常用的数据类型:
- int 整型
- double 浮点型
- varchar(M) 可变字符串型,M为 长度
- date 日期类型,只有年月日,datetime包括时分秒
4、SQL约束:
- 主键约束primary key:被主键约束的列必须唯一,且不能为空;
- 自动增长约束auto_increment:被自动增长约束的列,值可以不用管,每条记录默认从1开始每次自动增长1;自动增长约束只能约束int型字段,
5、删除表中所有数据的两种方式(面试题)
- delete from 表名;//删除表中所有数据,但是自动增长值不会重置为1;
- truncate table 表名;//删除表的所有数据,并且重置自动增长值为1;
truncate的底层是先摧毁表,然后再重建表;