Mysql CURD复习(数据库、表、数据)

时间:2022-01-03 05:56:47

###############################
数据库的CURD:
C: create database if not exists tp5_test default charset utf8;
R: show databases;
U: alert database tp5_test character utf8 collate utf8_general_ci;
D: drop database if exists tp5_test;

数据表的CURD:
C:
CREATE TABLE IF NOT EXISTS 数据表名称 (
字段名称1 [AS 别名] 字段类型 [约束条件] [DEFAULT 默认值] [COMMENT 字段注释],
字段名称2 [AS 别名] 字段类型 [约束条件] [DEFAULT 默认值] [COMMENT 字段注释],
字段名称3 [AS 别名] 字段类型 [约束条件] [DEFAULT 默认值] [COMMENT 字段注释],
......
)ENGINE = 表存储引擎 DEFAULT CHARSET = 默认编码集 AUTO_INCREMENT = 自增主键起始值;
example:
CREATE TABLE IF NOT EXISTS staff (
id INT(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '编号',
name VARCHAR(30) NOT NULL COMMENT '姓名',
sex TINYINT(2) unsigned NOT NULL DEFAULT 1 COMMENT '性别1男0女',
salary FLOAT(10,2) NOT NULL DEFAULT 2000.00 COMMENT '工资',
dept VARCHAR(20) NOT NULL DEFAULT '开发部' COMMENT '部门' ,
hiredate DATE NOT NULL DEFAULT '0000-00-00' COMMENT '入职日期',
PRIMARY KEY (id)
)ENGINE = MyISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1001;

R:
DESC staff;// 查看表结构
SHOW TABLES;

U:
ALTER TABLE 表名 [ADD ...] [DROP ... ] [CHANGE ...] [ RENAME ...]
example:
#添加新字段:age(年龄),要求整型、无符号、不为空、默认值为22,加到sex字段后面
ALTER TABLE `tp5_staff` ADD age TINYINT(3) UNSIGNED NOT NULL DEFAULT '22' AFTER sex;

D:
#如果有tp5_temp3表,就执行删除操作
DROP TABLE IF EXISTS tp5_temp3;

数据的CURD:
C:
INSERT 表名 (字段列表) VALUES (值列表);
example:
INSERT staff (id,name,sex,salary,dept,hiredate)
VALUES (NULL,'郭靖',1,3500,'财务部','2012-12-10'),
(NULL,'洪七公',0,3865.38,'开发部','2010-02-19'),
(NULL,'杨过',1,5302.56,'市场部','2014-09-22'),
(NULL,'小龙女',0,3500,'客服部','2010-01-20');

R:
SELECT 字段列表 WHERE 数据表
[GOURP BY 分组字段] [HAVING 分组查询条件]
[ORDER BY 排序字段] [LIMIT [起始索引],显示数量]
example:
SELECT dept AS 部门, ROUND(MAX(salary),0) AS 最高工资
FROM tp5_staff
GROUP BY dept
ORDER BY salary DESC;

U:
UPDATE 表名
SET 字段名=表达式 [, 字段名=表达式 ...]
[WHERE 更新条件]
[ORDER BY 更新顺序]
[LIMIT 限制更新记录数量]
example:
UPDATE `tp5_staff` SET salary = salary + 500
WHERE dept = '开发部';

D:
DELETE FROM tp5_temp3 WHERE id IN (1009,1010);
# 清除表中全部记录,重置自增主键为 1
TRUNCATE TABLE tp5_temp3;

复制表:
# 获取源表完整结构信息
CREATE TABLE tp5_temp4 LIKE tp5_staff ;

#将源表tp5_staff中全部记录插入到目标表tp5_temp4中
INSERT tp5_temp4 SELECT * FROM tp5_staff;

#查看源表tp5_staff表结构
DESC tp5_staff ;

#查目标表tp5_temp表结构
DESC tp5_temp4 ;
###############################