建议:代码都使用大写,不要死记,理解,查笔记
一, 小黑窗口的SQL的使用
1、MySQL的DDL(操作数据库和表,增删改查,使用)
2、MySQL的DML(操作表记录,增删改)
3、MySQL的DQL(操作表记录,查)
4、MySQL启动服务的操作
A.手动启动
a.计算机 -> 管理 -> 服务和应用程序 -> 服务
b.任务管理器 -> 服务
B.普通CMD小黑窗口
a.指令: servers.msc "微软ms控制c"
C.管理员CMD小黑窗口
a.开启服务 net start mysql
b.关闭服务 net stop mysql
5、MySQL的登录和退出的操作
A.登录 a.登录自己的 mysql -u root -p 密码
b.登录别人的(别人在安装的时候,勾选远程访问)
方式1: mysql -h 127.0.0.1 -u root -p 密码
方式2: mysql --host=127.0.0.1 --user=root --password==密码
B.退出 a. exit
b. quit
二, MySQL的DDL(操作数据库和表,增删改查,使用)
I.数据库的操作:【增,删,改,查,使用】
1、创建数据库的操作
A.基本创建操作
CREATE DATABASE 数据库名称; ---> create databases 数据库名称;
B.综合创建操作(判断是否存在,指定字符集"不会出现中文乱码问题")
CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET 具体的编码;---> create database if not exists 数据库名称 character set 具体编码
2、查询数据库的操作
A.显示所有的数据库
SHOW DATABASES; ---> show databases;
B.显示数据库的创建语句(隐含的作用:查看数据库的字符集)
SHOW CREATE DATABASE 数据库名称; ---> show create database 数据库名称;
3、修改数据库的操作
A.修改数据库的字符集
ALTER DATABASE 数据库名称 CHARACTER SET 具体的编码; ---> alter database 数据库名称 character set 具体的编码;
4、删除数据库的操作
A.基本的删除操作
DROP DATABASE 数据库名称; ---> drop database 数据库名称;
B.判断是否存在,存在则删除的操作
DROP DATABASE IF EXISTS 数据库名称; ---> drop database exists 数据库名称;
5、使用数据库的操作
A.使用数据库
USE 数据库名称; ---> use 数据库名称;
B.查询正在使用当中的数据库
SELECT DATABASE(); ---> select database();
II.表的操作【增,删,改,查】
1、查询表的操作
A.查询数据库当中所有的表信息
SHOW TABLES; ---> show tables;
B.查询某个具体表的结构(每个字段的信息)
DESC 表名称; ---> desc 表名称;
2、创建表的操作
A.基本的创建格式
CREATE TABLE 表名称 (列名1 类型1,列名2 类型2,列名3 类型3);---> create table 表名称(列名1 类型1,......);
B.复制表的操作
CREATE TABLE 新表名称 LIKE 原始表; ---> create table 新表名称 like 原始表;
C.常用的数据类型
a.整数类型 int
b.小数类型 double(4,1) 4表示有4个数字,1表示精确小数点后1位
c.字符串类型 varchar(24) 24表示最大容纳24个字符
d.日期类型 date 需要手动的插入数据到数据库当中
e.时间戳类型 timestamp 可以自动添加当前的系统时间
3、删除表的操作
A.基本的删除操作
DROP TABLE 表名称; ---> drop table 表名称;
B.判断是否存在,存在则删除的操作
DROP TABLE IF EXISTS 表名称; ---> drop table exists 表名称;
4、修改表的操作
A.修改表名称
ALTER TABLE 原始表名称 RENAME TO 新的表名;
B.修改表的字符集
ALTER TABLE 表名称 CHARACTER SET 字符集编码;
C.修改列名
ALTER TABLE 表名称 CHANGE 旧列名称 新列名称 新列数据类型;
ALTER TABLE 表名称 MODIFY 要修改的列名 新的数据类型;
D.增加一列
ALTER TABLE 表名称 ADD 列名称 数据类型;
E.删除一列
ALTER TABLE 表名称 DROP 列名称;
三, MySQL的DML(操作表记录,增删改)
1、表记录的添加语句
A.添加指定列的数据
INSERT INTO 表名称 (列名1,列名2,列名3) VALUES (值1,值2,值3);--->insert into 表名称 (列名1,列名2,列名3)values(值1,值2,值3);
B.添加所有列的数据
INSERT INTO 表名称 VALUES (值1,值2,值3,值4,值5); --->insert into 表名称 values (值1,值2,值3,值4,值5);
C.注意事项
除了数字类型(整数和小数)以外,其他的都要采用引号(单引号双引号都可以)引起来
2、表记录的删除语句
A.删除指定的某些条记录
DELETE FROM 表名称 [WHERE 条件]; --->delete from 表名称 [where 条件];
B.删除整个表的操作
a. DELETE FROM 表名称;
-- 删除整个表(逐行删除) 效率低 --->delete from 表名称;
b. TRUNCATE TABLE 表名称;
-- 删除整个表(先删表,再建表) 效率高[推荐使用]--->truncate table 表名称;
3、表记录的修改语句
A.常见修改语句的操作(带有条件)
UPDATE 表名称 SET 列名1=值1,列名2=值2 [WHERE 条件]; --->updata 表名称 set 列名1=值1,列名2=值2 [where 条件];
B.不常见的修改语句操作(修改所有的情况)
UPDATE 表名称 SET 列名1=值1,列名2=值2; --->updata 表名称 set 列名1=值1,列名2=值2;
四, MySQL的DQL(操作表记录,查)
1、基础查询
A.多个字段的查询操作
a.通用写法
SELECT * FROM 表名称; --->select * from 表名称;
b.指定列写法
SELECT 列名1,列名2,列名3 FROM 表名称; --->select 列名1,列名2,列名3 from 表名称;
B.去掉重复的查询操作
SELECT DISTINCT 列名 FROM 表名称; --->select distinct 列名 from 表名称;
C.四则运算计算列的操作
SELECT IFNULL (列名1,0) + 列名2 FROM 表名称; --->select ifnull (列名1,0) + 列名2 from 表名称;
D.给查询结果起别名的操作
SELECT 列名1 AS 别名1,列名2 别名2 FROM 表名称; --->select 列名1 as 别名1,列名2 别名2 from表名称;
2、条件查询 WHERE 后面的格式写法
A.与 && (理解)
a.写法1: SELECT * FROM 表名称 WHERE age>20 && age<30; --->select * from表名称 where age>20 && age<30;
b.写法2: SELECT * FROM 表名称 WHERE age>20 AND age<30; --->select * from 表名称 where age>20 AND age<30;
c.写法3: SELECT * FROM 表名称 WHERE age BETWEEN 20 AND 30; --->select * from 表名称where age between 20 AND 30;
B.或 || (理解)
a.写法1: SELECT * FROM 表名称 WHERE age=20 || age=30; --->select * from 表名称 where age=20 || age=30;
b.写法2: SELECT * FROM 表名称 WHERE age=20 OR age=30; ---> select * from 表名称where age=20 OR age=30;
c.写法3: SELECT * FROM 表名称 WHERE age IN(20,30); -- 年龄是20或者30的才可以--->select * from 表名称 where age in(20,30);
C.非 ! (理解)
a.写法1: SELECT * FROM 表名称 WHERE address IS NULL; -- 居住地是Null --->select * from 表名称 where address is null;
b.写法2: SELECT * FROM 表名称 WHERE address IS NOT NULL; -- 居住地不是Null --->select * from 表名称 where address is not null;
3、模糊查询 WHERE LIKE
A.两个占位符
a. '_' 下划线,表示1个字符
b. '%' 百分号,表示0个或多个字符
B.案例
a. 查询姓'武'
SELECT * FROM hero WHERE name LIKE '武%'; --->select*from hero where name like'武%';
b. 查询姓'武'只有两个字
SELECT * FROM hero WHERE name LIKE '武_'; --->select*from hero where name like '武_';
c. 查询第二个字是'文'的
SELECT * FROM hero WHERE name LIKE '_文%'; --->select*from hero where name like '_文%';
d. 查询只要带有'李'字的
SELECT * FROM hero WHERE name LIKE '%李%'; --->select*from hero where name like'%李%';