5.(了不起的程序员日历)

 

作业

 

 

         

 

 

 

 

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;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值