2.MYSQL基础语法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40406929/article/details/81984197

web02 数据库

1 数据库介绍

1.1 什么是数据库

按照特殊格式存储数据的仓库,方便我们存取操作

1.2 数据库管理系统

DBMS应用软件---mysql 操作仓库(数据库)、表、记录

1.3 实体(类)和表关系

一个实体对应一张表

一个对象对应一条记录

1.4 常见数据库

java语言中:mysql、oracle、DB2

2 数据库安装和使用

2.1 安装mysql

按照文档一步步来,注意不要有中文路径

2.2 使用

windows窗口

默认开机自启动,不管它

dos命令窗口

需要超级管理员用户打开窗口

开启: net start mysql

关闭:net stop mysql

2.4 数据库连接

客户端视图工具 sqlyog 明天玩 【简单】

dos命令窗口

直接连接数据库【掌握】

-- 格式
mysql -u用户名 -p密码
​
-- 例如
mysql -uroot -proot

指定ip连接

-- 格式
mysql -h主机名(ip地址) -u用户名 -p密码
​
-- 例如
mysql -h127.0.0.1 -uroot -proot

指定ip全名连接

-- 格式
mysql --host=主机名 --user=用户名 --password=密码
​
-- 例如
mysql --host=localhost --user=root --password=root

3 SQL语句

3.1 什么是sql

structured query language

结构化查询语言,通过sql语句可以实现对记录的增删改查操作【CURD】

CURD:create 创建、update 更新、retrieve 检索(read)、delete删除

3.2 sql方言

sql是一套标准,所有的厂商都支持,各自厂商自此基础上增加特有的语句,这部分我们称为方言;

例如:分页、注释

3.3 sql语法

  1. sql语句可以单行或多行书写,以分号结尾

  2. sql语句忽略大小写,建议关键字大写

  3. 注释

    1. 单行 -- 注释内容 # 注释内容(mysql特有)

    2. 多行 /* 注释内容 */

3.4 sql分类

分类 操作对象 主要关键字
DDL:数据定义语言 数据库 表 create alter drop
DML:数据操作语言 记录 insert update delete
DQL:数据查询语言【非官方】 记录 select
TCL:事务控制语言 事务 commit rollback
DCL:数据控制语言 用户 grant revoke

3.5 DDL【敲一遍】

进入企业后,一般一个项目对应一个数据库,一个实体对应一张表,数据库和表创建成功后不做 修改了

操作数据库

创建数据库

直接创建

-- 格式
create database 数据库名;
​
-- 例如
create database ee_day02;

先判断数据库是否存在,如果不存在创建

-- 格式
create database if not exists 数据库名;
​
-- 例如
create database if not exists ee_day02;

创建数据库并指定字符集

-- 格式
create database 数据库名 character set 字符集;
​
-- 例如
create database ee_day02_1 character set gbk;

查看数据库

查看所有数据库

-- 格式
show databases;

查看建库语句

-- 格式
show create database 数据库名;
​
-- 例如
show create database ee_day02_1;

修改数据库

修改数据库字符集(编码集)

-- 格式
alter database 数据库名 character set 字符集;
​
-- 例如
alter database ee_day02_1 character set utf8;

删除数据库

直接删除数据库

-- 格式
drop database 数据库名;
​
-- 例如
drop database ee_day02_1;

先判断数据库是否存在,如果存在删除

-- 格式
drop database if exists 数据库名;
​
-- 例如
drop database if exists ee_day02_1;

使用数据库

查看当前使用的数据库

-- 格式
select database();

使用、切换数据库

-- 格式
use 数据库名;
​
-- 例如
use ee_day02;

操作表

创建表

-- 格式
create table 表名(
    字段名 字段类型 [约束],
    字段名 字段类型 [约束],
    ....
);
​
-- 格式
create table student(
    id int,
    name varchar(32),
    birthday date
);

常见的字段类型

int 整型
double 浮点型
varchar 字符串
date 日期 格式:yyyy-MM-dd

查看表

查看所有表

-- 格式
show tables;

查看表结构

-- 格式
desc 表名;
​
-- 例如
desc student;

查看建表语句

-- 格式
show create table 表名;
​
-- 例如
show create table student;

快速创建一个表结构

-- 格式
create table 新表 like 旧表;
​
-- 例如
create table teacher like student;

修改表

新增字段

-- 格式
alter table 表名 add 字段名 字段类型;
​
-- 例如
alter table teacher add remark varchar(50);

修改字段类型

-- 格式
alter table 表名 modify 字段名 新类型;
​
-- 例如
alter table teacher modify remark varchar(100);

修改字段名

-- 格式
alter table 表名 change 旧字段 新字段 新类型;
​
-- 例如
alter table teacher change remark intro varchar(101);

删除字段

-- 格式
alter table 表名 drop 字段名;
​
-- 例如
alter table teacher drop intro;

修改表字符集

-- 格式
alter table 表名 character set 字符集;
​
-- 例如
alter table teacher character set gbk;

修改表名

-- 格式
rename table 旧表名 to 新表名;
​
-- 例如
rename table teacher to th;

删除表

直接删除

-- 格式
drop table 表名;
​
-- 例如
drop table th;

先判断表是否存在,如果存在删除

-- 格式
drop table if exists 表名;
​
-- 例如
drop table if exists th;

3.6 DML【重点】

新增记录

插入全部字段

-- 格式
insert into 表名 values(值1,值2...);
​
-- 例如
insert into student values(1,'tom','1999-12-12');
insert into student values(3,'jack',null);

注意:

除了数值类型外,其他类型插入统统使用字符串,推荐使用单引号

全能插入

-- 格式
insert into 表名(字段1,字段2...)values(值1,值2..);
​
-- 例如
insert into student(id,name) values(2,'jerry');

蠕虫复制

快速复制另一张表的数据

前提:二个表结构要求字段一致

-- 快速创建一个表结构 与 student 相同
create table stu like student;
-- 蠕虫复制
insert into 新表 select * from 旧表;
insert into stu select * from student;

中文乱码【了解】

dos命令窗口在大陆 GBK编码

查看数据库字符集(编码集)

show variables like '%character%';

临时修改数据库编码集

set names gbk;

修改记录

-- 格式
update 表名 set 字段名=字段值,字段名=字段值 [where 条件];
​
-- 例如
update stu set birthday = '1998-1-1';[不建议使用]
update stu set birthday = '1988-2-3' where id =4;

删除记录

-- 格式
delete from 表名 [where 条件];
​
-- 例如
delete from stu;    [只能跑路了]
delete from student where name ='tom';

truncate

摧毁表,重建表,与原来表结构相同

-- 格式
truncate table 表名;
​
-- 例如
truncate table student;

3.7 DQl【掌握】

简单查询

准备数据

-- 创建表
create table student1(
    id int,
    name varchar(20),
    chinese double,
    english double,
    math double
);
-- 插入记录
insert into student1(id,name,chinese,english,math) values(1,'tom',89,78,90);
insert into student1(id,name,chinese,english,math) values(2,'jack',67,98,56);
insert into student1(id,name,chinese,english,math) values(3,'jerry',87,78,77);
insert into student1(id,name,chinese,english,math) values(4,'lucy',88,98,90);
insert into student1(id,name,chinese,english,math) values(5,'james',82,84,77);
insert into student1(id,name,chinese,english,math) values(6,'jack',55,85,45);
insert into student1(id,name,chinese,english,math) values(7,'tom',89,65,30);

练习

-- 查询表中所有学生的信息
select * from student1;
-- 查询表中所有学生的姓名和对应的语文成绩
select name,chinese from student1;
-- 查询表中学生姓名(去重)
select name from student1;
select distinct name from student1;
select distinct name,chinese from student1;
-- 在所有学生数学分数上加10分特长分【查询结果】
select name,math from student1;
select name ,math+10 from student1;
-- 统计每个学生的总分
select name,chinese+english+math from student1;
-- 使用别名表示学生总分
select name,(chinese+english+math) as 'total' from student1;
​
-- 表名
select stu1.name from student1 stu1;

distinct

对我们查询结果去重,多个字段所有信息全部相同

-- 格式
select distinct 字段1,字段2 from 表名;

格式

select [distinct] * | 字段 [as] 别名 from 表名 [as] 表别名

猜你喜欢

转载自blog.csdn.net/qq_40406929/article/details/81984197