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;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值