MYSQL常见命令-Java学习之数据库学习

什么是数据库

  1. 保存数据的仓库,存储数据。

  2. 所有的数据库都是以文件的方式保存在电脑中

  3. SQL语句: Structured Query Language结构化查询语言,用来管理和维护数据库。这是一种所有关系型数据通用的语言。

SQL语句分类

  1. Data Definition Language (DDL数据定义语言,包括:create,drop,alter(修改)语句)

  2. Data Manipulation Language(DML数据操纵语言,包括:增删改 insert,delete,update)

  3. Data Query Language(DQL数据查询语言:包括:查询,select)

  4. Data Control Language(DCL数据控制语言,包括:创建用户,给用户权限,greate(分配权限给用户,revoke(废除数据库中某用户权限)

SQL中的注释

/*
多行注释
*/
-- 注释内容
注释内容mysql特有的单行注释:#

DDL(Data Definition Language)创建数据库

-- DDL数据定义语言:创建数据库,表的。
--CREATE DATABASE 数据库名;
CREATE DATABASE huihui;

--CREATE DATABASE IF NOT EXISTS 数据库名; 如果不存在才创建数据库,存在就不创建
CREATE DATABASE IF NOT EXISTS test01;

--CREATE DATABASE 数据库名 character set 字符集;
CREATE DATABASE xlei CHARACTER SET gbk;

--查询全部数据库
SHOW DATABASES;

--SHOW CREATE DATABASE 数据库名; :查看创建数据库的脚本代码
SHOW CREATE DATABASE xlei;

--ALTER DATABASE db3 DEFAULT CHARACTER SET utf8;修改数据库的字符集
ALTER DATABASE student3 DEFAULT CHARACTER SET utf8;

--drop --表示删除数据库或表

DROP DATABASE 数据库名; 慎用!

DROP DATABASE xlei;

--select -- 查询当前正在用的数据库
SELECT DATABASE();
--切换数据库
USE test01;

DDL(Data Definition Language)创建表

/*
CREATE TABLE 表名 (
字段名1 字段类型1,
字段名2 字段类型2
);
*/
CREATE TABLE student (
id INT,
NAME VARCHAR(20),
birthday DATE
);
--DDL查看表本身的信息结构
SHOW TABLES; # 展示当前数据库下全部的表
--DESC 表名;
DESC student; #查看表的结构信息
--SHOW CREATE TABLE 表名;
SHOW CREATE TABLE student;#展示表的创建脚本

DDL删除表

--CREATE TABLE 表名 LIKE 其他表; 复制一个表(复制表的结构,不包含数据)
CREATE TABLE student01 LIKE student;
-- DROP TABLE 表名;
DROP TABLE student01;
-- DROP TABLE IF EXISTS 表名; 表存在才删除,避免操作失败!
DROP TABLE IF EXISTS student01;

DDL修改表结构

-- ALTER TABLE 表名 ADD 字段名 类型; 添加字段
ALTER TABLE student ADD email VARCHAR(20);
--ALTER TABLE 表名 MODIFY 字段名 新的类型; 修改字段
ALTER TABLE student MODIFY email VARCHAR(30);
--ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型; 修改字段名称
ALTER TABLE student CHANGE email phone VARCHAR(11);
--ALTER TABLE 表名 DROP 字段名; 删除某个字段
ALTER TABLE student DROP phone;
--RENAME TABLE 表名 TO 新表名; 修改表名称
RENAME TABLE student TO teacher;
--ALTER TABLE 表名 character set 字符集; 修改表的字符集
ALTER TABLE teacher CHARACTER SET gbk;

DML插入记录(Data Manipulation Language 数据操控语言)

CREATE TABLE USER (
id INT,
NAME VARCHAR(20),
birthday DATE,
sex CHAR(2),
address VARCHAR(50)
);

INSERT -- 表示往表里插入记录

--INSERT INTO 表名 (字段名1, 字段名2...) VALUES (字段值1, 字段值2...);
INSERT INTO USER (id , NAME , sex , address) VALUES(1,'古扎','女','广州');
-- 不写字段插入数据(完全对应字段值,否则报错!)
INSERT INTO USER VALUES (3, '王五', '2019-01-02', '男', '北京');
-- 一条SQL插入多条数据
--INSERT INTO 表名 (字段名1, 字段名2...) VALUES (字段值1, 字段值2...) , (字段值1, 字段值2...)...;
INSERT INTO USER (id , NAME , sex,address) VALUES (2,'老师','女','中国北京'),(4,'林老师','女','中国北京')
,(5,'多老师','女','中国北京');

DML修改表记录

--UPDATE 表名 SET 字段名=新的值;
UPDATE USER SET birthday = '2019-06-05';
--UPDATE 表名 SET 字段名=新的值 WHERE 条件
UPDATE USER SET birthday= '2018-08-08' WHERE NAME = '老师';
-- 根据条件一次修改多个值
UPDATE USER SET address ='日本东京' , birthday = '1997-09-09' WHERE NAME = '多老师';

DML删除表记录

-- DELETE FROM 表名;会干掉表中全部的数据。
DELETE FROM USER;
--DELETE FROM 表名 WHERE 条件;
DELETE FROM USER WHERE id = 4;
--TRUNCATE TABLE 表名;
/*

  • delete是将表中的数据一条一条删除
  • truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样
    */
    TRUNCATE TABLE USER;

DQL查询表记录((Data Query Language 数据查询语言 )

--DQL没有条件的简单查询
--SELECT -- 表示查询
--SELECT 字段名1, 字段名2, ... FROM 表名;
SELECT NAME , address , sex FROM USER; # 查询某些字段信息
--SELECT * FROM 表名;
SELECT * FROM USER; # 查询全部字段和数据信息 , 全表查询!

DQL别名查询 别名可以省略AS

--SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名;
SELECT NAME AS 叫啥 , address AS 地址 FROM USER;

--SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名 AS 表别名;
SELECT MV.NAME AS 亲爱的 , MV.address AS 地址 FROM USER AS MV;

清除重复值

-- SELECT DISTINCT 字段名 FROM 表名;

  • select DISTINCT address AS 全部地址 from user; 别名可以省略AS
    SELECT DISTINCT address 全部地址 FROM USER; 别名可以省略AS

查询结果参与运算

/*898989898989898989898989898989898989898989
CREATE TABLE student3 (
id int, -- 编号
name varchar(20), -- 姓名
age int, -- 年龄
sex varchar(5), -- 性别
address varchar(100), -- 地址
math int , -- 数学
english int -- 英语
);

ALTER TABLE student3 ADD math INT;

ALTER TABLE student3 ADD english INT;

INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES (/////////////////////////////);
*/
-- SELECT 列名1 + 固定值 FROM 表名;
SELECT math + 10 FROM student3;
-- SELECT 列名1 + 列名2 FROM 表名;
SELECT math+english 数学英文总分 FROM student3;
-- 查询所有的数据,统计分数总和
SELECT * , math + english 总成绩 FROM student3;
--给45岁以上的人的数学加10分,然后输出名字和该数学分数
SELECT NAME , math+10 数学分数 FROM student3 WHERE age > 45;

DQL条件查询 比较运算符

/*
>大于
<小于
<=小于等于
>=大于等于
=等于
<>!=不等于

*/
--查询math分数大于80分的学生
SELECT * FROM student3 WHERE math > 80;
--查询english分数小于或等于80分的学生
SELECT * FROM student3 WHERE english <= 80;
--查询age等于20岁的学生
SELECT * FROM student3 WHERE age = 20;
--查询age不等于20岁的学生
SELECT * FROM student3 WHERE age <> 20;
SELECT * FROM student3 WHERE age != 20;

DQL查询逻辑运算符

/*

逻辑运算符

and(&&) 多个条件同时满足
or(||) 多个条件其中一个满足
not 不满足
*/
SELECT * FROM student3 WHERE NAME = '马德' AND age = 22;
SELECT * FROM student3 WHERE NAME = '马德' && age = 22;

SELECT * FROM student3 WHERE english > 80 OR math > 80;
SELECT * FROM student3 WHERE english > 80 || math > 80;
SELECT * FROM student3 WHERE id=1 OR id=3 OR id=5;
-- SELECT * FROM 表名 WHERE 字段 in (值1, 值2, 值3);
SELECT * FROM student3 WHERE id IN(1,3,5);
DELETE FROM student3 WHERE id IN(1,3,5);

--查询出id不是7 8的学生
SELECT * FROM student3 WHERE id NOT IN (7 , 8);

--BETWEEN 值1 AND 值2 -- 表示从值1到值2范围,包头又包尾
SELECT * FROM student3 WHERE age >= 45 AND age <= 57;
SELECT * FROM student3 WHERE age BETWEEN 45 AND 57;

模糊查询like

/*
模糊查询格式: SELECT 字段 FROM 表名 WHERE 字段 LIKE '通配符字符串';

%:表示零个一个多个字符(任意多个字符)
_:表示一个字符
*/

SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';

  • 1.查询姓名中有德的人
    SELECT * FROM student3 WHERE NAME LIKE '%德%';
  • 2.查询姓马的学生
    SELECT * FROM student3 WHERE NAME LIKE '马%';
  • 3.查询姓马,且姓名有三个字的学生(一个下划线代表一个字);
    SELECT * FROM student3 WHERE NAME LIKE '马__';

查询为空的列IS NULL

SELECT * FROM student3 WHERE english IS NULL;
SELECT * FROM student3 WHERE english IS NOT NULL;
-- 查询姓名和英语成绩,如果英语为null,则显示为0分
SELECT NAME, IFNULL(english, 0) 英语 FROM student3;

alter add命令用来增加表的字段。

alter add命令格式:alter table 表名 add字段 类型 其他;

例如,在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0:
mysql> alter table MyClass add passtest int(4) default '0';

  1. 加索引
    mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);

例子: mysql> alter table employee add index emp_name (name);

  1. 加主关键字的索引
    mysql> alter table 表名 add primary key (字段名);

例子: mysql> alter table employee add primary key(id);

  1. 加唯一限制条件的索引
    mysql> alter table 表名 add unique 索引名 (字段名);

例子: mysql> alter table employee add unique emp_name2(cardnumber);

  1. 删除某个索引
    mysql> alter table 表名 drop index 索引名;

例子: mysql>alter table employee drop index emp_name;

  1. 增加字段
    mysql> ALTER TABLE table_name ADD field_name field_type;

  2. 修改原字段名称及类型
    mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

  3. 删除字段
    MySQL ALTER TABLE table_name DROP field_name;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容