DDL:操作数据库

查询

查询所有的数据库
SHOW DATABASES;

创建数据库(判断,如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;

删除数据库
DROP DATABASE 数据库名称;
删除数据库(判断,如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;

使用数据库
USE 数据库名称;
查看当前使用的数据库
SELECT DATABASE();

DDL:操作表

操作表也就是对表进行增(Create)删(Retrieve)改(Update)查(Delete)。

查询当前数据库下所有表名称
SHOW TABLES;

查询表结构
DESC 表名称;

创建表
CREATE TABLE 表名 (
	字段名1  数据类型1,
	字段名2  数据类型2,
	…
	字段名n  数据类型n
);

注意:最后一行末尾,不能加逗号

数据类型

MySQL 支持多种类型,可以分为三类:

数值:

tinyint : 小整数型,占一个字节
int	:大整数类型,占四个字节
	eg : age int

double :浮点类型
使用格式: 字段名 double(总长度,小数点后保留的位数)
	eg : score double(5,2)   

日期:

date : 日期值。只包含年月日
	eg :birthday date : 

datetime : 混合日期和时间值。包含年月日时分秒

字符串:

char : 定长字符串。
	优点:存储性能高
	缺点:浪费空间
	eg : name char(10)  如果存储的数据字符个数不足10个,也会占10个的空间

varchar : 变长字符串。
	优点:节约空间
	缺点:存储性能底
	eg : name varchar(10) 如果存储的数据字符个数不足10个,那就数据字符个数是几就占几个的空间

删除表

删除表
DROP TABLE 表名;

删除表时判断表是否存在
drop table if exists 表名;

修改表

修改表名
alter table 表名 rename to 新的表名;
添加一列
alter table 表名 add 列名 数据类型;
eg:
alter table stu add address varchar(50);

修改数据类型
alter table 表名 modify 列名 新数据类型;
eg:
alter table stu modify address char(30);

修改列名和数据类型
alter table 表名 change 列名 新列明 新数据类型;
eg:
alter table stu change address addr varchar(30);

删除列
alter table 表名 drop 列名;
eg:
alter table stu drop address;

DML

DML主要是对数据进行增(insert)删(delete)改(update)操作。

添加数据

给指定列添加数据
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,…)…;

修改数据

修改表数据
update 表名 set 列名1=值1,列名2=值2  [where 条件];
注意:修改语句中如果不加条件,则将所有数据都修改!
eg:
update stu set sex ='女' where name='李四';

删除数据

删除数据
delete from 表名 [where 条件];
eg:
delete from stu where name = '李四';

删除stu表中所有数据
delete from stu;

DQL

数据查询语言,用来查询数据库中表的记录(数据)

完整语法
SELECT 
    字段列表
FROM 
    表名列表 
WHERE 
    条件列表
GROUP BY
    分组字段
HAVING
    分组后条件
ORDER BY
    排序字段
LIMIT
    分页限定

查询语法

查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据

去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

起别名
AS: AS 也可以省略

发表回复

您的电子邮箱地址不会被公开。