![](https://img-blog.csdnimg.cn/f68bc6148985477e9fcee53d4b29c179.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/3a571f298d504a7fa76fde18db58dfcc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/b7c850fb60754f2998b2cf6f5850f9ac.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/78701e9d2a0b43d782fb250f113e016b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_14,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/4cbf36967d00449dbe2201eaf7e066b2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/74ac93fcc2d540b7832552a3aee87037.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
作业![](https://img-blog.csdnimg.cn/2244d15a79404f1b912e9a76edbdc4ec.png)
![](https://img-blog.csdnimg.cn/949c5279d2a6468d889ce254615250a5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_18,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/d2ead975dde943b08a1b3108445d6315.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_14,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/e7fd2c36e9cd470087a99f7580d325af.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/c3dca95cd97a473eb5bcd08039812918.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_14,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/d18947424f4a478ea4e2141ee67adb3e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/0d2a1b2e26574d31a17bffec86e8f507.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/68648263eac546078247fa13faee1416.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_14,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/b5cd82040ff649af87d6b50529f0c1fe.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_18,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/eba708f9c0c04b98bf5c616c9a89c29f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/527b55c7d8474a21806c6fdf3b481db5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/d7a044aefdcb4424b36c8ce4a54ff98f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_17,color_FFFFFF,t_70,g_se,x_16)
MySQL
的使用
SQL
中存在有的很多的语句,若要要想操作这些
SQL
,则就需要通过大量的
SQL
语法中的语句进行操作
information_schema
是
MySQl
系统自带的数据库,主要保存
MySQL
数据库服
务器的系统信息,比如数据库名称、数据表的名称、字段名称、存取权限、数
据文件所在的文件夹
performance_schema
是
MySQL
系统自带的数据库,可以用来
监控
MySQL
各类
性能指标
sys
数据库是
MySQL
自带的数据库,主要作用是以一种容易被理解的方式展示
MySQL
数据服务器的各类性能指标,帮助系统管理员和开发人员监控
mySQL
的
性能
mysql
数据库是
mysql
系统自带的数据库,它保存了
mysql
数据库服务器运行时
需要的系统信息,比如书库文件夹,当前使用的字符集、约束检查信息
之前的上面这几个都是
mysql
系统自带的数据库,如果要想创建自己的数据库,
则需要通过
SQL
语句来完成
创建数据库
操作
navicat
的编写
SQL
语句的步骤:
第一步:找到
新建查询
点击打开
当然这里可以新建多个连接,所以一定要注意当前你的连接是不是当前使用的
连接,如果不是,则选择即可
--
创建数据库
#
创建
employee
数据库,改名称不能与已经存在的数据库重名
CREATE database
数据库名
;
第二步:打开编写
SQL
语句的窗口后,会发现,字体很小,此时可以通过快捷键
ctrl+
滑轮
或
ctrl+ +
这两种快捷键完成字体大小的调节
第三步:如果要想使用
SQL
当中的注释操作,则必须使用
--
空格 要注释的内
容
即可 或者使用
#
空格
第四步:创建数据库的语法的关键字可以大写,也可以小写,没有强制要求
(根据个人习惯即可)
第五步:使用鼠标选择自己编写的
SQL
语句,点击上面的绿色按钮,如果控制台
输出的是
OK
,则表示
SQL
语句执行成功
此时就表示数据库创建成功,但是注意此时需要一个小操作,如果没有这个操
作,你还是不能观察到创建好的数据库
第六步:在左侧这里鼠标右键选择
刷新
,如果列表中出现你创建的数据库则表
示已经存在了
还有一种做法可以查看当前的数据库
#
查询所有的数据库
show databases
;
如果当你的
SQL
语句编写的语法出现问题,很大程序上就会出现这句话:
You
have an error in your SQL syntax;
此时就需要检查本地的
SQL
语句是否
编写正确
当数据库创建完成之后,要使用该数据库,则通过
使用数据库语法:
use
数据库名
;
#
使用
emplyoee
数据库
use
emplyoee ;
当各位在操作数据库当中的数据表时,一定要写上这句
use
数据库名
如果不
写,则坑你会出现
No database selected
(
没有选择数据库
)
这样的错误提示信
息
如果要想查询数据库当中的所有表,则使用:
#
查看某个库中的所有表
show tables from
数据库名
;
创建新的表格
它与创建数据库的语句是一样的,但是有一些差别
#
创建数据库表
CREATE TABLE
表名称
(
字段名 数据类型
,
字段名 数据类型
)
;
以上的创建数据库当中有几个需要注意
细节
:
(
1
)
CREATE TABLE
关键字可大写可小写,没有要求
(
2
)数据表表名称跟的是小括号,千万别写成花括号,而且
最后要有分号
(
3
)
最后一个字段名后的数据类型不能加逗号
切记
创建完数据库表后左侧一定要右键刷新
#
创建学生表
CREATE TABLE
student
(
id
int
,
name
varchar
(
20
)
#
名字的长度最长不得超过
20
个字符
)
;
此时如果要想查看当前表中的所有数据,则使用语句
select
#
查看当前表中的所有数据
select
*
from
表名称
;
此时由于是新创建的表,则一定是没有数据的,所以使用
插入语句
insert
into
来完成
INSERT INTO
表名称
VALUES
(
值列表
)
;
执行之后,如果成功则会出现:
> Affected rows: 1
当控制台出现这条指令时,就表示数据插入成功
查看表的创建信息
show create table
表名称
;
show create table
student;
上面的信息显示的就是默认的字符集,
8.x
默认字符集都是
utf8
,而
5.7
默认字符
集都是
“lanin1”
不支持中文,需要改动
同理,也可以查看数据库创建信息
show create database
数据库名
;
#
查询
emplyoee
数据库的详细创建信息
show create database
emplyoee;
此时如果要想删除改表格,则可以通过
drop
关键字来执行
删除数据库
SQL
分类
SQL
语言在功能上分为
3
大类:
DDL
(数据定义语言)
,这些语句定义了不同的数据库、表、视图、索引等
数据库对象,还可以用来创建、删除、修改数据库和数据表的结构
主要的语句包括:
CREATE
、
DROP
、
ALTER
等
DML
(数据操作语言)
用于添加、删除、更新和查询数据库记录,并检查
数据完整性
主要的语句包括:
INSERT
、
DELETE
、
UPDATE
、
SELECT
等
SELECT
是
SQL
语句的基础,最为重要
DCL
(数据控制语言)
用于定义数据库,表、字段、用户访问权限和安全级
别
主要的语句包括:
GRANT
、
REVOKE
、
COMMIT
、
ROLLBACK
、
SAVEPOINT
等
因为查询语句用户的非常频繁,所以查询甚至可以单独作为一列列出来
DQL
(数据查询语言)
事务例如刚才编写的
COMMIT
、
SAVEPOINT
取出来称为
TCL(
事务控制语言
)
SQL
可以写在一行或者多行,必要是要进行缩进操作
结束的语句要加上分号
;
标点符号,必须全部保证英文状态
注释
drop table
表名称
;
drop database
数据库名
;
单行注释:
#
注释文字(
MySQL
特有的方式)
单行注释:
--
注释文件(
--
后面必须要有空格,否则
SQL
执行报错)
多行注释:
/*
注释文字
*/
SELECT
语句初步
SELECT
语句表示的就是查询的含义
查询全部的内容,则使用
SELECT
后面加
*
说明:这个
*
后期再做项目的时候 避免使用,因为会影响效率
训练:根据上图创建数据库表
select
后面可以跟数字的运算结果
;
select
*
from
表名称
;
--
创建数据表
CREATE TABLE
emp
(
empno
bigint
(
4
)
,
ename
varchar
(
50
)
,
job
varchar
(
50
)
,
mgr
bigint
(
4
)
,
hiredate
datetime
,
sal
bigint
,
comm
int
(
11
)
DEFAULT
NULL
,
deptno
int
(
10
)
)
;
在数据多的情况下,可以选择查询具体的列,从而达到查询目的
--
查询特定的列
SELECT
表中存在的列名称
FROM
表名称
;
在查询的情况下设置列的别名
在列名与别名之间加入关键字
AS
,别名使用双引号
,以便在别命中包含空
格或特殊的字符并区分大小写
AS
可以省略
别名建议简短
SELECT
hiredate
AS
hdate, empno,ename,job
FROM
emp;
查看表结构
desc
快速生成与一个表结构相同的表、
修改表结构
添加表列
ADD
修改表中的列类型
MODIFY
修改列名
CHANGE
desc
表名称
;
CREATE TABLE
表名称
LIKE
旧表名
;
ALTER TABLE
表名称
ADD
列名 类型
;
--
为学生表添加一个字段 名为成绩 类型为
decimal(10,1)
alter table
student
add
score
decimal
(
10
,
1
)
;
ALTER TABLE
表名
MODIGY
列名 新的类型
;
--
将
studnet
表中的
score
字段的类型修改为
int(20)
alter table
student
modify
score
int
(
20
)
;
ALTER TABLE
表名
CHANGE
旧列名 新列名 类型
;
--
将
student
表中的
score
字段名字改成
content——
学习内容
alter table
student
change
score content
int
(
20
)
;
删除列
DROP
修改表名
需要注意的:后期再软件公司工作的时候,操作的是
Linux
服务器中的
mysql
,
那个时候面对的就是命令行,所以扎实的
SQL
底子很重要
DML
操作表中的数据
用于对
表中的记录
进行增删改查操作
插入记录
蠕虫复制
将一张已经存在的表中的数据复制到另一张表中
首先要保证的是,
表
1
和表
2
的结构是一样的
ALTER TABLE
表名
DROP
列名
;
--
将
student
表中的字段
content
删除
alter table
student
drop
content;
RNAME
TABLE
表名
TO
新名称
;
--
将
student
改名为
pupil
rename table
student
to
pupil;
INSERT INTO
表名
(
字段
1
,字段
2
,
...
)
VALUES
(
值
1
,值
2
,
....
)
;
INSERT INTO
表名
1
SELECT
*
FROM
表名
2;
--
蠕虫复制
insert into
newstudent
select
*
from
pupil;
-- 创建数据库
#创建employee数据库,改名称不能与已经存在的数据库重名
CREATE database emplyoee ;
-- 查看所有的数据库
show databases;
#使用某个数据库
use emplyoee;
use mysql;
# 查看某个库中的所有表
show tables from mysql;
use emplyoee;
show tables from emplyoee;
# 创建数据库表
CREATE TABLE 表名称 (
字段名 数据类型,
字段名 数据类型
);
# 创建学生表
CREATE TABLE student(
id int,
name varchar(20), #名字的长度最长不得超过20个字符
birthday date
);
select * from student;
INSERT INTO student VALUES (1,'杨超');
INSERT INTO student VALUES (1,'陈嘉远');
INSERT INTO student VALUES (1,'杨安活');
INSERT INTO student VALUES (1,'孙雨婷');
INSERT INTO student VALUES (1,'大金',26);
show create table student;
#查询emplyoee数据库的详细创建信息
show create database emplyoee;
use emplyoee;
# 删除当前数据库中的数据库表
drop table student;
show tables from emplyoee;
drop database emplyoee;
# 所有的查询关键字都是select开头的
# 所有的创建关键字都是create开头的
select 1;
select 9/2;
select 3+2;
select 5*6;
select 7%8;
-- 创建数据库
CREATE TABLE emp (
empno bigint(4) ,
ename varchar(50),
job varchar(50),
mgr bigint(4),
hiredate datetime,
sal bigint,
comm int(11) DEFAULT NULL,
deptno int(10)
);
-- 插入数据
INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'2022-03-22 20:16:16',7799,0,20);
INSERT INTO emp VALUES (7499,'ALLEN','MANAGER',7697,'2022-03-21 14:15:07',9966,0,30);
select * from emp;
-- 查询特定的列
SELECT ename FROM emp;
SELECT xxxx FROM emp;
SELECT hiredate AS hdate, empno,ename,job FROM emp;
-- 查看表结构
desc student;
desc emp;
-- 快速生成与旧表相同类型的表
create table newstudent LIKE student;
desc newstudent;
desc student;
select * from newstudent;
-- 为学生表添加一个字段 名为成绩 类型为decimal(10,1)
alter table student add score decimal(10,1);
desc student;
-- 将studnet表中的score字段的类型修改为int(20)
alter table student modify score int(20);
-- 将student表中的score字段名字改成content——学习内容
alter table student change score content int(20);
alter table student modify content varchar(50);
-- 将student表中的字段content删除
alter table student drop content;
-- 将student改名为pupil
rename table student to pupil;
insert into pupil values(1,'杨超','2020-01-02');
insert into pupil values(2,'大金','2019-10-02');
insert into pupil values(1,'小陈','2017-11-19');
-- 蠕虫复制
insert into newstudent select * from pupil;
desc pupil;
![](https://img-blog.csdnimg.cn/250a7de22b9a4de992a6db81b6a15478.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNjc2MTM4MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)