MySQL新手指南

mysql入门

数据库概述

数据库概念: 存储数据的仓库,本质是一个文件系统
​
数据库分类: 关系型数据和非关系型数据库
​
关系型数据库: 必须遵循SQL规范,强调以二维表格的形式存储数据
        举例: MySQL  ORACLE  DB2  SqlServer SQLite
​
非关系型数据: NoSQL不仅仅是SQL,强调以key-value形式存储数据
        举例: HBase Redis  MongoDB

MySQL数据库连接

登录:
    方式1: mysql -u用户名 -p密码
    方式2: mysql -u用户名 -p 回车后再输入密码
    方式3: mysql -h主机地址 -p 回车后再输入密码
    注意: localhost默认代表本地主机,或者127.0.0.1也代表本机
    
登出:
    方式1: exit
    方式2: quit
    方式3: \q
    注意: 在mac/linux中使用ctrl+d/ctrl+c也能退出

SQL规范

SQL简介

SQL: 结构化查询语言, 是所有关系型数据库都要遵循的规范
​
大白话解释: 可以理解成sql是普通话,mysql,oracle等是方言

SQL分类

DDL: 数据定义语言:简称DDL(Data Definition Language)
        作用: 用来定义数据库对象:数据库,表,列/字段等。
        关键字: create,drop,alter等
        
DML: 数据操作语言:简称DML(Data Manipulation Language)
        作用:用来对数据库中表的记录进行更新。
        关键字: insert,delete,update等
        
DQL: 数据查询语言:简称DQL(Data Query Language)
        作用:用来查询数据库中表的记录。
        关键字: select,from,where等
        
DCL: 数据控制语言:简称DCL(Data Control Language)
        用来定义数据库的访问权限和安全级别,及创建用户。
​

SQL通用语法

1、SQL语句可以单行或多行书写,以分号结尾。  
        举例: select *  from 表名 where 条件;
2、可使用空格和缩进来增强语句的可读性
          select *  
        from 表名 
        where 条件;
3、MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
        例如:select *  from 表名 where 条件; SELECT * FROM 表名 WHERE 条件;
        大小写切换快捷键: ctrl+shift+u
4、可以使用 /**/,--,# 的方式完成注释
        /**/:多行注释,在注释区域内可以随意换行
        -- 和# :单行注释,写在语句开头,换行后注释截止。注意: -- 后面必须有一个空格
        单行注释快捷键: ctrl+/         
        多行注释快捷键: ctrl+shift+/

MySQL数据库使用

数据库增删改查操作

知识点:
创建数据库: create database [if not exists] 数据库名;  注意: 默认字符集就是utf8
​
删除数据库: drop database [if exists] 数据库名;
​
使用/切换数据库: use 数据库名;
​
查看所有的数据库名: show databases;
查看当前使用的数据库: select database();
查看指定库的建库语句: show create database 数据库名;
示例:
# 一.数据库操作
# 1.创建数据库: create database [if not exists] 数据库名;
# 注意: 默认字符集就是utf8(万国码)
create database test1;
create database test2 character set utf8;
# if not exists如果库已经存在就忽略当前操作不报错,如果不存在就创建
create database if not exists test1;
create database if not exists test3;
​
# 2.删除数据库: drop database 数据库名;
drop database test3;
# if exists如果库存在就删除,否则忽略当前操作不报错
drop database if exists test2;
​
# 3.使用/切换数据库: use 数据库名;
use test1;
use test2;
​
# 4.查看操作
# 查看所有的数据库名: show databases;
# 查看当前使用的数据库: select database();
select database();
# 查看指定库的建库语句: show create database 数据库名;
show create database test1;
 

数据类型

字符串类型: varchar(字符长度)
​
整数类型: int    注意: 默认长度是11,如果int不够用就用bigint
​
浮点类型: float(python默认) 或者 double(java默认)   decimal(默认是有效位数是10,小数后位数是0)
​
日期时间: date  datetime  year

库中表增删改查操作

知识点:
创建表: create table [if not exists] 表名(字段1名 字段1类型 [字段1约束] , 字段2名 字段2类型 [字段2约束] ...);
​
删除表: drop table [if exists] 表名;
​
修改表名: rename table 旧表名 to 新表名;  
注意: 修改表中字段后面演示此处略
​
查看所有表: show tables;
查看表结构(字段信息): desc 表名;
查看指定表的建表语句: show create table 表名;
示例:
# 二.库中表的操作
# 操作表的前提是: 先有库并且使用它
# 创建库
create database day01_db;
# 使用库
use day01_db;
​
# 创建表
# 格式化代码快捷键: ctrl+alt+L
create table student
(
    id     int,
    name   varchar(100),
    age    int,
    height float
);
​
# 创建测试表
create table if not exists test1(id int);
create table if not exists test2(id int);
# 注意: 关键字不建议作为字段名使用,如果直接使用会报错
create table if not exists test3(desc varchar(100)); # 此行执行报错
# 就想用关键字作为字段名怎么办? 手动自己条件反引号`关键字`
create table if not exists test3(`desc`varchar(100)); # 此行执行成功
​
​
# 删除表: drop table [if exists] 表名;
drop table  test1;
drop table if exists test2;
​
# 修改表名: rename table 旧表名 to 新表名;
# 注意: 修改表中字段后面演示此处略
rename table student to stu;
​
# 查看所有表:
show tables;
# 查看表结构:
desc stu;
# 查看指定表的建表语句:
show create table stu;
show create table test3;

修改表中字段(增删改)

知识点:
注意: 操作字段本质就是在修改表
​
添加字段:  alter table 表名 add [column] 字段名 字段类型 [字段约束];
​
删除字段:  alter table 表名 drop [column] 字段名;
​
修改字段名和字段类型:  alter table 表名 change [column] 旧字段名 新字段名 字段类型 [字段约束];
​
modify只修改字段类型: alter table 表名 modify [column]  字段名 字段类型 [字段约束];
​
查看字段信息: desc 表名;
示例:
# 三.表中字段操作
# 注意: 操作字段本质就是在修改表
# 添加字段:  alter table 表名 add [column] 字段名 字段类型 [字段约束];
alter table stu add column weight double;
alter table stu add class varchar(100);
​
# 删除字段:  alter table 表名 drop [column] 字段名;
alter table stu drop column weight;
alter table stu drop class;
​
# 修改字段名和字段类型:alter table 表名 change [column] 旧字段名 新字段名 字段类型 [字段约束];
# 演示change只修改字段名
alter table stu change column id sid int;
# 演示change只修改字段类型
alter table stu change height height double;
# 演示change同时修改字段名和字段类型
alter table stu change sid id varchar(100);
​
# modify只修改字段类型:alter table 表名 modify [column]  字段名 字段类型 [字段约束];
# 演示modify只能修改类型
alter table stu modify column height decimal(10,2);
​
# 查看字段信息: desc 表名;
desc stu;

表中记录操作(增删改)[重点]

知识点:
插入数据记录: insert into 表名 (字段名...) values (具体值...) , (具体值...);   
            注意1: 具体值要和前面的字段名以及顺序一一对应上
            注意2: 如果要插入的是所有字段,那么字段名可以省略(默认代表所有列都要插入数据)
            注意3: 如果要插入多条记录,values后多条数据使用 逗号 分隔
​
删除数据记录: delete from 表名 [where 条件];
            注意: 如果没有加条件就是删除所有数据
​
修改数据记录: update 表名 set 字段名=值 [where 条件];
            注意: 如果没有加条件就是修改对应字段的所有数据
示例:
# 四.表中记录的增删改操作
# 操作表中记录的前提:先有表并且有对应的字段
# 操作表的前提: 先有库并且使用它
# 操作库的前提: 先连接mysql服务
# 连接mysql的前提: 先安装并启动mysql服务
# 1.操作数据的准备工作
# 创建库
create database if not exists day01_db;
# 使用库
use day01_db;
​
# 创建表
create table product(
    pid varchar(100),
    pname varchar(100),
    price double,
    cname varchar(100)
);
# 2.插入数据记录: insert into 表名 (字段名...) values (具体值...) , (具体值...);
# 注意1: 具体值要和前面的字段名以及顺序一一对应上
insert into product(pid, pname, price, cname) values ('p001','联想',9999,'电脑');
# 注意2: 如果要插入的是所有字段,那么字段名可以省略(默认代表所有列都要插入数据)
insert into product values ('p002','小米',2999,'手机');
# 注意3: 如果要插入多条记录,values后多条数据使用 逗号 分隔
insert into product values ('p003','苹果',8888,'电脑'),('p004','华为',8999,'手机'),('p005','魅族',3999,'手机');
​
​
# 3.修改数据记录: update 表名 set 字段名=值 [where 条件];
update product set price=5999 where pname='小米';
# 注意: 如果没有加条件就是修改对应字段的所有数据
update product set price=5999; -- 报黄警告,提示选择excute执行,观察结果
​
​
# 4.删除数据记录: delete from 表名 [where 条件];
delete from product where pid='p001';
# 注意: 如果没有加条件就是删除所有数据
delete from product;-- 报黄警告,提示选择excute执行,观察结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值