基本概念
数据库 Database :存储数据的容器
表 Table : 在数据库中存储的基本结构,它由行和列组成
行 Row : 表中的一条记录
列 Column : 表中的字段,定义了数据的类型和约束
数据类型
数据值 如 INT(整型),FLAOT(浮点型) ,DECIMAL (精确小数点)
字符串 如 VARCHAR(可变长度字符), CHAR(定长字符),TEXT(存储长文本)
日期和时间想 如 DATE(存日期),TIME(存时间)
DATETIME(存日期和时间('1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'))
TIMESTAMP(计算机时间( '1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07'))
SQL语言
DDL(数据库定义语言) 如 create(创建) alter(改变) drop(消除) 定义数据库结构
DML(数据库操作语言) 如 insert(插入) update(更新) delete(删除) 处理表中数据
DQL(数据库查询语言) 如 select 查询表中的数据
DCL(数据库控制语音) 如grant(授用户权) revoke(撤用户权)
数据库和表 属于数据结构 表中行属于数据 表中列是限制数据类型
增删改查
增(表结构的建立)
创建一个数据库
GREATE DATABASE
创建一个表
GRATE TABLE (字段名 字段类型,字段名 字段类型....)
CREATE DATABASE Student DEFAULT CHAR SET UTF8;//创建一个数据库
USE Student;//使用一个数据库CREATE TABLE StudentScores(score INT ,studentName VARCHAR(8),address CHAR(10) )
//创建一个表时候要选择一个数据库建一个表时候要填写字段名 字段类型,依此绑定一个数据表的结构
增(表结构数据插入 )
全字段插入即表结构中所有的(字段名,字段类型)
INSERT INTO 表名 [(字段名 字段类型...) ] VALUE(数据,...)
[]不写里面的(字段名 字段类型)默认全字段插入
单字段插入即表结构中某个(字段名 字段类型)
单字段数据插入
INSERT INTO 表名 (字段名 字段类型) VALUE (数据)
多个数据同字段名同字段类型插入
INSERT INTO 表名 (字段名 字段类型...) VALUES(数据,...) ,(数据...),(数据...)
//, 逗号为分割数据集体插入,多个数据插入时候写完(字段名 字段类型...)
// VALUES 用于多数据插入 VALUE 用于单数据插入
# 创建一个数据库
CREATE DATABASE student DEFAULT CHARSET UTF8;
# 使用一个数据库
USE student;
# 创建一个表
CREATE TABLE StudentScores(score INT ,studentName VARCHAR(8),address CHAR(10) );
# 插入多行数据(全字段)
INSERT INTO StudentScores (score ,studentName,address ) VALUES (90,'立马24','不好意思') ,(95,'快56','不好意思' ),(95,'909','不好意思') ,(23,'看3','不好意思') ,(36,'许库908','酒精') ,(49,'许库1','不删') ;
# 插入单行数据(全字段)
INSERT INTO StudentScores (score ,studentName,address ) VALUE (87,'人言喊着','行');
# 插入单行数据(单字段)
INSERT INTO StudentScores (score ) VALUE (21);
运行结果
改(字段名)
注意如果用于表中字段名的(增删改) 一般前面会带ALTER关键字
改字段名或者字段类型 关键字 CHANGE
字段名和字段类型全改
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新字段类型
改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧字段类型
改字段类型(注意的是这种方式,不容易区分是否改了字段类型,
如遇到需要改字段类型,建议全改)
ALTER TABLE 表名 CHANGE 旧字段名 旧字段名 新字段类型
# 原表结构
CREATE TABLE StudentScores(score INT ,studentName VARCHAR(8),address CHAR(10) );
# 改全字段(字段名 字段类型)
ALTER TABLE StudentScores CHANGE score yearScore VARCHAR(9);
# 改字段名
ALTER TABLE StudentScores CHANGE yearScore score INT;
# 改字段类型
ALTER TABLE StudentScores CHANGE score score VARCHAR(8);
添加字段名 关键字 ADD 默认在字段名最后添加一个新字段
ALTER TABLE 表名 ADD 字段名 字段类型
指定添加位置
在某个字段名之后
ALTER TABLE 表名 ADD 字段名 字段类型 AFTER 字段名
在所有字段最前面
ALTER TABLE 表名 ADD 字段名 字段类型 FIRST
# 添加新字段
ALTER TABLE StudentScores ADD fathername CHAR(4) AFTER address;
# 添加新字段在address字段前
ALTER TABLE StudentScores add serial CHAR(4) FIRST ;
删(字段名)
删字段 关键字 drop
ALTER TABLE 表名 DROP 字段名
# 删除fathername字段
ALTER TABLE StudentScores DROP fathername;
查
查 特定的字段名中的数据 关键 WHERE 字段名 = 数值
SELECT * FROM 表名 WHERE 字段名 = 数值 (满足当前条件时候查询全字段)
SELECT 字段名 FROM 表名 WHERE 字段名 = 数值 (满足当前条件时候查询选择的字段名)
# 查询score字段
SELECT score FROM StudentScores WHERE score=90;
# 查询全字段e字段
SELECT * FROM StudentScores WHERE score=90;
根据查询 可以进行 特定的删除 关键字 DELETE FROM
DELETE FROM 表名 WHERE 字段名 = 数值 (满足当前条件时候删除数据)
# 删除满足条件的数据
DELETE FROM StudentScores WHERE score<90;
根据查询 可以进行 设置数据
UPDATE 表名 SET 字段名= 数值 WHERE 字段名 = 数值 (满足当前条件时候设置数据)
# 设置满足条件的数据
UPDATE StudentScores SET address='可以了' WHERE score<95;
注意
DELETE FROM 表名 直接使用删除表数据,保留表结构(字段名),不会清理内存,属于可回退的操做
UPDATE 表名 SET 字段名=数值 直接使用会将数据中当前的字段名,全部设置相同的数据
当然如果真的不需要该表
使用 TRUNCATE 表名 ,删除表数据,保留表结构(字段名),清理内存,这个是不可回退的操作
显示
显示数据库
show databases 显示所有的数据库
显示创建的数据库
show create database 数据库名 显示数据库的创建信息
展示表结构
DESC 表名 包含(字段名 字段类型)
# 展示数据库
SHOW DATABASES ;
# 展示数据库student的创建信息
SHOW CREATE database Student;
#展示表结构
DESC studentscores;
排序
关键字 ORDER BY 默认升序 加了DESC 降序
# 默认升序
SELECT (moneyAmount) FROM personnelNeeded ORDER BY moneyAmount;
# 默认降序
SELECT (moneyAmount) FROM personnelNeeded ORDER BY moneyAmount DESC ;
# 原始数据
SELECT (moneyAmount) FROM personnelNeeded ;
巧学巧记
SQL 语言不关系是否用大小写,最好用大写写关键字
数据库和表 属于数据结构 表中行属于数据 表中列是限制数据类型
显示数据库 用 SHOW, 显示表结构 用 DESC
数据结构创建用CREATE 表的话要写字段名和字段类型
数据插入用 INSERT INTO , VALUE 是往里面带数值 多行插入数值 需用 VALUES
字段名修改前面要带ALTER FROM 表名
修改用CHANGE 增加用ADD 删除用DROP
查询方便进行后续的某些数据的修改和删除
默认升序 ORDER BY 默认降序 DESC
修改为UPDATE 表名 SET 字段名= 数值
删除为 DELETE FROM 表名 ,
用 WHERE 字段名 = 数值要牢记
实在想删整体表,要多考虑,常备份可免烦恼