基础篇:
- MySQL概述
-
SQL
- 函数
- 约束
- 多表查询:
- 事务
2、SQL(重要)
- SQL通用语法
- SQL分类
- DDL
- DML
- DQL
- DCL
2.1、SQL通用语法
1、SQL语句可以单行或多行书写,以分号结尾。
2、SQL语句可以使用空格/缩进来增强语句的可读性
3、MySQL数据库的SQL语句不区分大小写,关键字建议用大写。
4、注释:
单行注释:--注释内容 或#注释内容(MySQL特有)
多行注释:/*注释内容*/
2.2、SQL分类
DDL:Definition:数据定义语言 ,用来定义数据库对象(数据库,表,字段)
DML:Manipulation:数据库操作语言,用来对数据库表中的数据进行增删改
DQL:Query:数据查询语言,用来查询数据库中表的记录
DCL:Control:数据库控制语言,用来创建数据库用户,控制数据库的访问权限
2.3、DDL:数据库定义语言
2.3.1、数据库操作
1、查询:
查询所有数据库
SHOW DATABASE;
查询当前数据库
SELECT DATABASE();
2、创建
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DATABASE CHARSET 字符集] [COLLATE 排序规则];
//方括号中内容可以省略,MYSQL中有对应的默认内容。
//(当数据库中已有改名称的数据库时,改语句不会执行,并报错。)
ERROR 1007 (HY000): Can't create database '数据库名'; database exists
1 创建数据库时,create database 后加上数据库的名称就可以了。
2 加上 IF NOT EXISTS
,表示如果这个名称不存在则创建该数据库,如果存在则不创建
//加上这句话时(当数据库中已有改名称的数据库时,创建语句不会执行,不报错。)
3 加上 DEFAULT CHARSET
后跟字符集 ,表示指定默认的字符集
4 加上 COLLATE
后跟排序规则 ,表示指定对应的排序规则。
3、删除
DROP DATABASE [IF EXISTS] 数据库名;
4、使用
USE 数据库名
2.3.2、表操作(前提:use 该数据库)
1、创建
语法:
CREATE TABLE 表名(
字段1 字段1类型[COMMENT 字段1注释],//逗号分隔字段
字段2 字段2类型[COMMENT 字段2注释],
...//可选参数
字段n 字段n类型[COMMENT 字段n注释] //最后一个字段后没有逗号
)[COMMENT 表注释];
2、查询:
-
查询当前数据库所有表
SHOW TABLES;
-
查询表结构
DESC 表名;
-
查询指定表的建表语句
SHOW CREATE TABLE 表名
//ENGINE=InnoDB 存储引擎 InnoDB //DEFAULT CHARSET=utf8 默认字符集 utf8
3、修改
- 添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度)[comment 注释] [约束];
案例:为emp表增加一个新的字段“昵称”,为nicename,类型为varchar(20).
ALTER TABLE emp ADD nickname varchar(20) comment '昵称';
- 修改字段
修改指定字段数据类型:
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
修改字段名和数据类型:
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型(长度)[comment 注释] [约束];
案例:将emp表中nickname 字段修改为username ,类型为varchar(30).
ALTER TABLE emp CHANGE nickname username varchar(30);
- 删除字段:
删除指定字段:
ALTER TABLE 表名 DROP 字段名;
案例:删除emp表中的字段username删除:
ALATER TABLE emp DROP username;
- 修改表名:
ALTER TABLE 表名 RENAME TO 新表名;
案例:将emp的表名修改为employee.
ALTER TABLE emp RENAME TO employee;
4、删除:
-
删除表:
DROP TABLE [IF EXISTS] 表名;//删除表时表中数据全部被删除。
-
删除指定表,并重新创建该表:
TRUNCATE TABLE 表名;//其中数据全部清空,只留下表结构
DDL总结:
2.4、DML:数据库操作语言
1、添加数据:(INSERT)
- 给指定字段添加数据:
INSERT INTO 表名(字段名1,字段名2,...)VALUES(值1,值2,...);
- 给全部字段添加数据
INSERT INTO 表名 VALUES(值1,值2,...);
- 批量添加数据
INSERT INTO 表名(字段名1,字段名2,...)VALUES(值1,值2,...),(值1,值2,...),...(值n);
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...)... ;
注意:
插入数据时,指定的字段顺序与值一一对应。
字符串和日期类型数据应包含在引号中。
插入的数据大小,应该在字段的规定范围内。
2、修改数据:(UPDATE)
- 修改指定字段数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2,... WHERE 条件;
注意:
修改语句时如果没有加WHERE 和条件,则会修改整张表中的数据
3、删除数据:(DELETE)
- 删除指定数据:
DELETE FROM 表名 WHERE 条件
注意:
删除语句没有加WHERE 和条件,则会删除整张表中的数据
DELETE 语句不能删除某个字段的值,(UPDATE)
.
练习:
1、DDL-表操作;
1.1、进入MYSQL
1.2、查看数据库并 创建一个数据库,名为HMQ_A(当数据库中已有改名称的数据库时,改语句不会执行,并报错,数据库已存在。)
1.3、再次创建HMQ-A,
1.4、删除数据库HMQ_A
案例:表操作:
根据需求创建表(设计合理的数据类型、长度)
设计一张员工信息表,要求如下:
1.编号(纯数字)
2.员工工号(字符串类型,长度不超过10位)
3.员工姓名(字符串类型,长度不超过10位)
4.性别(男/女,存储一个汉字)
5.年龄(正常人年龄,不可能存储负数)
6.身份证号(二代身份证号均为18位,身份证中有X这样的字符)
7.入职时间(取值年月日即可)
//创建表:emp员工表
//unsigned:无符号
CREATE TABLE emp(
id int comment '标号',
workid varchar(10) comment '工号' ,
name varchar(10) comment '姓名',
sex varchar(1) comment '性别',
age tinyint unsigned comment '年龄',
idcard char(18) comment '身份证号',
entrydate date comment '入职时间'
)comment '员工号';
创建员工表emp成功
查看emp表结构:
案例:为emp表增加一个新的字段“昵称”,为nicename,类型为varchar(20).
ALTER TABLE emp ADD nickname varchar(20) comment '昵称';
案例:将emp表中nickname 字段修改为username ,类型为varchar(30).
ALTER TABLE emp CHANGE nickname username varchar(30);
案例:删除emp表中的字段username删除:
ALATER TABLE emp DROP username;
案例:将emp的表名修改为employee.
ALTER TABLE emp RENAME TO employee;
2、DML:对数据库表中数据进行增删改操作: