文章目录
- 一、数据库的管理(创建、删除、查看、备份、恢复)
- 1.1 创建数据库
- 1.2 删除数据库
- 1.3 查询命令
- 1.4 备份数据库(需要在命令行窗口执行)
- 1.5 恢复(需要在数据库环境下执行)
- 二、数据库中的表的管理(创建、删除、修改)
- 2.1 创建表格
- 2.2 数据类型(整型、位、浮点型、字符串、时间)
- 2.3 修改表
- 三、数据库的C(Create)R(Read)U(Update)D(Delete)语句
- 3.1 insert语句
- 3.2 update语句
- 3.3 delete语句
- 3.4 select 语句
一、数据库的管理(创建、删除、查看、备份、恢复)
1.1 创建数据库
CREATE DATABASE db02
#创建数据库带utf8字集
CREATE DATABASE db02 CHARACTER SET utf8
#创建数据库带utf8字集,并带校对规则
CREATE DATABASE db03 CHARACTER SET utf8 COLLATE utf8_bin
1.2 删除数据库
DROP DATABASE db02
1.3 查询命令
SELECT * FROM t1 WHERE NAME = 'tom'
#显示数据库
SHOW DATABASES
#显示之前建立的数据库
SHOW CREATE DATABASE db01
1.4 备份数据库(需要在命令行窗口执行)
mysqldump -u root -p -B db01 db02 > f://bak.sql
1.5 恢复(需要在数据库环境下执行)
mysql -u root -p
source f://bak.sql
二、数据库中的表的管理(创建、删除、修改)
2.1 创建表格
CREATE TABLE `user`(
id INT,
`name` VARCHAR(255),
`password` VARCHAR(255),
`brithday` DATE)
CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB
2.2 数据类型(整型、位、浮点型、字符串、时间)
测试数据类型tinyint,tinyint unsigned。
CREATE TABLE t3(
id TINYINT
);
INSERT INTO t3 VALUES(-128);
CREATE TABLE t4(
id TINYINT UNSIGNED
);
INSERT INTO t4 VALUES(128);
位类型bit。
CREATE TABLE t5 (num BIT(8))
INSERT INTO t5 VALUES(1);
INSERT INTO t5 VALUES(255);
小数类型 float,double,decimal。
CREATE TABLE t6(
num1 FLOAT,
num2 DOUBLE,
num3 DECIMAL(30,20)
);
INSERT INTO t6 VALUES(99.123456789123456789,99.123456789123456789,99.123456789123456789);
SELECT * FROM t6;
字符串类型
CREATE TABLE t8(
`name` CHAR(255)
);
CREATE TABLE t9(
`name` VARCHAR(32766))CHARSET gbk;
时间类型
birthday DATE, -- 生日
job_time DATETIME,-- 记录年月日
login_time TIMESTAMP -- 登录时间
NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP);
SELECT * FROM t10;
INSERT INTO t10(birthday,job_time)
VALUES('2021-08-15','2021-08-15 12:12:12')
2.3 修改表
-- 在resume列添加新列image,varchar类型
ALTER TABLE emp
ADD image VARCHAR(32) NOT NULL DEFAULT''
AFTER RESUME
DESC emp
-- 修改job列,数据类型为varchar(60)
ALTER TABLE emp
MODIFY job VARCHAR(60) NOT NULL DEFAULT''
DESC emp
-- 删除image列
ALTER TABLE emp
DROP image
DESC emp
-- 改变表名称emp改为employee
RENAME TABLE emp TO employee
DESC employee
-- 修改表的字符集为utf8
ALTER TABLE employee CHARACTER SET utf8
DESC employee
-- 列名name改成name_id
ALTER TABLE employee
CHANGE `name` `name_id` VARCHAR(64) NOT NULL DEFAULT''
DESC employee
三、数据库的C(Create)R(Read)U(Update)D(Delete)语句
3.1 insert语句
CREATE TABLE `goods`(
id INT,
good_name VARCHAR(10),
price DOUBLE);
-- 添加数据
INSERT INTO `goods`(id,good_name,price)
VALUES(10, '小米手机', 1999);
INSERT INTO `goods`(id,good_name,price)
VALUES(10, '华为手机', 1999);
SELECT *FROM goods;
3.2 update语句
CREATE TABLE `phone`(
id INT,
phone_name VARCHAR(10),
price DOUBLE);
-- 添加数据
INSERT INTO `phone`(id,phone_name,price)
VALUES(10, '小米手机', 1999);
INSERT INTO `phone`(id,phone_name,price)
VALUES(20, '华为手机', 1999);
SELECT *FROM phone;
--更新数据
UPDATE phone
SET price = 3000
WHERE phone_name = '小米手机'
SELECT *FROM phone;
3.3 delete语句
--删除数据
DELETE FROM phone
WHERE phone_name = '小米手机'
SELECT *FROM phone;
3.4 select 语句
CREATE TABLE student(
id INT NOT NULL DEFAULT 1,
NAME VARCHAR(20)NOT NULL NOT NULL DEFAULT '',
chinese FLOAT NOT NULL NOT NULL DEFAULT 0.0,
english FLOAT NOT NULL NOT NULL DEFAULT 0.0,
math FLOAT NOT NULL NOT NULL DEFAULT 0.0
);
INSERT INTO student(id,NAME,chinese,english,math)VALUES(1,'张三',70,70,70);
INSERT INTO student(id,NAME,chinese,english,math)VALUES(2,'李四',70,71,70);
INSERT INTO student(id,NAME,chinese,english,math)VALUES(3,'王五',70,70,72);
INSERT INTO student(id,NAME,chinese,english,math)VALUES(4,'赵六',73,70,70);
INSERT INTO student(id,NAME,chinese,english,math)VALUES(5,'钱七',70,74,70);
INSERT INTO student(id,NAME,chinese,english,math)VALUES(6,'孙八',70,70,75);
INSERT INTO student(id,NAME,chinese,english,math)VALUES(7,'李九',76,77,70);
INSERT INTO student(id,NAME,chinese,english,math)VALUES(8,'周十',70,78,70);
-- 查询表中所有学生的信息;
SELECT * FROM student;
查询表中所以学生的英语成绩
SELECT `name`,english FROM student;
过滤表中的重复数据;
SELECT DISTINCT* FROM student;
SELECT DISTINCT english FROM student;
-- 统计总分
SELECT `NAME`,(chinese+english+math)FROM student;
-- 总分栏改名
SELECT `NAME`,(chinese+english+math)AS total_score FROM student;
排序
总分升序
SELECT * FROM student
ORDER BY math;
总分降序
SELECT `NAME`,(chinese+english+math)AS total_score FROM student
ORDER BY total_score DESC;
按周姓排序
INSERT INTO student(id,NAME,chinese,english,math)VALUES(8,'周十',600,78,70);
INSERT INTO student(id,NAME,chinese,english,math)VALUES(9,'周十一',78,78,70);
SELECT * FROM student
WHERE `name`LIKE'周%'
ORDER BY chinese;