数据库MySQL快速入门、总结(CRUD)
1、数据定义语言(DDL Data Definition Language)
-- DDL即进行数据库和表结构的增、删、改
-- 创数据库(db1、db2)
CREATE DATABASE db1;
CREATE DATABASE IF NOT EXISTS db2;
-- 删除数据库
DROP DATABASE db2;
DROP DATABASE IF EXISTS db2;
-- 查看数据库字符集
SHOW CREATE DATABASE db1;
-- 修改数据库字符集(utf8或gbk)
ALTER DATABASE db1 CHARACTER SET gbk;
ALTER DATABASE db1 CHARACTER SET utf8;
-- 使用数据库
USE db1;
-- 查看正在使用的数据库
SELECT DATABASE();
-- 查询数据库和查询表
SHOW DATABASES;
SHOW TABLES;
-- 创建表(tb1、tb2)
-- 表tb1
CREATE TABLE tb1(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(16),
PASSWORD VARCHAR(16)
);
-- 表tb2
CREATE TABLE IF NOT EXISTS tb2(
id INT PRIMARY KEY,
username VARCHAR(16),
PASSWORD VARCHAR(16)
);
-- 删除表
DROP TABLE tb1;
DROP TABLE IF EXISTS tb1;
-- 查看表结构
DESC tb1;
-- 修改表
-- 修改表名
ALTER TABLE tb1 RENAME TO new_tb1;
-- 修改表字符集
ALTER TABLE tb1 CHARACTER SET utf8;
ALTER TABLE tb1 CHARACTER SET gbk;
-- 增加列
ALTER TABLE tb1 ADD time1 DATE;
-- 删除列
ALTER TABLE tb1 DROP time1;
-- 修改列
ALTER TABLE tb1 CHANGE time1 new_time1 INT;
-- 修改列数据类型
ALTER TABLE tb1 MODIFY new_time1 DATE;
2、数据操作语言(DML Data Mainpulation Language)
-- DML即进行表数据的增、删、改
-- 创建新的tb1表为前提下,进行表数据的增、删、改
CREATE TABLE tb1(
INT id PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(16),
PASSWORD VARCHAR(16),
time1 DATE;
);
-- 插入数据
INSERT INTO tb1(id,username,PASSWORD,time1)VALUES(1,'zhangsan','123',NOW());
INSERT INTO tb1(id,username,PASSWORD,time1)VALUES(2,'lisi','123','2021-06-05');
INSERT INTO tb1 VALUES(3,'wangwu','123','2021-06-06');
-- 删除数据
DELETE FROM tb1 WHERE id=3;
DELETE FROM tb1 WHERE PASSWORD='123';
-- 修改数据
UPDATE tb1 SET PASSWORD='666' WHERE username='zhangsan';
UPDATE tb1 SET PASSWORD='666' WHERE id=2;
3、数据查询语言(DQL Data Query Language)
-- DQL即数据库表数据的查询
-- 在tb1表有数据的前提下,与DML终的表结构一样
-- 查询表中所有数据
SELECT * FROM tb1;
-- 仅查询用户名、密码
SELECT username,PASSWORD FROM tb1;
SELECT username 用户名,PASSWORD 密码 FROM tb1;
-- 条件查询
SELECT * FROM tb1 WHERE PASSWORD='123';
SELECT * FROM tb1 WHERE id IN(1,2);
SELECT * FROM tb1 WHERE id BETWEEN 1 AND 3;
-- 条件查询
-- '%a%'为通配符字符串,_表示一个任意字符,%表示多个任意字符
SELECT * FROM tb1 WHERE username LIKE '%a%';
-- 条件查询
SELECT * FROM tb1 ORDER BY id ASC; -- id升序
SELECT * FROM tb1 ORDER BY id DESC; -- id降序
-- 聚合函数count()、max()、min()、sum()、avg()、ifnull(列名,值)用法与如下相似
-- 统计数据个数
SELECT COUNT(id) FROM tb1;
-- 分组查询
-- 按日期分组,查询日期数据相同的个数,要求日期相同的人数要大于1
SELECT COUNT(id),username,PASSWORD FROM tb1 GROUP BY time1 HAVING COUNT(id)>1;
-- where为前限定,having为后限定,但不能同时用
SELECT * FROM WHERE id>1 HAVING PASSWORD='456'; -- 错误语法
-- 分页查询
SELECT * FROM tb1 LIMIT 0,3;-- 查询第1、2、3条数据
SELECT * FROM tb1 LIMIT 3,6;-- 查询第4、5、6条数据
4、数据控制语言(DCL Data Control Language)
-- DCL即数据库权限管理和用户管理
-- 进入数据库管理
USE mysql;
-- 查询数据库用户
SELECT * FROM USER;
-- 插入数据用户
-- CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
CREATE USER 'zhangsan'@'localhost' IDENTIFIED BY '12345';
FLUSH PRIVILEGES;-- 刷新,以方便后面数据得以修改
-- 删除用户
-- drop user '用户名'@'主机名';
DROP USER 'zhangsan'@'localhost';
-- 修改密码
UPDATE USER SET PASSWORD=PASSWORD('123e') WHERE USER='zhangsan';-- 方法一
SET PASSWORD FOR 'zhangsan'@'localhose'=PASSWORD('12345');-- 方法二
-- 查询权限
-- show grants for '用户名'@‘主机名’;
-- 授予权限
-- grant 权限列表 on 数据库名称.表名 to '用户名'@‘主机名’;
-- 撤销权限
-- revoke 权限列表 on 数据库名称.表名 from '用户名'@‘主机名’;
最后,我的复习-总结-希望可以帮助到大家!谢谢!