常见数据类型介绍
- 整数类型:INT
- 小数类型:DOUBLE
- 字符类型:VARCHAR(字符个数)
- 日期类型:
DATE 表示年月日
TIMESTAMP 表示年月日时分秒,如果不插入数据,会自动保存插入同一条记录其他字段的时间
DDL
操作数据库
- DDL Data Definition Language 数据定义语言
- 操作范围:管理数据库,管理数据表
- 使用的关键字:
增:CREATE
删:DROP
改:ALTER
查:SHOW
一、查询
-- 一、查询
-- 1.查看当前存在所有数据库
SHOW DATABASES;
-- 2.使用指定的数据库
-- USE 库名;
USE offcn;
-- 3.查询当前所在库:需要使用到一个函数
SELECT DATABASE();
-- 4.查询数据库的字符集
SHOW CREATE DATABASE library;
二、创建
-- 二、创建数据库
-- 语法:CREATE DATABASE [IF NOT EXISTS] 库名;
CREATE DATABASE library;
CREATE DATABASE IF NOT EXISTS library;
CREATE DATABASE IF NOT EXISTS aaa;
三、删除
-- 三、删除数据库
-- 语法:DROP DATABASE [IF EXISTS] 库名;
DROP DATABASE aaa;
DROP DATABASE IF EXISTS aaa;
四、修改
-- 四、修改数据库
-- 修改数据库的字符集
ALTER DATABASE library CHARACTER SET utf8;
操作数据表
一、查询
-- 一、查询表
-- 查看数据库中的所有表
SHOW TABLES;
-- 查询表结构
DESC book;
-- 查询表的字符集
SHOW CREATE TABLE book;
二、创建
-- 二、创建表
/*
语法:CREATE TABLE [IF NOT EXISTS] 表名(
字段名1 数据类型 [约束],
字段名2 数据类型 [约束],
...
字段名n 数据类型 [约束]
);
*/
CREATE TABLE IF NOT EXISTS books(
id INT,
b_name VARCHAR(30),
price DOUBLE,
author VARCHAR(20),
publishDate DATE
);
三、修改
-- 三、修改表
/*
同样是修改,
修改字段名,使用的关键字是:CHANGE
修改字段的数据类型,使用的关键字是:MODIFY
*/
-- 修改表名
ALTER TABLE books RENAME TO book;
-- 添加一个字段
ALTER TABLE book ADD COLUMN type VARCHAR(20);
-- 修改表字段的数据类型
ALTER TABLE book MODIFY COLUMN price INT;
-- 修改表字段的名称
ALTER TABLE book CHANGE COLUMN type class VARCHAR(20);
-- 删除表中的字段
ALTER TABLE book DROP COLUMN class;
-- 修改表的字符集
ALTER TABLE book CHARACTER SET gbk;
四、删除
-- 4.删除表
DROP TABLE book;
DROP TABLE IF EXISTS book;
数据表约束的介绍
字段的约束:对字段的数据的一些限定
分类:
主键约束:PRIMARY KEY,作用:限定字段的值唯一且不能重复,一个表只能有一个主键
唯一键:UNIQUE,作用:限定字段的值唯一
不为空:NOT NULL,作用:添加的字段值不能是空,即必须要有值
默认值:DEFAULT,作用:当某些字段不去添加值的时候,会有一个默认的值
外键:FOREIGN KEY,作用:表示表与表的关联
检查:CHECK,作用:当添加一个字段值的时候,判断这个值是否在允许的情况内
DML
- DML:Data Manipulation Language 数据操作语言
- 操作主要是针对数据进行增删改
- 操作:
增:INSERT
删:DELETE
改:UPDATE
插入数据
/*
语法1:INSERT INTO 表名(字段名1, 字段名2, ...) VALUES(值1, 值2, ... );
注意事项:
1、表名之后的字段罗列,要和VALUES之后的值一一对应
2、抛开约束的影响,表名后面罗列了几个字段,将来添加的时候就只添加这几个字段的值
3、如果想要对表中的所有数据都添加值,则可以将语法简化为:
INSERT INTO 表名 VALUES(值1, 值2, ... );
这种情况下,如果某一个字段的值不想添加,则必须用null占位
4、如果一次想插入多行数据,可以写成:
INSERT INTO 表名
VALUES(值1, 值2, ... ), (值1, 值2, ... ), (值1, 值2, ... );
语法2:INSERT INTO 表名 SET 字段名1 = 字段值1, 字段名2 = 字段值2, ...;
比较语法1和语法2:
1、语法1相较于语法2更加连贯易用,所以语法1使用很多
2、语法1可以一次插入多条记录,但语法2一次只能插入一条记录
*/
INSERT INTO books SET b_name = '二十四史', price = 400, class = '中国历史';
修改数据
/*
语法:UPDATE 表名 SET 字段名 = 字段值 WHERE 筛选条件;
注意事项:修改数据的时候,如果不加筛选条件,会对整个表的数据全都做出修改
*/
UPDATE books SET price = 6 WHERE id = 14;
UPDATE books SET publishDate = '2000-1-1';
删除数据
语法1:DELETE FROM 表名 WHERE 筛选条件;
注意事项:删除数据的时候,如果不加筛选条件,会对整个表的数据全都进行删除
语法2:TRUNCATE TABLE 表名;TRUNCATE只能进行全表数据的清空操作
TRUNCATE和DELETE清空表数据的区别
(1)TRUNCATE清空全表数据的效率要比DELETE要高
(2)TRUNCATE只能删除整个表的数据,但DELETE更加灵活
(3)TRUNCATE删除不会返回删除的记录个数,DELETE删除会返回删除了几条记录
版权声明:本文为weixin_45233415原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。