1.数据库的操作
- 查看所有的数据库
show databases;
- 创建数据库
create database if not exists 库名;
- 删除数据库
drop database if exists 库名;
- 选中库 切换当前数据库
use 库名;
- 查看创建数据库语句
show create database 库名;
2 .数据表的操作
- 查看所有表
show tables;
- 创建表
create table if not exists 表名(
列名 类型 【约束】,
列名 类型 【约束】,
....
);
- 删除表
drop table if exists 表名;
- 查看表结构
desc 表名;
- 查看创建表语句
show create table 表名;
练习:
1、创建分类表
分类表名称:category
分类表中有:分类ID和分类名称两个字段
分类ID:cid,为整型,
分类名称:cname,为字符串类型,最大允许填写100长度的字符串
CREATE TABLE IF NOT EXISTS category(
cid INT,
cname VARCHAR(100)
)
2、创建测试表
测试表名称:test1
测试表中有:测试ID和测试时间两个字段
测试ID:tid,为整型
测试时间:tdate,为年月日的日期类型
CREATE TABLE test1(
tid INT,
tdate DATE
)
3、创建学生表
学生表名称:student
学生表中有:学号, 姓名, 年龄, 性别, 邮箱五个字段
学号:sid为整型且最大长度为6
姓名:sname为字符串类型,最大允许填写30长度的字符串
年龄: sage为整型且最大长度为3
性别: ssex为字符串类型,最大允许填写2长度的字符串
邮箱: semail为字符串类型,最大允许填写50长度的字符串
CREATE TABLE student(
sid INT(6),
sname VARCHAR(30),
sage INT(3),
ssex VARCHAR(2),
semail VARCHAR(50)
)
查询表结构
DESC student;
查询创建表语句
SHOW CREATE TABLE student;
删除表
DROP TABLE IF EXISTS test1;
3 修改表操作(了解)

一般修改表结构,最多进行字段的添加操作;
alter table 表名 add 列名 类型(长度) 约束;
作用:修改表添加列.
例如:
#1,为分类表添加一个新的字段为 分类描述 cdesc varchar(20)
ALTER TABLE category ADD cdesc VARCHAR(20);
alter table 表名 modify 列名 类型(长度) 约束;
作用:修改表修改列的类型长度及约束.
例如:
#2, 为分类表的描述字段进行修改,类型varchar(50)
ALTER TABLE category MODIFY cdesc VARCHAR(50);
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
作用:修改表修改列名.
例如:
#3, 为分类表的分类名称字段进行更换 更换为 description varchar(30)
ALTER TABLE category CHANGE cdesc description VARCHAR(30);
alter table 表名 drop 列名;
作用:修改表删除列.
例如:
#4, 删除分类表中description这列
ALTER TABLE category DROP description;
rename table 表名 to 新表名;
作用:修改表名
例如:
#5, 为分类表category 改名成 category2
RENAME TABLE category TO category2;
alter table 表名 character set 字符集(了解);
作用:修改表的字符集
例如:
#6, 为分类表 category 的编码表进行修改,修改成 gbk
ALTER TABLE category CHARACTER SET gbk;3.
3.DML数据操作语言(重点)
DML(Data Manipulation Language)数据操作语言,主要是针对数据表做增、删、改操作。
主要涉及的关键字有:
insert 添加
update 修改
delete 删除
下面以学生表为例给大家讲解这三种操作

1 .添加操作
- 给指定列添加数据
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
- 给全部列添加数据
INSERT INTO 表名 VALUES(值1,值2,…);
此方法不推荐使用,因为无法确保列与值的个数一一对应,容易出错。
注意:
1. 插入值时要与值的个数, 顺序和字段类型, 以及约束保持一致.
2. 插入值的长度要小于或等于设置的字段长度.
- 批量添加数据
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
#向学生表student中添加一条记录
INSERT INTO student(sid, sname, sage, ssex, semail) VALUES(1, '柳岩', 18, '女', 'liuyan@163.com');
#字段名是否可以省略不写 ==> 可以省略(不建议省略)
INSERT INTO student VALUES(2, '王冰冰', 20, '男', 'bingbing@126.com');
INSERT INTO student VALUES(3, '宝强绿', 50, '人妖王', 'baoqiang@126.com');
#批量添加数据
#向学生表中添加多行记录
INSERT INTO student VALUES(4, '黄渤', 18, '男', 'huangbo@163.com'),
(5, '刘涛', 18, '女', 'liutao@163.com'),
(6, '张艺兴', 30, '男', 'xiaomianyang@163.com')
2 .修改操作
- 修改表数据
UPDATE 表名 SET 列名1=值1, 列名2=值2, … [WHERE 条件] ;
注意:
修改语句中如果不加条件,则将所有数据都修改!
像上面的语句中的中括号,表示在写sql语句中可以省略这部分
#需求: 修改学生表中性别(不添加条件的修改慎用)
UPDATE student SET ssex='男';
#需求: 根据sid=1修改这个学生的性别;
UPDATE student SET ssex='女' WHERE sid=1;
/*
思考: 修改时是否可以根据姓名去修改性别,
如果出现同名的情况, 会出现问题, 修改时不建议根据姓名修改;
要通过sid来修改, 因为sid是唯一的
*/
#同时修改多个字段
UPDATE student SET sage=38, ssex='女' WHERE sid=6;
3 .删除操作
- 删除数据
第一种方式:
DELETE FROM 表名 [WHERE 条件] ;
第二种方式:
TRUNCATE table 表名; #将表中的数据清空
#需求: 将sid=4删除这个学生信息
DELETE FROM student WHERE sid = 4;
#需求:将表中的数据全部删除
DELETE FROM student;
#需求:将表中的数据全部清空
TRUNCATE TABLE student;
/*
区别:(面试题)
delete删除是一行一行删除, 后边可以跟条件, 而truncate删除后不能跟条件
delete删除是一行一行删除, 删除效率较慢, 而truncate删除是将表中结构删除又重新创建了一张一模一样的表结构, truncate删除效率要高于delete删除
*/