目录
DDL 数据定义语言,用来定义数据库对象(数据库,表,字段)
DML 数据操作语言,用来对数据库中表的数据记录进行增删改操作。
1. 数据库操作
- 查询
查询所有数据库:
SHOW DATABASES;
查询当前数据库:
SELECT DATABASE();
- 创建
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
如果要加字符集,最好使用 utf8mb4 这类字符集。
- 删除
DROP DATABASE [IF EXISTS] 数据库名;
- 使用
USE 数据库名;
2. 表操作
2.1 查询
- 查询当前数据库所有表
SHOE TABLES;
- 查询表结构
DESC 表名;
- 查询指定表的建表语句
SHOW CREATE TABLE 表名;
2.2 创建
- 创建表
注意:[...]为可选参数,最后一个字段后面没有逗号。
CREATE TABLE 表名(
字段1 字段1类型 [COMMENT 字段1注释],
字段2 字段2类型 [COMMENT 字段2注释],
字段3 字段3类型 [COMMENT 字段3注释],
......
字段n 字段n类型 [COMMENT 字段n注释]
)[COMMENT 表注释];
例:
create table table_usr(
id int comment '编号',
name varchar(50) comment '姓名',
age int comment '年龄',
gender varchar(1) comment '性别'
) comment '用户表';
2.3 数据类型
MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
案例:根据需求创建表(设计合理的数据类型、长度)
1. 编号(纯数字):id int comment '编号'
2. 员工工号(字符串类型,长度不超过10位):workid varchar(10) comment '工号'
3. 姓名(字符串类型,长度不超过10位) :name varchar(10) comment '姓名'
4. 性别(男/女,存储一个汉字):gender char(1) comment '性别'
5. 年龄(正常人年龄,不可能存储负数):age tinyint unsigned comment '年龄'
6. 身份证号(18位,有X字符的存在):incard char(18) comment '身份证号'
7. 入职时间(年月日):entrydate date comment '入职时间'
2.4 修改
- 添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
例:为emp表增加一个新的字段“昵称”为nickname,类型为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;
- 删除字段
ALTER TABLE 表名 DROP 字段名;
- 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
- 删除表
DROP TABLE [IF EXISTS] 表名;
- 删除指定表,并重新创建该表
TRUNCATE TABLE 表名;
注意:在删除表时,表中的全部数据也会被删除。
3. 添加数据
- 给指定字段添加数据
INSERT INTO 表名 (字段名1,字段名2,...)VALUES (值1,值2,...);
- 给全部字段添加数据
INSERT INTO 表名 VALUES (值1,值2,...);
- 批量添加数据
INSERT INTO 表名 (字段名1,字段名2,...)VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);
INSERT INTO 表名 VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);
注意:1.插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
2.字符串和日期型数据应该包含在引号内。
3.插入数据的大小,应该在字段的规定范围内。
insert into tb_usr(id, name, age) VALUES (005,'李四',25);
insert into tb_usr values (002,'二',34);
insert into tb_usr(id, name, age) VALUES (005,'李四',25),(003,'九',26);
insert into tb_usr values (003,'三',45),(006,'六',32);
注意:插入中文字符时,需修改当前表格式为utf8格式:alter table `tablename` convert to character set utf8;
4. 修改数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2,...[WHERE 条件];
注意:修改语句的条件可以有,也可以没有;如果没有,则会修改整张表的所有数据。
1、修改id为6的数据,将name修改为 老六,age 修改为 42
update tb_usr set name='老六',age=42 where id=6;
5. 删除数据
DELETE FROM 表名 [WHERE 条件]
注意:DELETE语句如果没有添加条件,则会删除整张表的所有数据。DELETE语句不能删除某一个字段的值(可以使用UPDATE)。
删除id为2的数据:
delete from tb_usr where id=2;